Skip to content

Folha de Atalhos de Módulos do Ansible

O Ansible é uma ferramenta poderosa de automação de operações. Este artigo apresentará o uso de seus módulos comuns.

Formato

Estrutura básica do arquivo

---
- hosts: production
  remote_user: root
  tasks:
  - ···

Por favor, coloque seus módulos em tasks.

Formato da tarefa

Formato de linha única

- apt: pkg=vim state=present

Formato de mapeamento (Mapping)

- apt:
    pkg: vim
    state: present

Formato escalar dobrado (Folded Scalar)

- apt: >
    pkg=vim
    state=present

Você pode usar qualquer um dos formatos acima para definir tarefas. Para declarações curtas, recomenda-se o formato de linha única; para declarações mais longas, recomenda-se o formato de mapeamento.

Módulos

Aptitude

Gerenciamento de pacotes

- apt:
    pkg: nodejs
    state: present # absent | latest
    update_cache: yes
    force: no

Arquivo de pacote Deb

- apt:
    deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"

Gerenciamento de repositórios (Fontes de software)

- apt_repository:
    repo: "deb https://··· raring main"
    state: present

Chave do repositório

- apt_key:
    id: AC40B2F7
    url: "http://···"
    state: present

Relacionado ao Git

- git:
    repo: git://github.com/
    dest: /srv/checkout
    version: master
    depth: 10
    bare: yes

Referência: módulo git

Configuração do Git

- git_config:
    name: user.email
    scope: global # local | system
    value: hi@example.com

Referência: módulo git_config

Gerenciamento de usuários

- user:
    state: present    # Estado: presente
    name: git        # Usuário
    system: yes      # Usuário do sistema
    shell: /bin/sh   # Shell de login
    groups: admin    # Grupos
    comment: "Git Version Control"  # Comentário

Referência: módulo user

Gerenciamento de serviços

- service:
    name: nginx      # Nome do serviço
    state: started   # Estado: iniciado
    enabled: yes     # Se deve habilitar no boot

Referência: módulo service

Relacionado ao Shell

Comando shell

- shell: apt-get install nginx -y

Opções extras

- shell: echo hello
  args:
    creates: /path/file  # Pular se o arquivo existir
    removes: /path/file  # Pular se o arquivo não existir
    chdir: /path        # Mudar para este diretório antes da execução

Exemplo de comandos multilinha

- shell: |
    echo "hello there"
    echo "multiple lines"

Referência: módulo shell

Execução de script

- script: /x/y/script.sh
  args:
    creates: /path/file  # Pular se o arquivo existir
    removes: /path/file  # Pular se o arquivo não existir  
    chdir: /path        # Mudar para este diretório antes da execução

Referência: módulo script

Operações de arquivo

Gerenciamento de arquivos

- file:
    path: /etc/dir
    state: directory # Tipo: diretório|arquivo|link|hardlink|touch|ausente

    # Parâmetros opcionais:
    owner: bin      # Proprietário
    group: wheel    # Grupo
    mode: 0644      # Permissões
    recurse: yes    # Criação recursiva
    force: yes      # Forçar criação de link simbólico

Referência: módulo file

Cópia de arquivo

- copy:
    src: /app/config/nginx.conf   # Arquivo fonte
    dest: /etc/nginx/nginx.conf   # Local de destino
 
    # Parâmetros opcionais:
    owner: user     # Proprietário
    group: user     # Grupo
    mode: 0644      # Permissões
    backup: yes     # Se deve fazer backup

Referência: módulo copy

Modelos (Templates)

- template:
    src: config/redis.j2       # Arquivo fonte do modelo
    dest: /etc/redis.conf      # Local de destino

    # Parâmetros opcional:
    owner: user     # Proprietário
    group: user     # Grupo
    mode: 0644      # Permissões
    backup: yes     # Se deve fazer backup

Referência: módulo template

Operações locais

Execução local

- name: Executar operação localmente
  local_action: shell echo hello

Saída de depuração (Debug)

- debug:
    msg: "Hello {{ var }}"

Referência: módulo debug