web-dev-qa-db-de.com

Die Amazon EC2-Instanz kann yum nicht aktualisieren oder verwenden

Ich benutze das Tutorial von Amazon zum Installieren eines LAMP-Servers . Die ersten Anweisungen beinhalten die Verwendung von yum, aber jede einzelne Möglichkeit, die ich versucht habe, hat dieselbe Nachricht ergeben. Ich habe in letzter Zeit einige andere Fragen zum selben Problem gefunden, von denen sich an meinem Setup nichts ändert.

Hier ist die Nachricht:

Loaded plugins: priorities, update-motd, upgrade-helper
Could not retrieve mirrorlist http://repo.us-east-1.amazonaws.com/latest/main/mirror.list error was
12: Timeout on http://repo.us-east-1.amazonaws.com/latest/main/mirror.list: (28, 'Connection timed out after 10001 milliseconds')


One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:

 1. Contact the upstream for the repository and get them to fix the problem.

 2. Reconfigure the baseurl/etc. for the repository, to point to a working
    upstream. This is most often useful if you are using a newer
    distribution release than is supported by the repository (and the
    packages for the previous distribution release still work).

 3. Disable the repository, so yum won't use it by default. Yum will then
    just ignore the repository until you permanently enable it again or use
    --enablerepo for temporary usage:

        yum-config-manager --disable <repoid>

 4. Configure the failing repository to be skipped, if it is unavailable.
    Note that yum will try to contact the repo. when it runs most commands,
    so will have to try and fail each time (and thus. yum will be be much
    slower). If it is a very temporary problem though, this is often a Nice
    compromise:

        yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

 Cannot find a valid baseurl for repo: amzn-main/latest

Ich habe das Gleiche schon einmal gemacht, ohne auf Probleme gestoßen zu sein, indem ich dasselbe Tutorial benutzte, aber es war vor einigen Monaten. Ich weiß nicht, was sich geändert hat, aber meine magere Erfahrung hindert mich daran, es herauszufinden.

35

Es sieht so aus, als ob der Host Probleme mit dem Yum-Server hat. Stellen Sie sicher, dass die Instanz einen ausgehenden Internetzugang hat (Sicherheitsgruppen überprüfen usw.). Wenn sich die Instanz in einer VPC befindet und die Sicherheitsgruppen gut aussehen, müssen Sie möglicherweise eine Nat-Appliance verwenden oder eine elastische IP-Adresse anschließen. 

Viel Glück-

36
chadneal

Wenn Sie einen S3-Endpunkt auf Ihrer VPC haben, schlägt dies fehl, da die Repo-Datei in S3 gespeichert wird. Um dies zu beheben, fügen Sie die folgende Richtlinie zu S3 hinzu:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Principal": "*",
        "Action": "*",
        "Resource": [
            "arn:aws:s3:::repo.eu-west-1.amazonaws.com",
            "arn:aws:s3:::repo.eu-west-1.amazonaws.com/*"
        ]
    }
]
}

Ersetzen Sie eu-west-1 durch den entsprechenden Regionscode, in dem sich Ihr S3-Endpunkt befindet.

15
phill.tomlinson

Viele Erstbenutzer von Amazon EC2 stießen auf dieses Problem. Nach meiner Erfahrung ist es normalerweise das Ergebnis, dass die zulässigen ausgehenden Verbindungen nicht in der Sicherheitsgruppe ihrer Instanz festgelegt werden. In dem Lernprogramm, das Amazon für die Konfiguration von Amazon Linux-Instanzen enthält, wird nur das Einstellen der eingehenden Verbindungen erwähnt. Sie können also leicht vergessen, dass Sie niemals die zulässigen ausgehenden Verbindungen festlegen. Wenn Sie einfach HTTP- und HTTPS-Anforderungen an eine beliebige IP-Adresse zulassen, sollte das Problem behoben werden. 

7
davetw12

Ich habe das gleiche Problem und war auf Namensauflösung bezogen. Ich habe folgendes zur Korrektur verwendet:

EC2-Instanz hat kein öffentliches DNS

Das ist die gute Erklärung von Mat:

  • Gehen Sie zu console.aws.Amazon.com
  • Gehe zu Dienste -> VPC
  • Öffnen Sie Ihre VPCs
  • wählen Sie Ihre VPC, die mit Ihrer EC2 verbunden ist, und
  • Bearbeiten Sie Summary ---> Ändern Sie die DNS-Hostnamen in YES.
