O módulo template e arquivos .j2
Implante um arquivo renderizado em um host.
O módulo template e arquivos .j2 é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Arquivos estáticos não bastam
O módulo copy distribui um arquivo sem alterações. Mas os arquivos de configuração frequentemente precisam de uma porta ou nome de host diferente em cada servidor, portanto as cópias estáticas não são suficientes. 🤔
Conheça o módulo template
O módulo template renderiza primeiro um arquivo por meio do Jinja2, preenchendo as variáveis, e depois copia o resultado para a máquina.
- name: Deploy config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.confA convenção .j2
Os arquivos de origem de modelos terminam em .j2 para indicar que são do Jinja2. É uma convenção, não uma regra rígida, mas todos a seguem.
src e dest
src aponta para o arquivo .j2 no seu nó de controle, e dest é o caminho final na máquina gerenciada.
template:
src: app.conf.j2
dest: /etc/app/app.confOnde ficam os modelos
Por padrão, o Ansible procura modelos em um diretório templates ao lado do seu playbook ou dentro de uma função. Não é necessário usar um prefixo de caminho.
templates/
nginx.conf.j2
site.ymlUm modelo mínimo
Dentro do arquivo .j2, o texto simples permanece como está e os marcadores {{ }} são substituídos. Aqui, uma variável de porta se torna um número real.
listen {{ http_port }};
server_name {{ domain }};Defina as permissões do arquivo
Assim como copy, template aceita owner, group e mode, fazendo com que o arquivo renderizado tenha a propriedade correta.
template:
src: app.conf.j2
dest: /etc/app.conf
mode: "0644"Valide antes de gravar
A opção validate executa um comando de verificação no arquivo renderizado antes de instalá-lo, para que uma configuração inválida nunca seja distribuída.
template:
src: sshd.j2
dest: /etc/ssh/sshd_config
validate: "sshd -t -f %s"Os modelos são idempotentes
Se a saída renderizada corresponder ao arquivo que já está na máquina, template informará ok e não fará alterações. É seguro executá-lo repetidamente.
Notifique um manipulador quando houver alteração
Combine template com notify para que um serviço só seja reiniciado quando o arquivo de configuração realmente mudar. Uma combinação perfeita.
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: restart nginxtemplate versus copy
Use copy quando um arquivo for igual em todos os lugares e template quando qualquer parte dele precisar variar conforme a máquina.
Verificação rápida
Você precisa de um arquivo de configuração cuja porta seja diferente em cada servidor. Qual módulo é adequado?
Recapitulação
Você conheceu o módulo template: ele renderiza um arquivo .j2 com Jinja2, coloca-o em dest, define as permissões e permanece idempotente. ✨
Perguntas Frequentes
A aula “O módulo template e arquivos .j2” é grátis?
Sim — o texto completo de “O módulo template e arquivos .j2” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “O módulo template e arquivos .j2”?
Implante um arquivo renderizado em um host. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “O módulo template e arquivos .j2”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O módulo template e arquivos .j2
- Variáveis e expressões em Jinja2
- Loops e blocos if em modelos
- Filtros: default, join e upper