Perché ricevo degli errori quando utilizzo yum sulla mia istanza EC2 con Amazon Linux 1 o Amazon Linux 2?

5 minuti di lettura
0

Perché ricevo degli errori quando utilizzo yum sulla mia istanza Amazon Elastic Compute Cloud (Amazon EC2) con Amazon Linux 1 o Amazon Linux 2?

Breve descrizione

Usa i messaggi di output del comando yum per determinare quale errore si è verificato. Di seguito sono riportati i messaggi di errore più comuni:

  • Connessione scaduta XXX millisecondi
  • Errore HTTP 403 - Proibito
  • Impossibile risolvere l'host: xxxxxxxxx.$awsregion.$awsdomain
  • Errore HTTP 407 - Autenticazione proxy richiesta
  • **Tempo di risoluzione scaduto dopo 5000 millisecondi **

Risoluzione

Connessione scaduta XXXX millisecondi

1.    Verifica che il gruppo di sicurezza collegato alla tua istanza EC2 consenta il traffico http/https in uscita.

2.    Verifica che gli ACL di rete associati alla sottorete della tua istanza EC2 consentano il traffico http/https in uscita attraverso i tuoi NACL.

L'esempio seguente mostra un ACL di rete personalizzato che consente il traffico in uscita sulle porte 80 e 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.    Verifica che la tua istanza EC2 abbia accesso ai repository Amazon Linux utilizzando una delle seguenti opzioni

  • L'istanza si trova in una sottorete pubblica con un gateway Internet. Per ulteriori informazioni, consulta Attivare l'accesso a Internet.
  • L'istanza si trova in una sottorete privata con un gateway NAT. Per ulteriori informazioni, consulta Gateway NAT.
  • La tua istanza si trova in una sottorete privata con un'istanza NAT. Per ulteriori informazioni, consulta Istanze NAT.
  • La tua istanza si trova in una sottorete pubblica o privata con un endpoint VPC Amazon Simple Storage Service (Amazon S3). Per ulteriori informazioni, consulta Come posso aggiornare yum o installare pacchetti senza accesso a Internet su istanze EC2 che eseguono Amazon Linux 1 o Amazon Linux 2?
  • La tua istanza si trova in una sottorete privata con un proxy. Per configurare yum in modo che utilizzi un proxy, modifica il file /etc/yum.conf con i seguenti parametri. Nell'esempio seguente, sostituisci proxy-port, proxy-user-name e proxy-password con i valori corretti per il tuo proxy.
proxy=http://proxy-server-IP-address:proxy_port
proxy_username="proxy-user-name"
proxy_password="proxy-password"

Per ulteriori informazioni, consulta Uso di yum con un server proxy sul sito fedoraproject.org.

4.    Dopo aver configurato l'istanza utilizzando una delle opzioni precedenti, esegui il seguente comando curl per confermare che l'istanza possa accedere al repository. Nel comando seguente, sostituisci us-east-1 con la regione della tua istanza.

Amazon Linux 1

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

Amazon Linux 2

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

Nota: curl è preinstallato su tutte le AMI, ma i repository Amazon Linux non sono accessibili senza credenziali. curl non può accettare le credenziali di un repository yum. Riceverai un messaggio di errore di accesso negato simile a quello riportato di seguito. Il comando curl viene utilizzato per verificare se il problema di timeout è ancora presente. Il messaggio di errore indica che la rete è raggiungibile e il problema di timeout non si verifica più:

$ 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

Per installare software, ad esempio telnet, esegui il seguente comando:

sudo yum install telnet

Errore HTTP 403 - Proibito

1.    Se utilizzi un endpoint Amazon S3 VPC nel VPC della tua istanza, verifica che la policy allegata consenta la chiamata API s3:GetObject sulle seguenti risorse:

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: Sostituisci la regione negli esempi precedenti con la regione della tua istanza.

Per ulteriori informazioni, consulta Policy degli endpoint per Amazon S3.

2.    Se utilizzi un proxy per accedere ai repository Amazon Linux, verifica che i sottodomini .amazonaws.com siano nell'elenco dei siti consentiti nella configurazione del proxy.

Impossibile risolvere l'host: xxxxxxxxx.$awsregion.$awsdomain

  1. Esegui i seguenti comandi per verificare che la directory /etc/yum/vars definisca le variabili yum personalizzate. La directory deve includere le variabili awsdomain e awsregion. Nel seguente comando di esempio, sostituisci us-east-1 con la regione della tua istanza.
$ cat /etc/yum/vars/awsregion
us-east-1

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

2.    Verifica la risoluzione DNS della tua istanza. L'istanza deve risolvere il nome di dominio dei repository Amazon Linux:

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

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

Le interrogazioni al server DNS fornito da Amazon all'indirizzo 169.254.169.253 IPv4 e all'indirizzo fd00:ec2::253 IPv6 avranno successo. Anche le interrogazioni al server DNS fornito da Amazon all'indirizzo IP riservato alla base dell'intervallo di rete IPv4 della VPC più due avranno successo. L'indirizzo IPv6 è accessibile solo sulle istanze EC2 basate sul sistema Nitro.

Errore HTTP 407 - Autenticazione proxy richiesta

Questo accade se il tuo proxy non riesce a completare la richiesta perché yum non ha le credenziali di autenticazione corrette per il tuo server proxy. Per configurare yum per l'uso di un proxy, modifica il file /etc/yum.conf con i seguenti parametri:

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

Tempo di risoluzione scaduto dopo 5000 millisecondi

Esegui il seguente comando per verificare che il file /etc/resolv.conf abbia l'IP corretto per il tuo server DNS:

cat /etc/resolv.conf
nameserver YourDNSIP

È possibile modificare il periodo di timeout di 5000 millisecondi modificando il valore di timeout nel file di configurazione yum.

Per controllare l'ora della query usando dig, esegui il seguente comando:

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

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa