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:
- Ejecute el siguiente comando para revertir la configuración:
systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- 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
- 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.
- Ejecute el siguiente comando para copiar Cloud-Init en el directorio usr/bin:
cp /usr/local/cloud-init /usr/bin/
- 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
- 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
- Ejecute el siguiente comando para revertir la configuración:
Ubuntu 14.04: chkconfig y systemctl no instalados
- Síntoma:
- 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
- Ejecute el siguiente comando para consultar la versión de Cloud-Init:
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.
- 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
- 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:
- Ejecute el siguiente comando para revertir la configuración:
systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- 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
- 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
- Ejecute el siguiente comando para revertir la configuración:
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.