0Pricing
DevOps Bootcamp · Aula

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.conf

A 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.conf

Onde 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.yml

Um 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 nginx

template 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

  1. O módulo template e arquivos .j2
  2. Variáveis e expressões em Jinja2
  3. Loops e blocos if em modelos
  4. Filtros: default, join e upper
← Voltar para DevOps Bootcamp