Ansible : Introdução na criação de Playbooks para automação

Neste post será apresentado como configurar playbooks para automação de tarefas e sendo assim também manter o versionamento do ambiente .

Os Playbooks utilizam YAML que é um formato de codificação legíveis por humanos em liguagens como XML, C , Python e outras mais.

1) Ambiente :

10.0.0.30 ansible
10.0.0.31 server-01
10.0.0.32 server-02

O ambiente será o mesmo do ambiente de instalação .

http://fajlinux.com.br/devops/ansible-install/

2) Requisitos :

Configure o inventary com os servidores desejados, sem nosso exemplo o grupo fajlinux terá o server-01 e server-02.

/etc/ansible/hosts

Captura de Tela 2016-04-02 às 16.54.35

Teste a conectividade com os hosts com o comando “ansible -v -m ping fajlinux”

Captura de Tela 2016-04-02 às 16.56.20

3) Criando o primeiro job:

Neste exemplo será executado um yum update e a ultima versão do Apache nos servidores de grupo fajlinux.

vim job.yaml

- name: "Job update FAJLINUX"
  hosts: fajlinux

  tasks:
  - name: "update"
    shell: yum  update -y

Execute o arquivo com o comando ansible-playbooks

ansible-playbook  /opt/job.yaml

Captura de Tela 2016-04-02 às 17.10.58

Após executarmos o playbook job.yaml podemos ver que o python se encontra executando o yum nos servidores do grupo Fajlinux.

Captura de Tela 2016-04-02 às 17.11.20

4) Instando uma versão padrão de um pacote :

Em nosso teste criaremos um job para distribuir o Apache pelo o grupo Fajlinux.

vim /opt/apache.yaml

- hosts: fajlinux
  tasks:
  - name: Installing Latest version of Apache
    yum: pkg=httpd state=latest
  - name: Enable it on System Boot
    service: name=httpd enabled=yes
  - name: start apache
    service: name=httpd state=started
  - name: Create index file
    shell: echo "Ansible Apache `hostname`" >> /var/www/html/index.html

Executando o apache.yaml

ansible-playbook  /opt/apache.yaml

Captura de Tela 2016-04-02 às 17.41.35

5) Testes finais validando o Apache :

Para validar a instalação via Ansible foi chamado o Apache do server-02

Captura de Tela 2016-04-02 às 17.43.52

Executando o systemctl status httpd para ver o serviço no ar

Captura de Tela 2016-04-02 às 17.46.16

Referências

http://docs.ansible.com/ansible/yum_module.html
http://tutoriaisgnulinux.com/?p=15170