Capítulo 3. Configurando a nuvem-em-it
Este capítulo inclui exemplos das tarefas de configuração mais comuns para cloud-init
.
Sua configuração cloud-init
pode exigir que você adicione diretrizes ao arquivo cloud.cfg
e ao diretório cloud.cfg.d
. Alternativamente, sua fonte de dados específica pode exigir que você adicione diretivas aos arquivos, como um arquivo de dados do usuário e um arquivo de metadados. Uma fonte de dados pode exigir que você carregue suas diretivas em um servidor HTTP. Verifique os requisitos de sua fonte de dados e adicione diretivas de acordo.
3.1. Criação de uma máquina virtual que inclui uma fonte de dados NoCloud
O que se segue é um exemplo de procedimento para a criação de uma nova VM que inclui cloud-init
. Neste procedimento, você cria um arquivo meta-data
e user-data
. Seu arquivo meta-data
inclui detalhes de instância. Seu arquivo user-data
inclui informações para criar um usuário e conceder acesso. Você então inclui esses arquivos em uma nova imagem ISO, e anexa o arquivo ISO a uma nova VM criada a partir de uma imagem KVM Guest Image. Neste cenário, a fonte de dados é NoCloud.
Procedimento
Crie um diretório com o nome
cloudinitiso
e vá para ele.$ mkdir cloudinitiso $ cd cloudinitiso
Crie um arquivo chamado
meta-data
. Adicione as seguintes informações ao arquivo.instance-id: citest local-hostname: citest-1
Crie um arquivo chamado
user-data
. Inclua as seguintes informações no arquivo.#cloud-config password: cilogon chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== sample@redhat.com
NotaA linha final do arquivo
user-data
faz referência a uma chave pública SSH. Encontre suas chaves públicas SSH em~/.ssh/id_rsa.pub
. Ao tentar este procedimento de amostra, modifique a linha para incluir uma de suas chaves públicas.Use o comando
genisoimage
para criar uma imagem ISO que incluauser-data
emeta-data
.# genisoimage -output ciiso.iso -volid cidata -joliet -rock user-data meta-data I: -input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 331 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 183 extents written (0 MB)
-
Baixe uma imagem do KVM Guest Image do Portal do Cliente da Red Hat para o diretório
/var/lib/libvirt/images
. Criar uma nova VM da KVM Guest Image usando o comando
virt-install
. Inclua a imagem ISO que você criou como anexo à imagem.virt-install \ --memory 4096 \ --vcpus 4 \ --name mytestcivm \ --disk /var/lib/libvirt/images/rhel-8.1-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk /home/sample/cloudinitiso/ciiso.iso,device=cdrom \ --os-type Linux \ --os-variant rhel8.0 \ --virt-type kvm \ --graphics none \ --import
Acesse sua imagem como
cloud-user
. Sua senha écilogon
.citest-1 login: cloud-user Password: [cloud-user@citest-1 ~]$
Passos de verificação
Verifique o status
cloud-init
para ver se completou suas tarefas.[cloud-user@citest-1 instance]$ cloud-init status status: done
cloud-init
cria o layout do diretóriocloud-init
sob/var/lib/cloud
quando ele é executado, e atualiza ou muda certos conteúdos de diretório com base nas diretrizes que você especificou.Por exemplo, você pode confirmar que a fonte de dados é
NoCloud
, verificando o arquivo de fonte de dados.$ cd /var/lib/cloud/instance $ cat datasource DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0][dsmode=net]
cloud-init
copia os dados do usuário para/var/lib/cloud/instance/user-data.txt
.$cat user-data.txt #cloud-config password: cilogon chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== sample@redhat.com
Estas são amostras. O layout do diretório
cloud-init
inclui muito mais informações.
Para o OpenStack, o Guia de Instâncias e Imagens inclui informações para a configuração de uma instância usando cloud-init
. Veja Criando uma instância personalizada para procedimentos específicos.
Recursos adicionais