Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-09 GMT+08:00

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:
    1. Execute o seguinte comando para reverter a configuração:

      systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

    2. 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

    3. 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.

    4. Execute o seguinte comando para copiar o Cloud-Init para o diretório usr/bin:

      cp /usr/local/cloud-init /usr/bin/

    5. 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
    6. 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

Ubuntu 14.04: chkconfig e systemctl não instalados

  • Sintoma:

    O chkconfig não está instalado.

  • 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

  1. 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 comando cp /usr/local/bin/cloud-init /usr/bin/ para copiar o Cloud-Init para o diretório usr/bin.

  2. 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

  3. 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:

    1. Execute o seguinte comando para reverter a configuração:

      systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

    2. 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

    3. 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

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.