Pourquoi est-ce que je reçois des messages d'erreurs lorsque j'utilise yum sur mon instance EC2 Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023 ?
Je reçois des messages d'erreurs lors de l'utilisation de yum sur mon instance Amazon Elastic Compute Cloud (Amazon EC2) en exécutant Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023.
Brève description
Utilisez les messages de sortie de la commande yum pour identifier l'erreur qui s'est produite. Voici les messages d'erreur les plus courants :
- La connexion a expiré en XXX millisecondes
- Erreur HTTP 403 – Interdit
- Impossible de résoudre l'hôte : xxxxxxxxx.$awsregion.$awsdomain
- Erreur HTTP 407 – Authentification par proxy requise
- La résolution a expiré après 5 000 millisecondes
Résolution
La connexion a expiré en XXXX millisecondes
1. Assurez-vous que le groupe de sécurité attaché à votre instance EC2 autorise le trafic HTTP ou HTTPS sortant.
2. Assurez-vous que les ACL réseau associées au sous-réseau de votre instance EC2 autorisent le trafic HTTP ou HTTPS sortant via vos NACL.
L'exemple ci-dessous montre une ACL réseau personnalisée qui autorise le trafic sortant sur les ports 80 et 443 :
Inbound rules Rule# Type Protocol Port Range Source Allow/Deny 100 Custom TCP Rule TCP (6) 1024-65535 0.0.0.0/0 ALLOW 101 Custom TCP Rule TCP (6) 1024-65535 ::/0 ALLOW * ALL Traffic ALL ALL ::/0 DENY * ALL Traffic ALL ALL 0.0.0.0/0 DENY
Outbound rules Rule # Type Protocol Port Range Source Allow/Deny 100 HTTP (80) TCP (6) 80 0.0.0.0/0 ALLOW 101 HTTPS (443) TCP (6) 443 0.0.0.0/0 ALLOW 102 HTTP (80) TCP (6) 80 ::/0 ALLOW 103 HTTPS (443) TCP (6) 443 ::/0 ALLOW * ALL Traffic ALL ALL ::/0 DENY * ALL Traffic ALL ALL 0.0.0.0/0 DENY
3. Assurez-vous que votre instance EC2 a accès aux référentiels Amazon Linux à l'aide de l'une des options suivantes :
- Votre instance se trouve dans un sous-réseau public doté d'une passerelle Internet. Pour plus d'informations, reportez-vous à Activer l'accès à Internet.
- Votre instance se trouve dans un sous-réseau privé doté d'une passerelle NAT. Pour plus d'informations, reportez-vous à Passerelles NAT.
- Votre instance se trouve dans un sous-réseau privé avec une instance NAT. Pour plus d'informations, reportez-vous à Instances NAT.
- Votre instance se trouve dans un sous-réseau public ou privé avec un point de terminaison d'un VPC Amazon Simple Storage Service (Amazon S3). Pour plus d'informations, reportez-vous à Comment puis-je mettre à jour yum ou installer des paquets sans accès à Internet sur mes instances EC2 exécutant Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023 ?
- Votre instance se trouve dans un sous-réseau privé doté d'un proxy. Pour configurer yum de sorte qu'il utilise un proxy, modifiez le fichier /etc/yum.conf avec les paramètres suivants. Dans l'exemple suivant, remplacez proxy-port, proxy-user-name et proxy-password par les valeurs appropriées pour votre proxy.
proxy=http://proxy-server-IP-address:proxy_port proxy_username="proxy-user-name" proxy_password="proxy-password"
Pour plus d'informations, reportez-vous à Utilisation de yum avec un serveur proxy sur le site Web fedoraproject.org.
4. Après avoir configuré votre instance à l'aide de l'une des options précédentes, exécutez la commande curl suivante pour confirmer que l'instance peut accéder au référentiel. Dans la commande suivante, remplacez us-east-1 par la Région AWS de votre instance.
Amazon Linux 2023
curl -I al2023-repos-us-east-1-de612dc2.s3.dualstack.us-east-1.amazonaws.com
Amazon Linux 1
curl -I repo.us-east-1.amazonaws.com
Amazon Linux 2
curl -I amazonlinux.us-east-1.amazonaws.com
La commande curl est préinstallée sur toutes les Amazon Machine Images (AMI), mais les référentiels Amazon Linux ne sont pas accessibles sans informations d'identification. La commande curl ne peut pas récupérer les informations d'identification d'un référentiel yum. Vous recevez donc un message d'erreur d'accès refusé similaire au suivant. La commande curl est utilisée pour vérifier si le problème de délai d'attente persiste. Le message d'erreur indique que le réseau est accessible et que le problème de délai d'attente ne se pose plus :
$ curl -I amazonlinux.us-east-1.amazonaws.com HTTP/1.1 403 Forbidden x-amz-bucket-region: us-east-1 x-amz-request-id: xxxxxxxx x-amz-id-2: xxxxxxxxxxxxx= Content-Type: application/xml Date: Thu, 17 Nov 2022 16:59:59 GMT Server: AmazonS3
Pour installer un logiciel comme telnet, exécutez la commande suivante :
sudo yum install telnet
Erreur HTTP 403 - Interdit
1. Pour un point de terminaison d'un VPC Amazon S3 dans le VPC de votre instance, vérifiez que la politique jointe autorise l'appel d'API s3:GetObject sur les ressources suivantes. Dans les exemples suivants, remplacez region par la Région AWS de votre instance.
Amazon Linux 2023 :
« arn:aws:s3:::al2023-repos-us-east-1-de612dc2/* »
Amazon Linux 1 :
« arn:aws:s3:::packages.region.amazonaws.com/* »
« arn:aws:s3:::repo.region.amazonaws.com/* »
Amazon Linux 2 :
« arn:aws:s3:::amazonlinux.region.amazonaws.com/* »
« arn:aws:s3:::amazonlinux-2-repos-region/* »
Pour plus d'informations, reportez-vous à Points de terminaison de passerelle pour Amazon S3.
2. Si vous utilisez un proxy pour accéder aux référentiels Amazon Linux, assurez-vous que le sous-domaine amazonaws.com figure sur la liste d'autorisation de votre configuration de proxy.
Impossible de résoudre l'hôte : xxxxxxxx.$awsregion.$awsdomain
1. Exécutez les commandes suivantes pour vous assurer que le répertoire /etc/yum/vars définit les variables yum personnalisées. Le répertoire doit inclure les variables awsdomain et awsregion. Dans l'exemple de commande suivant, remplacez us-east-1 par la région AWS de votre instance.
$ cat /etc/yum/vars/awsregion us-east-1 $ cat /etc/yum/vars/awsdomain amazonaws.com
2. Exécutez la commande suivante pour vérifier la résolution DNS de votre instance. L'instance doit résoudre le nom de domaine des référentiels Amazon Linux.
$ dig amazonlinux.us-east-1.amazonaws.com $ dig repo.us-east-1.amazonaws.com $ dig al2023-repos-us-east-1-de612dc2
Les requêtes adressées au serveur DNS fourni par Amazon à l'adresse IPv4 169.254.169.253 et à l'adresse IPv6 fd00:ec2::253 aboutissent. Les requêtes adressées au serveur DNS fourni par Amazon à l'adresse IP réservée à la base de la plage réseau IPv4 VPC plus deux aboutissent également. L'adresse IPv6 n'est accessible que sur les instances EC2 basées sur Nitro.
Erreur HTTP 407 - Authentification par proxy requise
L'erreur HTTP 407 se produit si votre proxy ne parvient pas à terminer la demande puisque yum ou dnf ne disposent pas des informations d'authentification appropriées pour votre serveur proxy. Pour configurer yum ou dnf afin qu'ils utilisent un proxy, modifiez le fichier /etc/yum.conf avec les paramètres suivants :
Amazon Linux 1 et Amazon Linux 2 : /etc/yum.conf
Amazon Linux 2023 : /etc/dnf/dnf.conf
proxy=http://proxy-server-IP-address:proxy_port proxy_username=proxy-user-name proxy_password=proxy-password
La résolution a expiré après 5 000 millisecondes
Exécutez la commande suivante pour vous assurer que le fichier /etc/resolv.conf dispose de la bonne adresse IP pour votre serveur DNS :
cat /etc/resolv.conf nameserver YourDNSIP
Vous pouvez modifier le délai d'expiration de 5 000 millisecondes en modifiant la valeur du délai d'expiration dans le fichier de configuration yum. Pour plus d'informations, reportez-vous à yum.conf sur le site linux.die.net.
Pour vérifier l'heure de la requête à l'aide de dig, exécutez la commande suivante :
$ dig repo.us-east-1.amazonaws.com | grep time
Pour Amazon Linux 2023, modifiez le délai d'expiration en modifiant la valeur des metadata_expire dans /etc/yum.repos.d/amazonlinux.re.
Contenus pertinents
- Réponse acceptéedemandé il y a 5 moislg...
- demandé il y a un anlg...
- demandé il y a 2 anslg...
- demandé il y a 3 moislg...
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a 7 mois