Exercicio - Templates

Leia em outras linguagens:
uk English, japan日本語, brazil Portugues do Brasil, france Française,Español Español.

O Ansible usa o template Jinja2 para modificar arquivos antes de serem distribuídos para hosts gerenciados. O Jinja2 é um dos mecanismos de template mais usados para o Python (http://jinja.pocoo.org/).

Passo 1 - Usando Templates em Playbooks

Quando um template é criado, ele pode ser implantado nos hosts gerenciados usando o módulo template, que suporta a transferência de um arquivo local do nó de controle para os hosts gerenciados.

Como exemplo de uso de templates, você irá alterar o arquivo motd para conter dados específicos do host.

No diretório ~/ansible-files/ crie o arquivo de template motd-facts.j2:

Bem vindo ao {{ ansible_hostname }}.
{{ ansible_distribution }} {{ ansible_distribution_version}}
implementado na arquitetura {{ ansible_architecture }}.

O arquivo de template contém o texto básico que mais tarde será copiado. Ele também contém variáveis que serão substituídas nas máquinas de destino individualmente.

Em seguida, precisamos de um Playbook para usar este modelo. No diretório ~/ansible-files/ crie o Playbook motd-facts.yml:

---
- name: Preencher arquivo motd com dados do host
  hosts: node1
  become: yes
  tasks:
    - template:
        src: motd-facts.j2
        dest: /etc/motd
        owner: root
        group: root
        mode: 0644

Você já fez isso algumas vezes até agora:

Você deve ter visto como o Ansible substitui as variáveis pelos dados descobertos no sistema.

Passo 2 - Laboratório de Desafios

Adicione uma linha ao template para listar o kernel atual do nó gerenciado.

Dica

Use grep -i para o kernel

ATENÇÃO

Solução abaixo!

[student<X>@ansible ansible-files]$ ansible node1 -m setup|grep -i kernel
       "ansible_kernel": "3.10.0-693.el7.x86_64",
Bem vindo ao {{ ansible_hostname }}.
{{ ansible_distribution }} {{ ansible_distribution_version}}
implementado na arquitetura {{ ansible_architecture }}
executando o kernel {{ ansible_kernel }}.

Clique aqui para retornar ao Workshop Ansible for Red Hat Enterprise Linux