¿Por qué recibo mensajes de error al utilizar yum en mi instancia de EC2 que ejecuta Amazon Linux 1 o Amazon Linux 2?

6 minutos de lectura
0

¿Por qué recibo mensajes de error al utilizar yum en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) que ejecuta Amazon Linux 1 o Amazon Linux 2?

Breve descripción

Utilice los mensajes de salida del comando yum para determinar qué error se ha producido. Los mensajes de error más comunes son los siguientes:

  • Connection timed out XXX milliseconds
  • HTTP Error 403 - Forbidden
  • Could not resolve host: xxxxxxxxx.$awsregion.$awsdomain
  • HTTP Error 407 - Proxy Authentication Required
  • Resolving timed out after 5000 milliseconds

Resolución

Connection timed out XXXX milliseconds

1.    Compruebe que el grupo de seguridad adjunto a su instancia de EC2 permita el tráfico http/https saliente.

2.    Compruebe que las ACL de red asociadas a la subred de su instancia de EC2 permitan el tráfico http/https saliente a través de sus NACL.

El siguiente ejemplo muestra una ACL de red personalizada que permite el tráfico saliente en los puertos 80 y 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.    Compruebe que su instancia de EC2 tenga acceso a los repositorios de Amazon Linux mediante una de las siguientes opciones

proxy=http://proxy-server-IP-address:proxy_port
proxy_username="proxy-user-name"
proxy_password="proxy-password"

Para obtener más información, consulte Using yum with a proxy server en el sitio web fedoraproject.org.

4.    Tras configurar la instancia mediante una de las opciones anteriores, ejecute el siguiente comando curl para confirmar que la instancia puede acceder al repositorio. En el siguiente comando, sustituya us-east-1 por la región de su instancia.

Amazon Linux 1

curl -I repo.us-east-1.amazonaws.com

Amazon Linux 2

curl -I amazonlinux.us-east-1.amazonaws.com

Nota: curl está preinstalado en todas las AMI, pero no se puede acceder a los repositorios de Amazon Linux sin credenciales. curl no puede aceptar las credenciales de un repositorio de yum. Recibirá un mensaje de error de acceso denegado similar al que se muestra a continuación. El comando curl se usa para comprobar si el problema de tiempo de espera sigue ocurriendo. El mensaje de error muestra que se puede acceder a la red y que ya no se produce el problema de tiempo de espera:

$ 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

Para instalar software, como telnet, ejecute el siguiente comando:

sudo yum install telnet

HTTP Error 403 - Forbidden

1.    Si utiliza un punto de conexión de VPC de Amazon S3 en la VPC de su instancia, compruebe que la política adjunta permita la llamada a la API S3:GetObject en los siguientes recursos:

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/*"

Nota: Sustituya la región de los ejemplos anteriores por la región de su instancia.

Para obtener más información, consulte Puntos de enlace de gateway para Amazon S3.

2.    Si utiliza un proxy para acceder a los repositorios de Amazon Linux, compruebe que los subdominios .amazonaws.com estén en la lista de permitidos de su configuración de proxy.

Could not resolve host: xxxxxxxx.$awsregion.$awsdomain

1.    Ejecute los siguientes comandos para comprobar que el directorio /etc/yum/vars defina las variables yum personalizadas. El directorio debe incluir las variables awsdomain y awsregion. En el siguiente comando de ejemplo, sustituya us-east-1 por la región de su instancia.

$ cat /etc/yum/vars/awsregion
us-east-1

$ cat /etc/yum/vars/awsdomain
amazonaws.com

2.    Verifique la resolución de DNS de su instancia. La instancia debe resolver el nombre de dominio de los repositorios de Amazon Linux:

$ dig amazonlinux.us-east-1.amazonaws.com

$ dig repo.us-east-1.amazonaws.com

Las consultas al servidor DNS proporcionado por Amazon en la dirección IPv4 169.254.169.253 y en la dirección IPv6 fd00:ec2::253 se realizarán correctamente. Las consultas al servidor DNS proporcionado por Amazon a la dirección IP reservada situada en la base del rango de redes IPv4 de VPC más dos también se realizarán correctamente. Solo se puede acceder a la dirección IPv6 en las instancias de EC2 integradas en el sistema Nitro.

HTTP Error 407 - Proxy Authentication Required

Esto ocurre si su proxy no puede completar la solicitud porque yum no tiene las credenciales de autenticación adecuadas para su servidor proxy. Para configurar yum para que utilice un proxy, modifique el archivo /etc/yum.conf con los siguientes parámetros:

proxy=http://proxy-server-IP-address:proxy_port
proxy_username=proxy-user-name
proxy_password=proxy-password

Resolving timed out after 5000 milliseconds

Ejecute el siguiente comando para comprobar que el archivo /etc/resolv.conf tiene la IP correcta para su servidor DNS:

cat /etc/resolv.conf
nameserver YourDNSIP

Puede modificar el período de tiempo de espera de 5000 milisegundos modificando el valor de tiempo de espera en el archivo de configuración de yum.

Para comprobar el tiempo de consulta mediante dig, ejecute el siguiente comando:

$ dig repo.us-east-1.amazonaws.com | grep time

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año