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=presentFormato de mapeamento (Mapping)
- apt:
pkg: vim
state: presentFormato escalar dobrado (Folded Scalar)
- apt: >
pkg=vim
state=presentVocê 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: noArquivo 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: presentChave do repositório
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentRelacionado 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: hi@example.comReferê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árioReferê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 bootReferência: módulo service
Relacionado ao Shell
Comando shell
- shell: apt-get install nginx -yOpçõ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çãoExemplo 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çãoReferê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ólicoReferê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 backupReferê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 backupReferência: módulo template
Operações locais
Execução local
- name: Executar operação localmente
local_action: shell echo helloSaída de depuração (Debug)
- debug:
msg: "Hello {{ var }}"Referência: módulo debug