4
Valladão

weisen Sie einfach die Standard-Sicherheitsgruppe zusammen mit der von Ihnen erstellten zu. Das hat mein Problem gelöst. ;)

2

Mit dem Kommentar von chadneal. Die DNS-Auflösung muss auf Ja gesetzt werden.

  • Gehen Sie zu console.aws.Amazon.com
  • Gehe zu Dienste -> VPC
  • Öffnen Sie Ihre VPCs
  • Wählen Sie Ihre VPC aus, die mit Ihrer EC2 verbunden ist
  • Klicken Sie auf DNS-Auflösung bearbeiten und legen Sie es fest Ja.
1
Yoonian

keine Sorge, dies ist ein einfacher Fehler. Dies ist keine Internetverbindung.

nur um eine neue Datei mit dem vi-Editor zu erstellen:

vi /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

und geben Sie dann Folgendes ein, um vi zu beenden: :wq

0
user10944771

Wenn Sie kein DNS zum Laufen bringen können, überprüfen Sie auch Ihre DHCP-Options. Ich hatte ein altes an Ort und Stelle gelassen, und als ich ein Projekt mit Active Directory-Integrationen bereinigte, brach es zusammen. Die Antwort besteht einfach darin, zu den ursprünglichen/gespeicherten Optionen zurückzukehren.

0
Kent L. Estes

Ich habe den folgenden Befehl mit Sudo ausgeführt (kann yum nicht alleine machen, wenn Sie nicht root sind) und das Problem wurde behoben.

yum-config-manager --save --setopt=dev.mysql.com_downloads_repo_yum_.skip_if_unavailable=true

0
EC2newbie

Ich habe genau die gleiche Fehlermeldung für yum erhalten, wie in der Frage beschrieben. In meinem Fall hatte ich eine NACL, die den gesamten ausgehenden Datenverkehr zuließ, den eingehenden Datenverkehr jedoch auf HTTP/HTTPS, SSH und All ICMP beschränkte. Da NACLS stateless ist, ist der Versuch, yum auszuführen, fehlgeschlagen, da eingehende kurzlebige Verbindungen, die yum verwendet, nicht explizit zugelassen wurden und daher verworfen wurden.

0
logan5

Ich habe das gleiche Problem erlebt, aber das Problem war nicht meine Sicherheitsgruppe oder NACL. 

Hintergrund: Ich habe einen Domainnamen über Route53 hinzugefügt. Der Domainname wird weiterhin bei DiscountASP.net gehostet. Die VPC wurde manuell erstellt (kein Assistent oder Standard). Ich habe ein DHCP-Optionsset mit meinem Domänennamen und den von Route53 mir angegebenen 4 Server-IP-Adressen erstellt.

Analyse: Zuerst musste ich nachweisen, dass das Problem weder die Sicherheitsgruppe noch die NACL war. Ich tat dies, indem ich den Standard-DHCP-Optionssatz an meine neue VPC anpaßte. Es hat funktioniert! Ich könnte das Yum-Update und "curl http://www.google.com " durchführen. Kein Problem.

Ich erstellte dann einen neuen DHCP-Optionssatz unter Verwendung meines Domainnamens und der Google DNS-Server . 8.8.8.8 & 8.8.4.4 Dies funktionierte ebenfalls.

Ich nahm dann 1 der 4 DNS-Server-IPs, die von Route 53 bereitgestellt wurden, und verwendete sie zusammen mit meinem Domänennamen in einem neuen DHCP-Optionssatz Ich führte einen Test durch und es schlug fehl. Ich wiederholte den gleichen Test mit 2 der verbleibenden 4 DNS-Server-IPs und erstellte zwei separate DHCP-Optionssätze ... Ich führte Tests aus, und beide sind fehlgeschlagen.

Nach der Rechtschreibprüfung meines Domainnamens konnte ich nur zu dem Schluss kommen, dass das Problem die Domain Name Server waren.

Lösung: Amazon Virtual Private Cloud-Benutzerhandbuch (PDF Seite 222) Amazon DNS-Server (Unterthema)

