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