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

Gestión de recursos compartidos en Windows Active Directory con cmd y Powershell

Active Directory o Directorio Activo es un servicio de directorio de Windows en el que un equipo servidor comparte recursos como usuarios, grupos o directorios con los equipos clientes que se conectan a él.

Leer

Configuración NAT en routers Linux en Openstack

En este post se usa una plantilla YAML para crear una red en Openstack y demostrar el funcionamiento del NAT. NAT (Network Address Translation o traducción de direcciones de red) es un mecanismo que consiste en modificar la información de direccionamiento en los paquetes IP que atraviesan un router.

Leer

Configuración del protocolo HTTPS para el acceso a una aplicación web

Para usar HTTPS en una aplicación web es necesario configurar el protocolo HTTPS en el servidor web en el que se aloja. En este post se recoge una breve guía con los pasos a seguir.

Leer