Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Para saber mais sobre o cloud-init ou solucioná-lo em um nível mais profundo, você precisa entender como ele funciona. Este documento destaca as partes importantes e explica as especificidades do Azure.
Quando cloud-init é incluído em uma imagem generalizada e uma VM é criada a partir dessa imagem, ela processa configurações e é executada através de cinco estágios durante a inicialização inicial. Esses estágios mostram em que ponto o cloud-init aplica suas configurações.
Compreender a configuração Cloud-Init
Configurar uma VM para ser executada em uma plataforma usa cloud-init para aplicar várias configurações. As principais configurações com as quais você interage é User data (customData), que suporta vários formatos. Para obter mais informações, consulte a documentação deUser-Data Formats & cloud-init 21.2. Você também tem a capacidade de adicionar e executar scripts (/var/lib/cloud/scripts) para outras configurações.
Imagens pré-configuradas do Azure Marketplace
Algumas configurações já estão integradas em imagens do Azure Marketplace que vêm com cloud-init.
Fonte de dados em nuvem - cloud-init contém código que pode interagir com plataformas de nuvem, esses códigos são chamados de 'fontes de dados'. Quando uma VM é criada a partir de uma imagem cloud-init no Azure, o cloud-init carrega o datasource do Azure, que interage com os endpoints de metadados do Azure para obter a configuração específica da VM.
Configuração de tempo de execução (/run/cloud-init).
Configuração de imagem (/etc/cloud), como
/etc/cloud/cloud.cfg,/etc/cloud/cloud.cfg.d/*.cfg. Um exemplo de onde esta configuração é utilizada no Azure é que é comum que as imagens do sistema operativo Linux com cloud-init tenham uma diretiva de fonte de dados do Azure que informa ao cloud-init qual fonte de dados deve usar, esta configuração economiza tempo ao cloud-init.sudo cat /etc/cloud/cloud.cfg.d/90_dpkg.cfg# to update this file, run dpkg-reconfigure cloud-init datasource_list: [ Azure ]
Estágios de inicialização Cloud-init (configuração de processamento)
Quando você provisiona VMs com cloud-init, há cinco estágios de inicialização de configuração. A saída desses estágios é visível nos logs.
Etapa do gerador: O gerador do sistema cloud-init inicia-se e verifica se o cloud-init deve ser incluído nos objetivos de arranque; se sim, habilita o cloud-init.
Estágio local cloud-init: aqui, o cloud-init procura a fonte de dados "Azure" local, que permite que o cloud-init interaja com o Azure e aplique uma configuração de rede, incluindo fallback.
Cloud-init init Stage (Network): A conectividade de rede deve estar ativa, e as informações da placa de rede (NIC) e da tabela de rotas devem ser geradas. Nesta etapa, os módulos listados em
cloud_init_modules/etc/cloud/cloud.cfgsão executados. A VM no Azure é montada, o disco efêmero é formatado, o nome do host é definido, juntamente com outras tarefas.Seguem-se alguns dos seguintes elementos
cloud_init_modules:- migrator - seed_random - bootcmd - write-files - growpart - resizefs - disk_setup - mounts - set_hostname - update_hostname - sshApós esse estágio, o cloud-init envia um sinal para a plataforma do Azure de que a VM foi provisionada com êxito. Alguns módulos podem ter falhado, no entanto, nem todas as falhas de módulo resultam automaticamente em uma falha de provisionamento.
Cloud-init Config Stage: Nesta etapa, os módulos definidos e listados em
cloud_config_modules/etc/cloud/cloud.cfg são executados.Estágio final do Cloud-init: Nesta etapa final, os módulos em
cloud_final_modules, listados em/etc/cloud/cloud.cfg, são executados. Aqui os módulos que precisam ser executados no final do processo de inicialização são executados, como instalações de pacotes e scripts de execução, etc.- Durante esta etapa, você pode executar scripts colocando-os nos diretórios em
/var/lib/cloud/scripts:-
per-boot- scripts dentro deste diretório, executados em cada reinicialização -
per-instance- scripts dentro deste diretório são executados quando uma nova instância é inicializada pela primeira vez -
per-once- scripts dentro deste diretório executados apenas uma vez
-
- Durante esta etapa, você pode executar scripts colocando-os nos diretórios em