"Wenn Sie eine VPC erstellen, erstellen wir automatisch eine Gruppe von DHCP-Optionen und ordnen diese der VPC zu. Diese Gruppe enthält zwei Optionen: Domänennamenserver = AmazonProvidedDNS und Domänenname = Domänenname-für-Ihre- region. AmazonProvidedDNS ist ein Amazon-DNS-Server, und diese Option aktiviert DNS für Instanzen, die über das VPC-Internetgateway kommunizieren müssen Adresse an der Basis des VPC-IPv4-Netzwerkbereichs plus zwei. Beispielsweise befindet sich der DNS-Server in einem 10.0.0.0/16-Netzwerk bei 10.0.0.2. "

Ab Seite 221: DHCP: Domain-Name-Server

Optionsname Beschreibung "Die IP-Adressen von bis zu vier Domain Name Servern oder AmazonProvidedDNS. Der Standard-DHCP-Optionssatz gibt AmazonProvidedDNS an. Wenn Sie mehr als einen Domain Name Server angeben, trennen Sie diese durch Kommas. "

Die IP-Adressen, auf die er verweist, beziehen sich auf externe Domain Name Server (mit Ausnahme der Möglichkeit, dass Sie ein benutzerdefiniertes DNS erstellt haben).

Also habe ich meinen endgültigen DHCP-Optionssatz mit meinem Domänennamen und Domänennamenservern erstellt = AmazonProvidedDNS. Es funktionierte! Übrigens ist die VPC-DNS-Auflösung = Ja und der DNS-Hostname = Nein.

0
Ananize Scott

Ich hatte das gleiche Problem. In meinem Fall habe ich versehentlich die ausgehenden Regeln meiner Sicherheitsgruppe gelöscht. Das Hinzufügen einer ausgehenden Regel, um den gesamten Datenverkehr zuzulassen, hat das Problem gelöst.

0
Gaurav Seth

Überprüfen Sie, ob Ihre ausgehenden Einträge aus der zugewiesenen Sicherheitsgruppe gelöscht/geändert wurden. Normalerweise werden ausgehende Einträge auf "Alle Zugriffe" gesetzt und lassen alle IP-Adressen zu.

In meinem Fall wurde Outbound gelöscht. Ich habe wieder auf "All traffic" gesetzt und es funktioniert.

0
Amit baderia

Ich hatte das gleiche Problem, stellte sich heraus, dass ein anderer Sysadmin beschlossen hatte, ausgehenden Internetverkehr über einen Proxy zu leiten. Ich habe dies festgestellt, als ich einige ermüdete Proxy-Env-Einstellungen bemerkte, etwas tiefer grub und dann einen Eintrag in meiner Datei /etc/yum.conf bemerkte. 

Auskommentiert die Proxy-Zeile und alles funktionierte wieder.

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
#proxy=http://pos-proxy-in-my-way-of-doing-actual-real-work:666
0
ElasticThoughts

Das Problem kann bei Sicherheitsgruppen und NACLs auf beiden Ebenen auftreten. In meinem Fall habe ich festgestellt, dass das Update auch nach dem Ändern der Sicherheitsgruppe fehlgeschlagen ist. Als jedoch die NACLs geändert wurden, war die Aktualisierung erfolgreich

0
Ambar Hassani

bitte folgen Sie dem untenstehenden Schritt

Schritt 1: Gehen Sie zu AWS-VPC 

Schritt 2: Suchen Sie DHCP-Option

Schritt 3: Wenn Sie keine DHCP -Optionen haben, erstellen Sie ein neues DHCP

Schritt 4: Fügen Sie den Domänennamen = ap-south-1.compute.internal hinzu (wenn Sie eine andere Region verwenden, verwenden Sie bitte einen anderen Regionsnamen).

Schritt 5: Domain Name Server = AmazonProvidedDNS hinzufügen

Schritt 6: Wählen Sie dann Ihr VPC -> Aktionen -> bearbeiten Sie Ihren DHCP-Optionssatz -> Wählen Sie das DHCP-Set aus gerade erstellt -> Speichern

Schritt 7: Dann Starten Sie Ihre Instanz neu

Schritt 8: Anmelden Sie Ihre Instanz Geben Sie einfach yum list installed -> ein. Sie erhalten eine Liste aller installierten Elemente

Vielen Dank

0
sachin_ur