Folha de dicas de módulos do Ansible
O Ansible é uma poderosa ferramenta de automação. Este artigo apresenta como usar seus módulos mais comuns.
Formato
Estrutura básica do arquivo
---
- hosts: production
remote_user: root
tasks:
- ···Coloque seus módulos em tasks.
Formato de tarefa (Task Format)
Formato de linha única
- apt: pkg=vim state=presentFormato de mapeamento (Mapping)
- apt:
pkg: vim
state: presentFormato escalar dobrado
- apt: >
pkg=vim
state=presentVocê pode usar qualquer um dos formatos acima para definir tarefas. O formato de linha única é recomendado para declarações curtas, e o formato de mapeamento é recomendado para declarações mais longas.
Módulos
Aptitude
Gerenciamento de pacotes
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noArquivo de pacote Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Gerenciamento de repositórios
- apt_repository:
repo: "deb https://··· raring main"
state: presentChave do repositório
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentRelacionados ao Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesReferência: módulo git
Configuração do Git
- git_config:
name: user.email
scope: global # local | system
value: [email protected]Referência: módulo git_config
Gerenciamento de usuários
- user:
state: present # Estado: presente
name: git # Nome de usuário
system: yes # Usuário do sistema
shell: /bin/sh # Shell de login
groups: admin # Grupos
comment: "Controle de versão Git" # ComentárioReferência: módulo user
Gerenciamento de serviços
- service:
name: nginx # Nome do serviço
state: started # Estado: iniciado
enabled: yes # Habilitar na inicializaçãoReferência: módulo service
Relacionados ao Shell
Comando shell
- shell: apt-get install nginx -yOpções extras
- shell: echo hello
args:
creates: /path/file # Ignorar se o arquivo existir
removes: /path/file # Ignorar se o arquivo não existir
chdir: /path # Mudar para este diretório antes da execuçãoExemplo de comando multilinhas
- 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 # Ignorar se o arquivo existir
removes: /path/file # Ignorar se o arquivo não existir
chdir: /path # Mudar para este diretório antes da execuçãoReferência: módulo script
Operações com arquivos
Gerenciamento de arquivos
- file:
path: /etc/dir
state: directory # Tipo: directory|file|link|hard|touch|absent
# Parâmetros opcionais:
owner: bin # Proprietário
group: wheel # Grupo
mode: 0644 # Permissões
recurse: yes # Recurrente
force: yes # Forçar a criação do link simbólicoReferência: módulo file
Cópia de arquivos
- copy:
src: /app/config/nginx.conf # Arquivo de origem
dest: /etc/nginx/nginx.conf # Destino
# Parâmetros opcionais:
owner: user # Proprietário
group: user # Grupo
mode: 0644 # Permissões
backup: yes # Backup se existirReferência: módulo copy
Modelo (Template)
- template:
src: config/redis.j2 # Arquivo de origem do modelo
dest: /etc/redis.conf # Destino
# Parâmetros opzionais:
owner: user # Proprietário
group: user # Grupo
mode: 0644 # Permissões
backup: yes # Backup se existirReferência: módulo template
Ações locais
Execução local
- name: Executar operações localmente
local_action: shell echo helloSaída de depuração (Debug)
- debug:
msg: "Hello {{ var }}"Referência: módulo debug