Compreendendo a Configuração e os Módulos do Ansible
Agora que temos o Ansible instalado e funcionando, vamos explorar sua configuração e o conceito de módulos.
Configuração do Ansible
O Ansible usa arquivos de configuração para controlar seu comportamento. O principal arquivo de configuração é ansible.cfg, que pode existir em vários locais. Vamos examinar o arquivo de configuração padrão:
ls -la /etc/ansible/
Você deve ver a estrutura de diretórios padrão do Ansible:
total 20
drwxr-xr-x 2 root root 4096 Aug 30 12:00 .
drwxr-xr-x 85 root root 4096 Aug 30 12:00 ..
-rw-r--r-- 1 root root 8669 Aug 30 12:00 ansible.cfg
-rw-r--r-- 1 root root 1021 Aug 30 12:00 hosts
Vamos dar uma olhada no arquivo hosts, que é o arquivo de inventário padrão:
cat /etc/ansible/hosts
O arquivo de inventário contém uma lista de hosts que o Ansible pode gerenciar. Por padrão, ele contém exemplos que estão comentados.
Criando uma Configuração Personalizada
Vamos criar nosso próprio arquivo de configuração do Ansible em nosso diretório de projeto. No WebIDE, crie um novo arquivo chamado ansible.cfg no diretório ~/project/ansible-test com o seguinte conteúdo:
[defaults]
inventory = ./inventory
host_key_checking = False
stdout_callback = yaml
Agora, vamos criar um arquivo de inventário simples. No WebIDE, crie um novo arquivo chamado inventory no diretório ~/project/ansible-test com o seguinte conteúdo:
[local]
localhost ansible_connection=local
Explorando os Módulos do Ansible
Os módulos do Ansible são unidades de código reutilizáveis que executam tarefas específicas. Vamos explorar alguns dos módulos disponíveis:
ansible-doc -l | wc -l
Este comando lista todos os módulos disponíveis e os conta. Você deve ver um grande número, normalmente mais de 1000 módulos.
Vamos visualizar a documentação de um módulo específico, como o módulo file que usamos em nosso playbook:
ansible-doc file
Você pode pressionar q para sair do visualizador de documentação.
Criando um Playbook Mais Complexo
Agora, vamos criar um playbook mais avançado que demonstra mais alguns módulos do Ansible. No WebIDE, crie um novo arquivo chamado modules-demo.yml no diretório ~/project/ansible-test com o seguinte conteúdo:
---
- name: Ansible Modules Demo
hosts: localhost
connection: local
gather_facts: yes
tasks:
- name: Display system information
debug:
msg: "System: {{ ansible_distribution }} {{ ansible_distribution_version }}"
- name: Create a directory
file:
path: /tmp/ansible-demo
state: directory
mode: "0755"
- name: Copy a file
copy:
content: "Created by Ansible modules demo playbook\n"
dest: /tmp/ansible-demo/info.txt
mode: "0644"
- name: Gather information about a file
stat:
path: /tmp/ansible-demo/info.txt
register: file_info
- name: Show file information
debug:
msg: "File created at {{ file_info.stat.mtime }}"
Vamos executar este playbook:
cd ~/project/ansible-test
ansible-playbook modules-demo.yml
O playbook faz o seguinte:
- Exibe informações sobre seu sistema
- Cria um diretório em
/tmp/ansible-demo
- Cria um arquivo com conteúdo personalizado
- Coleta informações sobre o arquivo
- Exibe o tempo de modificação do arquivo
Vamos marcar esta etapa como concluída para nosso script de verificação:
touch /tmp/ansible_modules_explored
Agora você aprendeu sobre a configuração do Ansible, arquivos de inventário e explorou vários módulos. Estes são componentes essenciais para trabalhar com o Ansible de forma eficaz.