Cloud-Init
O CycleCloud suporta o cloud-init como forma de configurar uma máquina virtual (VM) no primeiro arranque antes de qualquer outra configuração específica do CycleCloud ocorrer na VM. A utilização do cloud-init é uma forma eficaz de configurar aspetos de uma VM (como redes, espelhos yum/apt, etc.) antes de qualquer software gerido pelo CycleCloud (agendadores HPC) ser instalado.
Segue-se um exemplo simples de especificar um script bash para ser executado no arranque com o CloudInit
atributo num modelo de cluster:
[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''
Nota
As cadeias de carateres com as asas triplas podem ser utilizadas num modelo de cluster para especificar uma cadeia de múltiplas linhas, como um script de bash ou YAML.
Aviso
Nem todas as imagens do SO no suporte do Azure cloud-init. Veja suporte do cloud-init para máquinas virtuais no Azure para obter detalhes sobre as imagens que suportam o cloud-init e a linha cronológica para quando estará disponível um suporte mais amplo.
Definir Cloud-Init com a IU
A IU do CycleCloud tem suporte para edição cloud-init. Ao criar ou editar qualquer cluster, um novo separador com o nome "Cloud-Init" irá permitir-lhe editar o script cloud-init para cada nó no cluster. O editor na IU do CycleCloud permitirá qualquer introdução de texto. O realce da sintaxe está ativado para Python, scripts da Shell ou YAML.
Ordenação Cloud-Init e Processamento de Erros
Para nós do CycleCloud com CloudInit
especificados, o CycleCloud aprovisionará a VM e aguardará até que o cloud-init seja executado até à conclusão antes de qualquer outra configuração ocorrer. Se CloudInit
for especificado no nó e o CycleCloud não detetar o suporte do cloud-init para o SO, o nó entrará num estado de erro e o motivo será reencaminhado para o CycleCloud. Se o CloudInit
script não for executado (por exemplo, devido a um erro de scripting ou erro de sintaxe), o nó entrará num estado de erro e o erro comunicado pelo cloud-init será reencaminhado para o CycleCloud.
Assim que o cloud-init tiver sido executado até à conclusão sem erros, o CycleCloud continuará a configurar a VM como habitualmente.
Importante
O CycleCloud não irá intercalar automaticamente scripts cloud-init. Se um [node defaults]
especificar um cloud-init, bem como um nó que herda das predefinições, o script cloud-init no [node defaults]
será substituído. A intercalação manual de scripts é sugerida quando o código tem de ser partilhado. Em alternativa, um formato de dados de utilizador de ficheiro de inclusão pode ser utilizado para incluir uma lista de URLs a processar pelo cloud-init.