Roles e playbooks do Ansible utilizados para provisionar as instâncias do desafio final da Turma 03 do Bootcamp de Formação SRE da ElvenWorks.
-
Clone o repositório:
$ git clone https://github.com/flaudisio/bootcamp-ansible-playbooks.git $ cd bootcamp-ansible-playbooks/
-
Instale o Ansible e dependências do Galaxy:
$ make install-ansible $ make install-galaxy-deps
-
Ative o virtualenv:
$ eval $( make activate ) $ ansible --version
-
Configure quaisquer chaves SSH necessárias e execute o Ansible:
$ export ANSIBLE_PRIVATE_KEY_FILE=~/.ssh/example.pem $ ansible all -i inventories/example.ini -m ping $ ansible-playbook playbooks/example.yml -i inventories/example.ini
Para remover o virtualenv do Ansible e quaisquer collections/roles baixadas, execute:
$ make uninstall
Utilize o script setup-instance.sh
no user data da instância. Exemplo:
#!/bin/bash
export ENVIRONMENT="development"
export SERVICE="wireguard"
curl -m 5 --retry 2 -fL "https://raw.githubusercontent.com/flaudisio/bootcamp-ansible-playbooks/main/_scripts/setup-instance.sh" | bash
Para provisionar uma instância que não foi inicializada via user data, utilize o playbook de inicialização seguido pelo playbook relativo à instância.
Exemplo:
$ ansible-playbook -i inventories/development/wireguard.aws_ec2.yml playbooks/init-ansible-venv.yml
$ ansible-playbook -i inventories/development/wireguard.aws_ec2.yml playbooks/role-wireguard.yml