Virtualização
O que é cloud-init?
cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform. It handles SSH key injection, hostname, network configuration and arbitrary user scripts, which is what makes fully automated provisioning possible.
Porque é que cloud-init importa
Trata da injeção de chaves SSH, hostname, configuração de rede e scripts de utilizador arbitrários, o que torna possível o aprovisionamento totalmente automatizado.
cloud-init na prática
Num arranque limpo, o cloud-init corre antes de os seus serviços iniciarem. Observaria a consola para 'running modules' e consultaria /var/log/cloud-init-output.log. Um script user-data mal configurado pode bloquear o arranque ou deixar o SSH travado. Testaria numa instância descartável primeiro. Pode reexecutar com 'cloud-init clean' e reiniciar. Errar custa tempo a reprovisionar a partir do painel, ou uma sessão VNC para corrigir manualmente.
O que se costuma entender mal sobre cloud-init
O erro comum é assumir que o cloud-init volta a ser executado a cada arranque. Ele é executado uma vez no primeiro arranque. Se adicionar um script ao user-data esperando que seja aplicado no reinício, não será. Correção: use-o apenas para o aprovisionamento inicial ou chame explicitamente 'cloud-init clean' para repor o estado para uma nova execução.
cloud-init — perguntas frequentes
Como posso passar user-data ao cloud-init?
Ao aprovisionar a partir do painel ou da API, pode fornecer um campo de user-data. Ele é injetado através dos metadados e o cloud-init aplica-o na primeira inicialização. Mantenha-o como um script de shell ou um YAML cloud-config, conforme o que precisar.
Posso usar cloud-init com uma ISO personalizada?
Sim, se a ISO tiver cloud-init instalado. Por exemplo, as imagens cloud das principais distribuições incluem-no. Também pode carregar a sua própria imagem com cloud-init. Assegure-se de que a instância é KVM, não contentor, pois o cloud-init depende de metadados fornecidos pela plataforma.
Mais de virtualização
- KVM
- KVM é virtualização completa de hardware integrada no kernel Linux, dando a cada convidado o seu próprio kernel e isolamento imposto por hardware dos outros inquilinos.
- OpenVZ
- OpenVZ é virtualização baseada em contentores em que cada instância partilha o kernel do anfitrião, pelo que os convidados não podem carregar módulos do kernel nem executar um sistema operativo diferente.
- LXC
- LXC é contentorização nativa do Linux que isola processos com namespaces e cgroups, partilhando o kernel do anfitrião.
- Hipervisor
- Um hipervisor é a camada de software que cria e executa máquinas virtuais, alocando CPU física, memória e I/O entre elas.
- Virtualização aninhada
- A virtualização aninhada permite que uma máquina virtual execute, ela própria, máquinas virtuais, expondo as extensões de virtualização do processador ao convidado.
- vCPU
- Uma vCPU é um processador virtual apresentado a um convidado, suportado por tempo de agendamento num núcleo físico ou thread.