# Ejecutar una tarea en un host remoto utilizando Ansible
$ ansible -m -a ""
# Ejecutar un playbook de Ansible
$ ansible-playbook
# Verificar la conectividad con los hosts definidos en el inventario
$ ansible all -m ping
# Obtener información sobre los hosts definidos en el inventario
$ ansible-inventory --list
# Ejecutar un comando en un grupo específico de hosts
$ ansible -a ""
# Copiar archivos a hosts remotos
$ ansible -m copy -a "src= dest="
# Instalar paquetes en hosts remotos utilizando el módulo 'apt'
$ ansible -m apt -a "name= state="
# Reiniciar un servicio en hosts remotos
$ ansible -m service -a "name= state=restarted"
# Actualizar los repositorios apt en hosts remotos
$ ansible -m apt -a "update_cache=yes"
# Crear un directorio en hosts remotos
$ ansible -m file -a "path= state=directory"
# Eliminar un archivo en hosts remotos
$ ansible -m file -a "path= state=absent"
# Ejecutar un playbook de Ansible en modo de comprobación (dry-run)
$ ansible-playbook -i --check
# Ejecutar un playbook de Ansible con privilegios de superusuario
$ ansible-playbook -i --become --ask-become-pass
# Limitar la ejecución de un playbook a un grupo específico de hosts
$ ansible-playbook -i --limit
# Ejecutar un playbook en modo verbose para obtener más información de depuración
$ ansible-playbook -i -v
# Ejecutar un playbook en modo quiet para mostrar solo resultados
$ ansible-playbook -i -q
# Forzar la ejecución de un playbook sin confirmación
$ ansible-playbook -i --force
# Ejecutar un playbook en un orden inverso
$ ansible-playbook -i --step
# Limitar la ejecución de un playbook a un solo host
$ ansible-playbook -i --limit
# Crear un archivo de inventario de Ansible
$ nano inventory.ini
# Especificar grupos y hosts en el archivo de inventario
[web_servers]
server1.example.com
server2.example.com
[db_servers]
database.example.com
# Definir variables por host en el archivo de inventario
[web_servers]
server1.example.com ansible_user=user1 ansible_ssh_pass=password1
[db_servers]
database.example.com ansible_user=user2 ansible_ssh_pass=password2
# Utilizar alias para hosts en el archivo de inventario
[web_servers]
server1 ansible_host=192.168.1.101
[db_servers]
database ansible_host=192.168.1.102
# Agrupar hosts en el archivo de inventario
[all_servers:children]
web_servers
db_servers
# Utilizar patrones para seleccionar grupos de hosts
$ ansible web_servers -m ping
# Utilizar variables de inventario en playbooks de Ansible
---
- hosts: web_servers
tasks:
- name: Ensure apache is installed
apt:
name: apache2
state: present
# Actualizar dinámicamente el inventario de Ansible con scripts personalizados
$ ansible-inventory -i custom_inventory_script.py --list
# Crear un nuevo archivo Vault en Ansible
$ ansible-vault create new_vault_file.yml
# Editar un archivo Vault existente
$ ansible-vault edit existing_vault_file.yml
# Ver el contenido de un archivo Vault
$ ansible-vault view vault_file.yml
# Cambiar la contraseña de un archivo Vault
$ ansible-vault rekey vault_file.yml
# Desencriptar un archivo Vault para realizar ediciones
$ ansible-vault decrypt vault_file.yml
# Encriptar un archivo sin abrirlo para evitar dejar rastros
$ ansible-vault encrypt vault_file.yml
# Utilizar variables cifradas en playbooks de Ansible
---
- hosts: web_servers
tasks:
- name: Copy encrypted file
copy:
src: files/encrypted_file.txt
dest: /path/to/destination
decrypt: yes
# Utilizar Ansible Vault para proteger datos sensibles, como contraseñas y claves API
# Crear una nueva estructura de roles de Ansible
$ ansible-galaxy init role_name
# Descargar roles de Ansible Galaxy
$ ansible-galaxy install username.role_name
# Eliminar roles de Ansible Galaxy
$ ansible-galaxy remove username.role_name
# Utilizar roles de Ansible en playbooks
---
- hosts: all
roles:
- common
- apache
# Crear roles personalizados para reutilización y modularidad en la configuración de la infraestructura