Sobes.tech
Junior

Qual é o papel das tags no Ansible e por que são importantes?

sobes.tech IA

Resposta da IA

As etiquetas no Ansible são usadas para marcar tarefas individuais ou blocos de tarefas dentro de um playbook. Isso permite executar seletivamente apenas as tarefas com uma etiqueta específica, ignorando as restantes.

A importância das etiquetas deve-se a várias razões:

  • Execução granular: Permitem executar apenas as partes necessárias do playbook, acelerando o processo de teste e depuração. Por exemplo, pode marcar tarefas de instalação de pacotes com a etiqueta install e executá-las apenas.

    ansible-playbook playbook.yml --tags "install"
    
  • Divisão de responsabilidades: Ajudam a estruturar playbooks complexos em blocos funcionais ou componentes do sistema.

  • Ignorar tarefas: Pode excluir a execução de tarefas com uma etiqueta específica (por exemplo, skip-this) usando a opção --skip-tags.

    ansible-playbook playbook.yml --skip-tags "skip-this"
    
  • Etiquetas padrão: O Ansible fornece várias etiquetas padrão, como always (as tarefas com esta etiqueta são sempre executadas, independentemente de outras etiquetas) e never (as tarefas com esta etiqueta nunca são executadas por padrão, a menos que explicitamente indicadas).

Exemplo de uso de etiquetas num playbook:

# playbook.yml
- name: Instalação do servidor web
  hosts: webservers
  tasks:
    - name: Instalação do pacote Nginx
      ansible.builtin.apt: # Usamos FQCN para os módulos
        name: nginx
        state: present
        update_cache: yes
      tags:
        - install
        - web

    - name: Configuração do Nginx
      ansible.builtin.template: # Usamos FQCN para os módulos
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
      tags:
        - config
        - web

    - name: Reinício do serviço Nginx
      ansible.builtin.systemd: # Usamos FQCN para os módulos
        name: nginx
        state: restarted
      tags:
        - service
        - web

Tabela com exemplos de uso:

Comando Ansible Descrição
ansible-playbook playbook.yml Executa todo o playbook.
ansible-playbook playbook.yml --tags "install" Executa apenas tarefas com a etiqueta install.
ansible-playbook playbook.yml --tags "install,config" Executa tarefas com as etiquetas install OU config.
ansible-playbook playbook.yml --skip-tags "install" Executa todas as tarefas, EXCETO as tarefas com a etiqueta install.

De modo geral, as etiquetas são uma ferramenta poderosa para gerir a complexidade dos playbooks e garantir flexibilidade na sua execução.