Por que estou recebendo erros ao usar o yum em minha instância do EC2 que executam o Amazon Linux 1 ou Amazon Linux 2?
Por que estou recebendo erros ao usar o yum na minha instância do Amazon Elastic Compute Cloud (Amazon EC2) executando o Amazon Linux 1 ou o Amazon Linux 2?
Descrição breve
Use as mensagens de saída do comando yum para determinar qual erro ocorreu. A seguir estão as mensagens de erro comuns:
- A conexão atingiu o tempo limite de XXX milissegundos
- Erro HTTP 403 - Proibido
- Não foi possível resolver o host: xxxxxxxxx.$awsregion.$awsdomain
- Erro HTTP 407 - Autenticação de proxy necessária
- A resolução atingiu o tempo limite após 5000 milissegundos
Resolução
A conexão atingiu o tempo limite de XXXX milissegundos
1. Verifique se o grupo de segurança conectado à sua instância do EC2 permite tráfego http/https de saída.
2. Verifique se as ACLs de rede associadas à sub-rede da sua instância do EC2 permitem tráfego http/https de saída por meio de suas NACLs.
O exemplo a seguir mostra uma ACL de rede personalizada que permite tráfego de saída nas portas 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. Verifique se a sua instância do EC2 tem acesso aos repositórios do Amazon Linux usando uma das seguintes opções
- Sua instância está em uma sub-rede pública com um gateway da Internet. Para mais informações, consulte Turn on internet access (Ativar o acesso à internet).
- Sua instância está em uma sub-rede privada com um gateway NAT. Para mais informações, consulte Gateways NAT.
- Sua instância está em uma sub-rede privada com uma instância NAT. Para mais informações, consulte Instâncias NAT.
- Sua instância está em uma sub-rede pública ou privada com um endpoint de VPC do Amazon Simple Storage Service (Amazon S3). Para mais informações, consulte How can I update yum or install packages without internet access on EC2 instances running Amazon Linux 1 or Amazon Linux 2? (Como posso atualizar o yum ou instalar pacotes sem acesso à Internet em minhas instâncias do EC2 que executam o Amazon Linux 1 ou Amazon Linux 2?)
- Sua instância está em uma sub-rede privada com um proxy. Para configurar o yum para usar um proxy, modifique o arquivo /etc/yum.conf com os parâmetros a seguir. No exemplo a seguir, substitua proxy-port, proxy-user-name e proxy-password pelos valores corretos para seu proxy.
proxy=http://proxy-server-IP-address:proxy_port proxy_username="proxy-user-name" proxy_password="proxy-password"
Para mais informações, consulte Usar o yum com um servidor proxy, no site fedoraproject.org.
4. Depois de configurar sua instância usando uma das opções anteriores, execute o comando curl a seguir para confirmar que essa instância pode acessar o repositório. No comando a seguir, substitua us-east-1 pela região da sua instância.
Amazon Linux 1
curl -I repo.us-east-1.amazonaws.com
Amazon Linux 2
curl -I amazonlinux.us-east-1.amazonaws.com
Observação: o curl está pré-instalado em todas as AMIs, mas os repositórios do Amazon Linux não podem ser acessados sem credenciais. O curl não pode receber as credenciais de um repositório yum. Você receberá uma mensagem de erro de acesso negado semelhante à mostrada abaixo. O comando curl é usado para testar se o problema de tempo limite ainda está ocorrendo. A mensagem de erro mostra que a rede está acessível e que o problema de tempo limite não está mais ocorrendo:
$ 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 um software, como o telnet, execute o seguinte comando:
sudo yum install telnet
Erro HTTP 403 - Proibido
1. Se você usa um endpoint de VPC Amazon S3 na VPC da sua instância, verifique se a política anexada permite a chamada da API s3:GetObject nos seguintes 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/*"
Observação: substitua a região nos exemplos anteriores pela região da sua instância.
Para mais informações, consulte Endpoint policies for Amazon S3 (Políticas de endpoint para o Amazon S3).
2. Se você usa um proxy para acessar repositórios do Amazon Linux, verifique se os subdomínios .amazonaws.com estão na lista de permissões na sua configuração de proxy.
Não foi possível resolver o host: xxxxxxxx.$awsregion.$awsdomain
1. Execute os comandos a seguir para verificar se o diretório /etc/yum/vars define variáveis personalizadas do yum. O diretório deve incluir as variáveis awsdomain e awsregion. No comando de exemplo a seguir, substitua us-east-1 pela região da sua instância.
$ cat /etc/yum/vars/awsregion us-east-1 $ cat /etc/yum/vars/awsdomain amazonaws.com
2. Verifique a resolução de DNS da sua instância. A instância deve resolver o nome de domínio dos repositórios do Amazon Linux:
$ dig amazonlinux.us-east-1.amazonaws.com $ dig repo.us-east-1.amazonaws.com
As consultas ao servidor DNS fornecido pela Amazon no endereço IPv4 169.254.169.253 e no endereço IPv6 fd00:ec2::253 serão bem-sucedidas. As consultas ao servidor DNS fornecido pela Amazon no endereço IP reservado na base do intervalo de rede IPv4 da VPC mais dois também serão bem-sucedidas. O endereço IPv6 é acessível somente em instâncias do EC2 criadas no Nitro System.
Erro HTTP 407 - Autenticação de proxy necessária
Ocorre se o proxy não consegue concluir a solicitação porque o yum não tem credenciais de autenticação adequadas para seu servidor proxy. Para configurar o yum para usar um proxy, modifique o arquivo /etc/yum.conf com os parâmetros a seguir:
proxy=http://proxy-server-IP-address:proxy_port proxy_username=proxy-user-name proxy_password=proxy-password
A resolução atingiu o tempo limite após 5000 milissegundos
Execute o comando a seguir para verificar se o arquivo /etc/resolv.conf tem o IP correto do seu servidor DNS:
cat /etc/resolv.conf nameserver YourDNSIP
Você pode modificar o período limite de 5000 milissegundos modificando o valor timeout no arquivo de configuração do yum.
Para verificar o tempo da consulta usando dig, execute o seguinte comando:
$ dig repo.us-east-1.amazonaws.com | grep time
Conteúdo relevante
- feita há 11 diaslg...
- Resposta aceitafeita há 9 diaslg...
- feita há 11 diaslg...
- feita há 25 diaslg...