Apt não consegue fazer update
Background e contextualização
Este problema foi observado no controller stratus, o nó de testes que é, parcialmente, subordinado ao controller cirrus. Por questões de praticidade, o stratus tem seu BMC conectado via rede ao cirrus, de modo que é possível instanciá-lo, por exemplo, ao MAAS, dando flexibilidade para derrubar e subir e descer o ambiente de testes sob demanda.
Descrição do problema
Ao rodar o comando apt update
é apresentada a seguinte mensagem:
Este erro foi observado duas vezes:
- Quando tirávamos a rede 10.43.0.0 (rede entre o cirrus e o stratus), que era descrita no netplan
- Quando o cirrus ficava fora do ar, por exemplo, quando ele era desligado.
Este erro impedia que se instalasse pacotes apt no controller quando a comunicação entre os controllers era interrompida, mesmo o stratus estando, de fato, conectado à internet.
Resolução do problema
Como é possível observar na mensagem de erro, tem-se a seguinte mensagem
Could not connect to 10.43.0.1:8000 (10.43.0.1). - connect (113: No route to host)
Isso indica que o apt está usando a rede do cirrus para conectar-se aos seus repositórios. Isso é feito por uma configuração de proxy, que faz com que o cirrus seja um intermediário em todas as comunicação entre o stratus e os respositórios.
Para resolver isso, deve-se retirar o proxy do cirrus no stratus, uma vez que o stratus não deveria estar tão dependente do cirrus
- Listar os arquivos de configuração do apt do stratus
sudo ls /etc/apt/apt.conf.d
temos o seguinte output:
O arquivo que fala sobre proxy é o 90cunrtin-aptproxy
.
- Remover a configuração do proxy
No arquivo
90cunrtin-aptproxy
, tem-se o seguinte:
# 90cunrtin-aptproxy
Acquire::http::Proxy "http://10.43.0.1:8000/";
Deve-se remover essa configuração (pode-se somente comentá-la também)
# 90cunrtin-aptproxy
- Acquire::http::Proxy "http://10.43.0.1:8000/";
+ # Acquire::http::Proxy "http://10.43.0.1:8000/";
- Por fim, basta testar se o apt consegue fazer seus updates
sudo apt update
Em nosso caso:
Conclusão e comentários adicionais
Esta configuração do apt deixava o stratus dependente do cirrus. Essa mudança permite que, apesar de ainda existir uma hierarquia entre as máquinas, isso não deixe seu uso independente
Referências e links úteis
- Como adicionar (e consequentemente como remover) o proxy do apt - https://linuxiac.com/how-to-use-apt-with-proxy/