Funcionamiento básico de ansible

Índice

Instalación de Ansible

Ansible se puede instalar desde los repositorios de Debian

sudo apt install ansible

Preparación de la máquina

En este ejemplo se usa una máquina virtual con un usuario sin privilegios que puede acceder por ssh y que puede usar sudo sin indicar la contraseña.

Ficheros de configuración

Inventario

Incluye una declaración de los grupos y máquinas que se van a configurar y algunas variables para identificarlas.

all:
  children:
    servidores:
      hosts:
        ansible: 
          ansible_ssh_host: 172.22.200.46
          ansible_ssh_user: debian
          ansible_ssh_private_key_file: /home/javi/.ssh/id_rsa

Fichero de configuración

En él se indica la ruta al fichero de inventario.

[defaults]
inventory = hosts
host_key_checking = False

El parámetro host_key_checking = False evita los mensajes de advertencia cuando se reutilizan direcciones IP.

Probar conexión

Para probar la conexión a una máquina Ansible usa el módulo ping.

ansible -m ping all
ansible | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Actualizar el playbook

El playbook es el fichero que contiene las reglas que ejecuta ansible en la máquina objetivo.

En este caso, Ansible actualiza el sistema de paquetes, instala git y apache2, copia un fichero a la máquina remota, copia una plantilla al directorio /var/www/html.

- hosts: all
  become: true
  tasks:
      # Actualizamos paquetes
    - name: Actualizamos el sistema
      apt: update_cache=yes upgrade=yes
      # Instalar paquetes
    - name: "Instalar paquetes con apt"
      ansible.builtin.apt: 
       pkg:
        - apache2
        - git

      # Copia un fichero a la máquina remota
    - name: "Copiar fichero a la máquina remota"
      copy:
        src: files/foo.conf
        dest: /etc/
        owner: root
        group: root
        mode: '0644'

      # Copia un template a un fichero
    - name: "Copiar un tamplate a un fichero de la máquina remota"
      template: 
        src: template/index.j2
        dest: /var/www/html/index.html
        owner: www-data
        group: www-data
        mode: 0644

Ejecutar el playbook

ansible-playbook site.yaml
comments powered by Disqus

Relacionados

Instalación de MySQL en Debian

El proceso de instalación de MySQL difiera un poco del que se sigue para instalar MariaDB en Debian. En este post se desarrolla una guía con los pasos a seguir.

Leer

Así funciona IPv6: configuración en router Linux y Cisco

IPv6 es una actualización del protocolo IPv4 que nace ante la escasez de direcciones que IPv4 permite. Las direcciones IPv6 están formada por 32 caracteres hexadecimales en grupos de cuatro caracteres separados por el carácter dos puntos (:). En este post se recogen varios ejemplos prácticos del funcionamiento de este protocolo.

Leer

Manejo y uso del comando mkisofs

En este post se muestrael funcionamiento de la herramienta mkisofs para crear sistemas de fichero de tipo ISO.

Leer