Passo 6 - Playbook

Primeira Playbook

Os comandos Ad-Hoc executam apenas um módulo por vez. Mas e se a gente quiser criar uma sequência de tarefas com os módulos disponíveis? Aí que entram as playbooks.

Utilizando um arquivo no formato YAML (veja sintaxe YAML), todas as tarefas podem ser definidas em sequência e chamadas através de um único comando ansible-playbook -i <nome_inventario> <nome_playbook>.

Uma playbook basicamente é composta por ‘play’ e ‘tasks’. Uma ‘play’ é análoga a uma jogada ensaiada de basquete. Define-se quais jogadores participarão (Hosts alvo) e quais passos (tasks) serão executados. Num nível básico, uma ‘tasks’ nada mais é do que uma chamada aos módulos do Ansible.

Veja o exemplo abaixo. Copie, cole e salve o arquivo abaixo com o nome playbook.yml:

---

- name: 1 - Criando servidores web
  hosts: webservers

  tasks:
    # task 1
    - name: garantiar que o Apache esteja na última versão
      package: name=httpd state=latest
    # task 2
    - name: conter a linha '127.0.0.1 teste' no arquivo /etc/hosts
      lineinfile: path=/etc/hosts line='127.0.0.1 teste' state=present

- name: 2 - Criando o servidor de banco
  hosts: dbservers

  tasks:
    # task 1
    - name: garantir que o mysqld (MariaDB) está na última versão
      package: name=mariadb-server state=latest
    # task 2
    - name: garantir que o  mysqld (MariaDB) está executando (e habilitá-lo no boot)
      service: name=mariadb state=started enabled=yes

Execute o comando abaixo:

Clique aqui para expandir a saída

fatal: [web1.example.com]: FAILED! => {“changed”: false, “cmd”: “dnf install -y httpd”, “failed”: “Waiting for process with pid 7653 to finish.”