Haciendo del Desarrollo y la Arquitectura Web, ciencia y pasión.

Opciones de Ansible

Ansible es una herramienta de automatización de código abierto que permite configurar sistemas, desplegar aplicaciones y orquestar tareas complejas en entornos TI.

Características principales:

  • Sin agentes: No requiere instalar software adicional en los nodos remotos. Usa SSH para comunicarse.
  • Declarativo: Define el estado deseado de los sistemas.
  • Idempotente: Ejecutar un playbook varias veces no produce cambios adicionales si el sistema ya está en el estado deseado.
  • Escalable: Gestionar desde pocos servidores hasta miles.
  • Playbooks: Usa archivos YAML para definir tareas y configuraciones.

Ejemplos Prácticos

1. Ejecución de Tareas Ad Hoc

Ejemplo 1: Verificar conectividad con hosts

ansible all -m ping

Ejemplo 2: Instalar un paquete en todos los servidores

ansible all -m apt -a "name=nginx state=present" --become

2. Uso de Playbooks

Ejemplo 3: Desplegar un servidor web con Nginx


---
- name: Configurar servidor web con Nginx
  hosts: webservers
  become: yes
  tasks:
    - name: Instalar Nginx
      apt:
        name: nginx
        state: present

    - name: Iniciar servicio Nginx
      service:
        name: nginx
        state: started
        enabled: yes

        

Ejemplo 4: Crear un archivo en múltiples servidores


---
- name: Crear un archivo de prueba
  hosts: all
  tasks:
    - name: Crear archivo en /tmp/test.txt
      file:
        path: /tmp/test.txt
        state: touch

        

3. Uso de Inventarios

Ejemplo 5: Archivo de inventario


[webservers]
server1.example.com
server2.example.com

[dbservers]
db1.example.com
db2.example.com

        

4. Uso de Ansible Vault

Ejemplo 6: Cifrar un archivo con Ansible Vault

ansible-vault encrypt secret.yml

Opciones de Ansible en Línea de Comandos

5. Comandos Principales

  • ansible: Ejecuta tareas ad hoc en hosts remotos.
  • ansible-playbook: Ejecuta playbooks para automatizar tareas.
  • ansible-galaxy: Gestiona roles y colecciones.
  • ansible-vault: Cifra y descifra datos sensibles.
  • ansible-config: Muestra la configuración actual.
  • ansible-doc: Consulta la documentación de módulos.
  • ansible-inventory: Administra el inventario.

6. Opciones Comunes

ansible

  • -m <módulo>: Especifica el módulo a ejecutar.
  • -a "": Pasa argumentos al módulo.
  • -i : Especifica un archivo de inventario personalizado.
  • -u : Especifica el usuario remoto.
  • --become: Escala privilegios.
  • --check: Simula la ejecución sin realizar cambios.

ansible-playbook

  • -i : Especifica un archivo de inventario personalizado.
  • --tags : Ejecuta solo las tareas etiquetadas.
  • --skip-tags : Omite tareas etiquetadas.
  • --start-at-task "": Comienza desde una tarea específica.
  • --extra-vars "clave=valor": Pasa variables adicionales.
  • --syntax-check: Verifica la sintaxis del playbook.
  • --check: Simula la ejecución sin realizar cambios.
  • --diff: Muestra las diferencias en los cambios realizados.

ansible-galaxy

  • install: Instala roles o colecciones.
  • init: Crea un esqueleto para un nuevo rol.
  • list: Lista los roles instalados.
  • remove: Elimina roles instalados.
  • info: Muestra información sobre un rol específico.

ansible-vault

  • create: Crea un archivo cifrado.
  • encrypt: Cifra un archivo existente.
  • decrypt: Descifra un archivo cifrado.
  • edit: Edita un archivo cifrado.
  • view: Muestra el contenido de un archivo cifrado.

ansible-config

  • list: Muestra todas las configuraciones disponibles.
  • dump: Exporta la configuración actual.
  • view: Abre el archivo de configuración principal.

ansible-doc

  • -l: Lista todos los módulos disponibles.
  • -s: Muestra un resumen del módulo especificado.

ansible-inventory

  • --list: Muestra el inventario en formato JSON.
  • --graph: Muestra el inventario en formato de árbol.
  • --host : Muestra detalles de un host específico.