Aplicando Playbooks Reutilizáveis na Prática
Agora que você compreende as técnicas para criar playbooks Ansible reutilizáveis, vamos explorar como aplicá-las em um cenário prático.
Cenário: Implantando uma Aplicação Web
Imagine que você precisa implantar uma aplicação web em vários ambientes (por exemplo, desenvolvimento, homologação, produção). Você pode aproveitar playbooks reutilizáveis para agilizar o processo de implantação.
Estrutura do Playbook
A estrutura do seu playbook pode ser assim:
site.yml
roles/
common/
tasks/
main.yml
nginx/
tasks/
main.yml
myapp/
tasks/
main.yml
vars/
main.yml
site.yml
O playbook principal, site.yml, incluirá as roles necessárias:
---
- hosts: all
become: true
roles:
- common
- nginx
- myapp
role common
A role common instala pacotes básicos necessários em todos os ambientes:
---
- name: Instalar pacotes necessários
yum:
name:
- vim
- git
- epel-release
state: present
role nginx
A role nginx configura o servidor web:
---
- name: Instalar Nginx
yum:
name: nginx
state: present
- name: Iniciar serviço Nginx
service:
name: nginx
state: started
enabled: true
role myapp
A role myapp lida com a implantação da aplicação web:
---
- name: Implantar aplicação
unarchive:
src: "{{ app_source_url }}"
dest: /opt/myapp
remote_src: yes
- name: Iniciar aplicação
systemd:
name: myapp
state: started
enabled: true
A role myapp também usa uma variável definida em vars/main.yml para especificar a URL da fonte da aplicação.
Organizando seus playbooks em roles reutilizáveis, você pode facilmente aplicar a mesma automação em diferentes ambientes, reduzindo o tempo e o esforço necessários para gerenciar sua infraestrutura.