Criando Seu Primeiro Playbook
Vamos começar criando um playbook Ansible simples que criará um diretório e um arquivo na máquina local. Isso ajudará você a entender a estrutura básica de um playbook e como executá-lo.
Primeiro, vamos criar um novo arquivo chamado first_playbook.yml no diretório /home/labex/project:
nano /home/labex/project/first_playbook.yml
Este comando abre o editor de texto nano. Se você não estiver familiarizado com o nano, não se preocupe - é um editor de texto simples. Você pode digitar diretamente nele.
Agora, adicione o seguinte conteúdo ao arquivo:
---
- name: My First Playbook
hosts: localhost
connection: local
tasks:
- name: Create a directory
file:
path: /home/labex/project/test_directory
state: directory
mode: "0755"
- name: Create a file
copy:
content: "Hello from Ansible!"
dest: /home/labex/project/test_directory/hello.txt
Vamos analisar este playbook para entender cada parte:
- O
--- no topo marca o início de um arquivo YAML. YAML é o formato usado para playbooks Ansible.
name: My First Playbook é um nome descritivo para este play. Ele ajuda você a identificar o que este playbook faz.
hosts: localhost especifica que este playbook será executado na máquina local. Em um cenário real, você pode especificar hosts remotos aqui.
connection: local diz ao Ansible para executar o playbook localmente em vez de usar SSH. Isso é útil para testes e para tarefas que precisam ser executadas no próprio nó de controle do Ansible.
tasks: é seguido por uma lista de tarefas a serem executadas. Cada tarefa é uma ação que você deseja que o Ansible execute.
- Cada tarefa tem um
name para descrição. Isso ajuda você a entender o que cada tarefa faz e facilita a solução de problemas.
- As tarefas usam módulos Ansible:
- O módulo
file é usado para criar o diretório.
- O módulo
copy é usado para criar um arquivo com conteúdo específico.
Não se preocupe se você ainda não entender todos os módulos. À medida que você avança, aprenderá sobre muitos mais módulos e seus usos.
Salve e saia do editor. No nano, você pode fazer isso pressionando Ctrl+X, depois Y e depois Enter.
Agora, vamos executar este playbook. No seu terminal, digite:
ansible-playbook /home/labex/project/first_playbook.yml
Este comando diz ao Ansible para executar o playbook que acabamos de criar. Você deve ver uma saída semelhante a esta:
PLAY [My First Playbook] ******************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Create a directory] ******************************************************
changed: [localhost]
TASK [Create a file] ***********************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Esta saída mostra que o Ansible executou nossas tarefas com sucesso. O status "changed" indica que o Ansible fez alterações no sistema (criou um diretório e um arquivo).
Se você quiser verificar os resultados manualmente, pode usar estes comandos:
ls -l /home/labex/project/test_directory
cat /home/labex/project/test_directory/hello.txt
O primeiro comando deve mostrar o diretório que criamos, e o segundo deve exibir o conteúdo do arquivo que criamos.