Criando um Playbook Ansible
Anatomia de um Playbook Ansible
Um Playbook Ansible é um arquivo de configuração baseado em YAML que define o estado desejado de sua infraestrutura. Ele consiste em um ou mais "plays", cada um dos quais se destina a um conjunto específico de hosts e executa uma série de "tasks" nesses hosts.
Aqui está um exemplo de um Playbook Ansible simples:
- hosts: all
tasks:
- name: Instalar Apache
apt:
name: apache2
state: present
- name: Iniciar Apache
service:
name: apache2
state: started
Neste exemplo, o playbook se destina a todos os hosts e executa duas tarefas: instalar o servidor web Apache e iniciar o serviço Apache.
Definindo Hosts
Ansible utiliza um arquivo "inventory" para definir os hosts que seu playbook irá atingir. O arquivo de inventory pode ser um arquivo de texto simples ou um script dinâmico que gera a lista de hosts.
Aqui está um exemplo de um arquivo de inventory simples:
[webservers]
web01 ansible_host=192.168.1.100
web02 ansible_host=192.168.1.101
[databases]
db01 ansible_host=192.168.1.200
db02 ansible_host=192.168.1.201
Neste exemplo, o arquivo de inventory define dois grupos de hosts: "webservers" e "databases".
Executando um Playbook Ansible
Para executar um Playbook Ansible, você pode usar o comando ansible-playbook. Aqui está um exemplo:
ansible-playbook -i inventory.txt playbook.yml
Este comando executa o playbook definido no arquivo playbook.yml, usando o arquivo de inventory inventory.txt.
Variáveis e Templates Ansible
Ansible suporta o uso de variáveis e templates para tornar seus playbooks mais flexíveis e reutilizáveis. Você pode definir variáveis em seu playbook ou em um arquivo separado e usá-las para personalizar o comportamento de suas tarefas.
Ansible também suporta o uso de templates Jinja2, que permitem gerar dinamicamente arquivos de configuração ou outros conteúdos com base em suas variáveis.
Dominando o uso de Playbooks Ansible, variáveis e templates, você pode criar soluções de automação poderosas e escaláveis para sua infraestrutura.