Cloud-Init
CycleCloud admite cloud-init como una forma de configurar una máquina virtual (VM) en el primer arranque antes de que se produzca cualquier otra configuración específica de CycleCloud en la máquina virtual. El uso de cloud-init es una manera eficaz de configurar aspectos de una máquina virtual (como redes, reflejos yum/apt, etc.) antes de instalar cualquier software administrado por CycleCloud (programadores de HPC).
A continuación se muestra un ejemplo sencillo de cómo especificar un script de Bash para ejecutarse en el arranque mediante el CloudInit
atributo en una plantilla de clúster:
[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''
Nota
Las cadenas triples entre comillas se pueden usar en una plantilla de clúster para especificar una cadena de varias líneas, como un script bash o YAML.
Advertencia
No todas las imágenes del sistema operativo de Soporte técnico de Azure cloud-init. Consulte compatibilidad con cloud-init para máquinas virtuales en Azure para más información sobre qué imágenes admiten cloud-init y la escala de tiempo para cuándo estará disponible soporte técnico más amplio.
Establecer Cloud-Init mediante la interfaz de usuario
La interfaz de usuario de CycleCloud admite la edición de cloud-init. Al crear o editar cualquier clúster, una nueva pestaña denominada "Cloud-Init" le permitirá editar el script cloud-init para cada nodo del clúster. El editor de la interfaz de usuario de CycleCloud permitirá cualquier entrada de texto. El resaltado de sintaxis está habilitado para Python, scripts de Shell o YAML.
Cloud-Init Ordenación y control de errores
En el caso de los nodos de CycleCloud con CloudInit
especificados, CycleCloud aprovisionará la máquina virtual y esperará hasta que cloud-init se haya ejecutado hasta su finalización antes de que tenga lugar cualquier otra configuración. Si CloudInit
se especifica en el nodo y CycleCloud no detecta la compatibilidad con cloud-init para el sistema operativo, el nodo entrará en un estado de error y el motivo se retransmitirá a CycleCloud. Si el CloudInit
script no se ejecuta (por ejemplo, debido a un error de scripting o error de sintaxis), el nodo entrará en un estado de error y el error notificado por cloud-init se retransmitirá a CycleCloud.
Una vez que cloud-init se haya ejecutado hasta su finalización sin errores, CycleCloud seguirá configurando la máquina virtual como de costumbre.
Importante
CycleCloud no combinará automáticamente scripts cloud-init. Si especifica [node defaults]
un valor cloud-init, así como un nodo que hereda de los valores predeterminados, se sobrescribirá el script cloud-init de [node defaults]
. La combinación de scripts manualmente se sugiere cuando es necesario compartir código. Como alternativa, se puede usar un formato de datos de usuario de archivo de inclusión para incluir una lista de direcciones URL que cloud-init va a procesar.