Hoja de Referencia de Módulos de Ansible
Ansible es una potente herramienta de automatización de operaciones. Este artículo presentará el uso de sus módulos comunes.
Formato
Estructura básica del archivo
---
- hosts: production
remote_user: root
tasks:
- ···Por favor, coloca tus módulos bajo tasks.
Formato de tareas
Formato de una sola línea
- apt: pkg=vim state=presentFormato de mapeo (Mapping)
- apt:
pkg: vim
state: presentFormato escalar plegado (Folded Scalar)
- apt: >
pkg=vim
state=presentPuedes usar cualquiera de los formatos anteriores para definir tareas. Para declaraciones cortas se recomienda el formato de una sola línea; para declaraciones más largas se recomienda el formato de mapeo.
Módulos
Aptitude
Gestión de paquetes
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noArchivo de paquete Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Gestión de repositorios (Fuentes de software)
- apt_repository:
repo: "deb https://··· raring main"
state: presentClave de repositorio
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentRelacionado con Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesReferencia: módulo git
Configuración de Git
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comReferencia: módulo git_config
Gestión de usuarios
- user:
state: present # Estado: presente
name: git # Nombre de usuario
system: yes # Usuario del sistema
shell: /bin/sh # Shell de inicio de sesión
groups: admin # Grupos
comment: "Git Version Control" # ComentarioReferencia: módulo user
Gestión de servicios
- service:
name: nginx # Nombre del servicio
state: started # Estado: iniciado
enabled: yes # Si se habilita al arrancarReferencia: módulo service
Relacionado con Shell
Comando shell
- shell: apt-get install nginx -yOpciones extra
- shell: echo hello
args:
creates: /path/file # Omitir si el archivo existe
removes: /path/file # Omitir si el archivo no existe
chdir: /path # Cambiar a este directorio antes de la ejecuciónEjemplo de comandos de varias líneas
- shell: |
echo "hello there"
echo "multiple lines"Referencia: módulo shell
Ejecución de scripts
- script: /x/y/script.sh
args:
creates: /path/file # Omitir si el archivo existe
removes: /path/file # Omitir si el archivo no existe
chdir: /path # Cambiar a este directorio antes de la ejecuciónReferencia: módulo script
Operaciones de archivos
Gestión de archivos
- file:
path: /etc/dir
state: directory # Tipo: directorio|archivo|enlace|enlace duro|touch|ausente
# Parámetros opcionales:
owner: bin # Propietario
group: wheel # Grupo
mode: 0644 # Permisos
recurse: yes # Creación recursiva
force: yes # Forzar creación de enlace simbólicoReferencia: módulo file
Copia de archivos
- copy:
src: /app/config/nginx.conf # Archivo de origen
dest: /etc/nginx/nginx.conf # Ubicación de destino
# Parámetros opcionales:
owner: user # Propietario
group: user # Grupo
mode: 0644 # Permisos
backup: yes # Si se realiza copia de seguridadReferencia: módulo copy
Plantillas (Templates)
- template:
src: config/redis.j2 # Archivo de origen de la plantilla
dest: /etc/redis.conf # Ubicación de destino
# Parámetros opcionales:
owner: user # Propietario
group: user # Grupo
mode: 0644 # Permisos
backup: yes # Si se realiza copia de seguridadReferencia: módulo template
Operaciones locales
Ejecución local
- name: Ejecutar operación localmente
local_action: shell echo helloSalida de depuración (Debug)
- debug:
msg: "Hello {{ var }}"Referencia: módulo debug