Sobes.tech
Middle+

Qual é a sua experiência com manipuladores e modelos para funções no DevOps?

sobes.tech IA

Resposta da IA

Trabalhei com manipuladores (handlers) e modelos (templates) no âmbito de sistemas de gestão de configuração e orquestração.

No Ansible, uso ativamente manipuladores para realizar ações dependentes de alterações nas tarefas. Por exemplo, reiniciar um serviço após atualizar um arquivo de configuração.

- nome: Atualizar arquivo de configuração
  ansible.builtin.template:
    src: templates/myapp.conf.j2
    dest: /etc/myapp/myapp.conf
  notify:
    - Reiniciar serviço myapp

- nome: Reiniciar serviço myapp
  ansible.builtin.service:
    nome: myapp
    estado: reiniciado
  listen:
    - "Reiniciar serviço myapp"

Utilizo modelos para gerar ficheiros de configuração com base em variáveis. Isto permite criar ficheiros dinâmicos adaptados a um ambiente ou servidor específicos.

# templates/myapp.conf.j2
[General]
ListenPort = {{ listen_port }}
LogLevel = {{ log_level | default('info') }}

No Terraform, aplico modelos para criar dados dinâmicos, por exemplo, scripts de dados de utilizador para inicializar VMs ou gerar ficheiros de configuração para serviços.

data "template_file" "user_data" {
  template = file("${path.module}/user_data.sh")

  vars = {
    hostname = var.instance_hostname
    ip_address = var.instance_ip
  }
}

Trabalho com Jinja2 e outros motores de modelos integrados em ferramentas DevOps. A experiência inclui o uso de ciclos, condições, filtros e variáveis nos modelos.

Frequentemente, a estrutura de papéis no Ansible inclui diretórios handlers/ e templates/ para organizar o conteúdo correspondente. Isto melhora a legibilidade e a modularidade dos playbooks.

Tipo Ferramentas Exemplos de uso
Handlers Ansible Reiniciar serviços, recarregar configurações
Templates Ansible, Terraform Geração de ficheiros de configuração, scripts de inicialização