Exemplo de Cloud-config

Um exemplo de cloud-config é o seguinte código:

#cloud-config
repo_update: true
repo_upgrade: all
package_upgrade: true

packages:
- httpd24
- php56
- mysql55-server
- php56-mysqlnd

runcmd:
- service httpd start
- chkconfig httpd on
- groupadd www - [ sh, -c, "usermod -a -G www ec2-user" ]
- [ sh, -c, "chown -R root:www /var/www" ]
- chmod 2775 /var/www
- [ find, /var/www, -type, d, -exec, chmod, 2775, {}, + ]
- [ find, /var/www, -type, f, -exec, chmod, 0664, {}, + ]
- [ sh, -c, 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php' ]

Este exemplo inclui:

  • Atualização de repositório e atualização de pacotes
  • Instalação de pacotes específicos (httpd24, php56, mysql55-server, etc.)
  • Execução de comandos em tempo real (inicialização do serviço httpd, configuração do grupo www, etc.)

Utilizando o User-Data

O user-data é um arquivo que pode ser usado para personalizar a instalação de uma máquina virtual. Aqui estão exemplos de como usar o user-data no AWS e OpenStack:

  • AWS: https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/user-data.html
    $ openstack server create --image ubuntu-cloudimage --flavor 1 \
    --user-data mydata.file VM_INSTANCE
  • OpenStack: https://docs.openstack.org/nova/queens/user/user-data.html

Documentos

Aqui estão alguns documentos relacionados ao cloud-init:

  • http://cloudinit.readthedocs.io/en/latest/
  • http://cloudinit.readthedocs.io/en/latest/topics/hacking.html
  • http://cloudinit.readthedocs.io/en/latest/topics/examples.html
  • https://help.ubuntu.com/community/CloudInit
  • https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/4/html/End_User_Guide/user-data.html

Exemplo de Bash

Aqui está um exemplo de bash que pode ser executado diretamente no cloud-init:

#!/bin/bash
echo “Sua execução”

Este exemplo simples imprime uma mensagem na tela.

Recursos Adicionais

Aqui estão alguns recursos adicionais relacionados ao cloud-init:

  • Ubuntu Cloud-Init: https://www.youtube.com/watch?v=-zL3BdbKyGY