Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-10-09 GMT+08:00

Cloud-Init

Se recomienda instalar Cloud-Init en el ECS que se utilizará para crear una imagen privada para que las nuevas ECS creadas a partir de la imagen privada admitan configuraciones personalizadas (por ejemplo, cambiar la contraseña de inicio de sesión del ECS).

Para obtener más información sobre cómo instalar Cloud-Init, consulte Instalación de Cloud-Init.

Para obtener más información sobre cómo configurar Cloud-Init, consulte Configuración de Cloud-Init.

A continuación se describen los problemas comunes que puede encontrar al instalar Cloud-Init y sus soluciones.

Ubuntu 16.04/CentOS 7: No se pudo establecer el inicio automático de Cloud-Init

  • Síntoma:

    Después de instalar Cloud-Init, ejecute el siguiente comando para configurar el inicio automático de Cloud-Init:

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

    La información que aparecerá en pantalla será similar a la información siguiente:

    Figura 1 Error al habilitar Cloud-Init para que se inicie automáticamente
  • Solución:
    1. Ejecute el siguiente comando para revertir la configuración:

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

    2. Ejecute el siguiente comando para establecer el inicio automático de nuevo:

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

    3. Ejecute el siguiente comando para comprobar el estado de Cloud-Init:

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

      Como se muestra en las siguientes figuras, se muestra el failed y todos los servicios están en el estado inactive.

      Figura 2 Comprobación del estado de Cloud-Init
      Figura 3 Comprobación del estado de Cloud-Init

      Esto se debe a que la dirección que utiliza el sistema para acceder a Cloud-Init se redirige a /usr/bin/, pero la ruta de instalación real es /usr/local/bin.

    4. Ejecute el siguiente comando para copiar Cloud-Init en el directorio usr/bin:

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

    5. Ejecute el siguiente comando para reiniciar Cloud-Init:

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

      Figura 4 Reinicio de Cloud-Init
    6. Ejecute el siguiente comando para comprobar el estado de Cloud-Init:

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

Ubuntu 14.04: chkconfig y systemctl no instalados

  • Síntoma:

    chkconfig no está instalado.

  • Solución:

    Ejecute los siguientes comandos para instalar chkconfig:

    apt-get update

    apt-get install sysv-rc-conf

    cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig

    Ejecute el siguiente comando para consultar la versión de Cloud-Init:

    cloud-init -v

    La información que aparecerá en pantalla será similar a la información siguiente:

    -bash:/usr/bin/cloud-init:not found this command

    Solución: Ejecute el siguiente comando para copiar Cloud-Init en el directorio usr/bin:

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

Debian 9.5: Error al consultar la versión de Cloud-Init y establecer el inicio automático

  1. Ejecute el siguiente comando para consultar la versión de Cloud-Init:

    cloud-init -v

    La información que aparecerá en pantalla será similar a la información siguiente:

    -bash:/usr/bin/cloud-init:not found this command

    Solución: Ejecute el comando cp /usr/local/bin/cloud-init /usr/bin/ para copiar Cloud-Init en el directorio usr/bin.

  2. Ejecute el comando cloud-init init --local.

    La información que aparecerá en pantalla será similar a la información siguiente:

    Figura 5 Información devuelta cuando el inicio automático de Cloud-Init se establece correctamente

    Análisis de causa: La compilación falla porque GCC no está instalado.

    Solución:

    Ejecute el siguiente comando para instalar GCC. A continuación, vuelva a instalar Cloud-Init.

    yum -y install gcc

  3. Después de instalar Cloud-Init, ejecute el siguiente comando para configurar el inicio automático de Cloud-Init:

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

    Se muestra información similar a la siguiente.

    Figura 6 Aviso que indica el error al configurar el inicio automático de Cloud-Init

    Solución:

    1. Ejecute el siguiente comando para revertir la configuración:

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

    2. Ejecute el siguiente comando para establecer el inicio automático de nuevo:

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

    3. Ejecute el siguiente comando para reiniciar Cloud-Init:

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

      Ejecute el comando systemctl status para comprobar el estado de Cloud-Init. La información que aparecerá en pantalla será similar a la información siguiente:

      Figura 7 Verificación del estado del servicio

CentOS 7/Fedora 28: Compilador C requerido no instalado

  • Síntoma

    Una vez que Cloud-Init se haya instalado correctamente, ejecute el siguiente comando:

    cloud-init init --local

    Se muestra la siguiente información:

    /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álisis de causas

    Esta alarma se genera porque la versión C de NameMapper debe compilarse cuando se instala Cloud-Init. Sin embargo, GCC no está instalado en el sistema y la compilación no se puede realizar. Como resultado, falta NameMapper.

  • Solución

    Ejecute el siguiente comando para instalar GCC:

    yum -y install gcc

    Vuelva a instalar Cloud-Init.

CentOS 7/Fedora: Error al usar la nueva contraseña para iniciar sesión en un ECS creado a partir de una imagen

  • Síntoma

    Una vez que Cloud-Init se instala correctamente en un ECS, se crea una imagen desde el ECS. No puede usar una nueva contraseña para iniciar sesión en las ECS creadas a partir de esta imagen. Cuando inicia sesión en los ECS con la contraseña antigua, se encuentra que las NIC de estos ECS no se inician.

    Figura 8 NIC no iniciada
  • Solución:

    Inicie sesión en el ECS utilizado para crear la imagen, abra el archivo de configuración DHCP /etc/sysconfig/network-scripts/ifcfg-ethX y comente HWADDR.

Cloud-Init Preguntas frecuentes

more