Comandos Clave - 353.3 cloud-init

Comandos de cloud-init

ComandoDescripción
cloud-init statusEstado actual de cloud-init
cloud-init status --longEstado detallado con errores
cloud-init status --waitEsperar a que cloud-init termine
cloud-init query instance_idConsultar instance-id
cloud-init query userdataConsultar user-data
cloud-init query ds.meta_dataConsultar meta-data del datasource
cloud-init query ds.meta_data.local_hostnameConsultar dato específico
cloud-init cleanLimpiar estado (re-ejecución en próximo boot)
cloud-init clean --logsLimpiar estado y logs
cloud-init single --name <módulo> --frequency alwaysRe-ejecutar módulo
cloud-init analyze showAnalizar tiempos de ejecución
cloud-init analyze blameMódulos ordenados por tiempo
cloud-init schema --docsVer documentación de módulos
cloud-init schema --config-file <file>Validar archivo cloud-config
cloud-init collect-logsRecopilar logs para diagnóstico

Crear ISO NoCloud

ComandoDescripción
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-dataCrear ISO NoCloud
mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-dataAlternativa a genisoimage
cloud-localds seed.iso user-data meta-dataCrear ISO con cloud-utils

Módulos cloud-config Principales

MóduloEjemploDescripción
hostnamehostname: server1Configurar hostname
usersusers: [...]Crear y configurar usuarios
packagespackages: [nginx, curl]Instalar paquetes
package_updatepackage_update: trueActualizar lista de paquetes
package_upgradepackage_upgrade: trueActualizar paquetes
runcmdruncmd: [cmd1, cmd2]Ejecutar comandos
write_fileswrite_files: [...]Crear/escribir archivos
ssh_authorized_keysDentro de usersInyectar claves SSH
ssh_pwauthssh_pwauth: falseDesactivar login SSH por password
disable_rootdisable_root: trueDesactivar login root
ntpntp: {enabled: true}Configurar NTP
timezonetimezone: Europe/MadridConfigurar zona horaria
localelocale: es_ES.UTF-8Configurar locale
power_statepower_state: {mode: reboot}Reiniciar/apagar tras config

Etapas de cloud-init (Systemd Units)

EtapaUnitDescripción
init-localcloud-init-local.serviceDatasource local, antes de red
initcloud-init.serviceMetadata, configuración de red
configcloud-config.serviceMódulos de configuración
finalcloud-final.serviceScripts, runcmd, paquetes

Archivos y Directorios

RutaDescripción
/etc/cloud/cloud.cfgConfiguración principal
/etc/cloud/cloud.cfg.d/*.cfgConfiguraciones adicionales
/var/lib/cloud/Datos de runtime
/var/lib/cloud/instance/Datos de la instancia actual
/var/lib/cloud/seed/nocloud/Datos NoCloud locales
/var/log/cloud-init.logLog principal
/var/log/cloud-init-output.logSalida de scripts y comandos
/run/cloud-init/status.jsonEstado actual en JSON

Datasources

DatasourceParámetro kernelPlataforma
NoCloudds=nocloud;s=<URL>Local (QEMU, VirtualBox)
NoCloud (red)ds=nocloud-net;s=http://IP/Local con red
EC2(automático)AWS
GCE(automático)Google Cloud
Azure(automático)Microsoft Azure
OpenStack(automático)OpenStack
ConfigDrive(automático)OpenStack/libvirt