Leia isto em outros idiomas:
Inglês, Japonês, Português do Brasil, Francês, Espanhol.
O Exercício 1.5 introduz o templating Jinja2 dentro do Ansible, um recurso poderoso para gerar arquivos dinâmicos a partir de templates. Você aprenderá como criar templates que incorporam dados específicos do host, permitindo a criação de arquivos de configuração personalizados para cada host gerenciado.
O Ansible utiliza o Jinja2, uma linguagem de templating amplamente usada para Python, permitindo a geração de conteúdo dinâmico dentro dos arquivos. Essa capacidade é particularmente útil para configurar arquivos que devem variar de host para host.
Os templates terminam com a extensão .j2
e misturam conteúdo estático com espaços reservados dinâmicos envolvidos em ``.
No exemplo a seguir, vamos criar um template para a Mensagem do Dia (MOTD) que inclui informações dinâmicas do host.
Certifique-se de que um diretório de templates exista dentro do seu diretório lab_inventory para organizar seus templates.
mkdir -p ~/lab_inventory/templates
Crie um arquivo chamado motd.j2
no diretório de templates com o seguinte conteúdo:
Bem-vindo ao .
SO:
Arquitetura:
Este template exibe dinamicamente o nome do host, a distribuição do sistema operacional, a versão e a arquitetura de cada host gerenciado.
Utilize o módulo ansible.builtin.template
em um playbook para distribuir e renderizar o template em seus hosts gerenciados.
Modifique o playbook system_setup.yml
com o seguinte conteúdo:
---
- name: Configuração Básica do Sistema
hosts: all
become: true
tasks:
- name: Atualizar MOTD a partir do Template Jinja2
ansible.builtin.template:
src: templates/motd.j2
dest: /etc/motd
handlers:
- name: Recarregar Firewall
ansible.builtin.service:
name: firewalld
state: reloaded
O módulo ansible.builtin.template
pega o template motd.j2
e gera um arquivo /etc/motd
em cada host, preenchendo os espaços reservados do template com os fatos reais do host.
Execute o playbook para aplicar seu MOTD personalizado em todos os hosts gerenciados:
[student@ansible-1 lab_inventory]$ ansible-navigator run system_setup.yml -m stdout
PLAY [Configuração Básica do Sistema] *****************************************
.
.
.
TASK [Atualizar MOTD a partir do Template Jinja2] *****************************
changed: [node1]
changed: [node2]
changed: [node3]
changed: [ansible-1]
RECAP ************************************************************************
ansible-1 : ok=6 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
node1 : ok=8 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=8 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=8 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Verifique as alterações fazendo SSH para o nó, e você deverá ver a mensagem do dia:
[rhel@control ~]$ ssh node1
Bem-vindo ao node1.
SO: RedHat 8.7
Arquitetura: x86_64
Registre este sistema no Red Hat Insights: insights-client --register
Crie uma conta ou visualize todos os seus sistemas em https://red.ht/insights-dashboard
Último login: Seg Jan 29 16:30:31 2024 de 10.5.1.29
Navegação
Exercício anterior - Próximo exercício
Clique aqui para voltar ao workshop de Ansible para Red Hat Enterprise Linux