Cloud-Init
É aconselhável instalar o Cloud-Init no ECS que será usado para criar uma imagem privada para que novos ECSs criados a partir da imagem privada suportem configurações personalizadas (por exemplo, alterar a senha de logon do ECSs.
Para obter detalhes sobre como instalar o Cloud-Init, consulte Instalação do Cloud-Init.
Para obter detalhes sobre como configurar o Cloud-Init, consulte Configuração do Cloud-Init.
A seguir, descrevemos problemas comuns que você pode encontrar ao instalar o Cloud-Init e suas soluções.
Ubuntu 16.04/CentOS 7: falha ao definir a inicialização automática do Cloud-Init
- Sintoma:
Depois que o Cloud-Init for instalado, execute o seguinte comando para definir a inicialização automática do Cloud-Init:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Informação semelhante à seguinte é exibida:
Figura 1 Falha ao habilitar o Cloud-Init para iniciar automaticamente
- Solução:
- Execute o seguinte comando para reverter a configuração:
systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Execute o seguinte comando para definir a inicialização automática novamente:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Execute o seguinte comando para verificar o status do Cloud-Init:
systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Conforme mostrado nas figuras a seguir, failed é exibido e todos os serviços estão no estado inactive.
Figura 2 Verificar o status do Cloud-Init
Figura 3 Verificar o status do Cloud-Init
Isso ocorre porque o endereço que o sistema usa para acessar o Cloud-Init é redirecionado para /usr/bin/, mas o caminho de instalação atual é /usr/local/bin.
- Execute o seguinte comando para copiar o Cloud-Init para o diretório usr/bin:
cp /usr/local/cloud-init /usr/bin/
- Execute o seguinte comando para reiniciar o Cloud-Init:
systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Figura 4 Reiniciar o Cloud-Init
- Execute o seguinte comando para verificar o status do Cloud-Init:
systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Execute o seguinte comando para reverter a configuração:
Ubuntu 14.04: chkconfig e systemctl não instalados
- Sintoma:
- Solução:
Execute os seguintes comandos para instalar o chkconfig:
apt-get update
apt-get install sysv-rc-conf
cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig
Execute o seguinte comando para consultar a versão do Cloud-Init:
cloud-init -v
Informação semelhante à seguinte é exibida:
-bash:/usr/bin/cloud-init:not found this command
Solução: execute o seguinte comando para copiar o Cloud-Init para o diretório usr/bin:
cp /usr/local/bin/cloud-init /usr/bin/
Debian 9.5: falha ao consultar a versão do Cloud-Init e definir a inicialização automática
- Execute o seguinte comando para consultar a versão do Cloud-Init:
Informação semelhante à seguinte é exibida:
-bash:/usr/bin/cloud-init:not found this command
Solução: execute o comando cp /usr/local/bin/cloud-init /usr/bin/ para copiar o Cloud-Init para o diretório usr/bin.
- Execute o comando cloud-init init --local.
Informação semelhante à seguinte é exibida:
Figura 5 Informações retornadas quando a inicialização automática do Cloud-Init é definida com sucesso
Análise de causa: a compilação falha porque o GCC não está instalado.
Solução:
Execute o seguinte comando para instalar o GCC. Em seguida, instale o Cloud-Init novamente.
yum -y install gcc
- Depois que o Cloud-Init for instalado, execute o seguinte comando para definir a inicialização automática do Cloud-Init:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Informação semelhante à seguinte é exibida.
Figura 6 Prompt indicando a falha na configuração da inicialização automática do Cloud-Init
Solução:
- Execute o seguinte comando para reverter a configuração:
systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Execute o seguinte comando para definir a inicialização automática novamente:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Execute o seguinte comando para reiniciar o Cloud-Init:
systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Execute o comando systemctl status para verificar o status do Cloud-Init. Informação semelhante à seguinte é exibida:
Figura 7 Verificar o status do serviço
- Execute o seguinte comando para reverter a configuração:
CentOS 7/Fedora 28: compilador C necessário não instalado
- Sintoma
Depois que o Cloud-Init for instalado com sucesso, execute o seguinte comando:
cloud-init init --local
As seguintes informações são exibidas:
/usr/lib/python2.5/site-packages/Cheetah/Compiler.py:1532: UserWarning: You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper. "\nYou don't have the C version of NameMapper installed!
- Análise de causa
Este alarme é gerado porque a versão C do NameMapper precisa ser compilada quando o Cloud-Init é instalado. No entanto, o GCC não está instalado no sistema e a compilação não pode ser realizada. Como resultado, o NameMapper está faltando.
- Solução
Execute o seguinte comando para instalar GCC:
yum -y install gcc
Reinstale o Cloud-Init.
CentOS 7/Fedora: falha ao usar a nova senha para fazer logon em um ECSs criado a partir de uma imagem
- Sintoma
Depois que o Cloud-Init é instalado com sucesso em um ECS, uma imagem é criada a partir do ECSs. Você não pode usar uma nova senha para efetuar logon nos ECSs criados a partir desta imagem. Ao efetuar logon nos ECSs usando a senha anterior, você descobre que as NICs desses ECSs não foram iniciadas.
Figura 8 NIC não iniciada
- Solução:
Faça logon no ECSs usado para criar a imagem, abra o arquivo de configuração DHCP /etc/sysconfig/network-scripts/ifcfg-ethX e comente HWADDR.