Playbooks básicos que automatizan el aprovisionamiento de sistemas

Playbooks básicos que automatizan el aprovisionamiento de sistemas


Introducción

Ansible permite automatizar y organizar las tareas de configuración de sistema para más de un activo a la vez. Sólo es necesario instalar un conjunto de paquetes en el servidor que hará de controlador y tener acceso SSH a las máquinas cliente.

En esta entrada veremos cómo armar “playbooks” que son la manera como Ansible crea scripts automatizados para configurar equipos. Vamos a suponer que tenemos un servidor Ansible configurado y algunos clientes.

Los playbooks son una forma de enviar comandos a los equipos remotos por medio de scripts en lugar de utilizar comandos individualmente. Estos playbooks están escritos en formato YAML. Cada contiene contiene una o varios “plays” que se asignan a equipos para tomar acciones.

Explorando un playbook básico

Veamos un playbook básico:

---
- hosts: Incubator
 user: telans
 sudo: true
 tasks:
 - name: Copio archivo testigo
 action: copy src=/home/ubuntu/playbooks/basic/testfile dest=/tmp/testfile owner=telans group=telans mode=0644

La primera línea es un requerimiento de la sintaxis de YAML, la segunda refiere a los equipos sobre los que se aplicará el playbook, “Incubator” en un tab dentro del archivo /etc/ansible/hosts.

Luego viene la tarea; la cual tiene un nombre identificatorio y que en nuestro caso es “Copio archivo testigo”, la próxima clave es “copy” y hace referencia al módulo de Ansible que se va a usar, en este caso el que permite copiar archivos; cada clave respeta una sintáxis particular. Aquí la referencia al módulo de copiado:
http://docs.ansible.com/ansible/copy_module.html

Una vez que hemos construido el playbook se ejecuta de la siguiente forma.

ansible-playbook playbook.yml

Para nuestro caso el comando y su salida es la siguiente:


Nótese que la ejecución se realiza en equipos de distintos sistemas operativos; en este caso Ubuntu y Red Hat Linux.

Otros playbooks de ejemplo

Actualización del sistema operativo Ubuntu

---
- hosts: NewHosts
 user: telans
 sudo: true

 tasks:
 - name: updates a server
 apt: update_cache=yes
 - name: upgrade a server
 apt: upgrade=full
 - name: upgrade distro
 apt: upgrade=dist

Ejecución de un comando “ping” sobre un servidor Windows

---
- name: Ping
 hosts: Windows
 gather_facts: false
 vars:
 ansible_ssh_user: uniqs
 ansible_ssh_pass: uniqs
 ansible_ssh_port: 5986
 ansible_connection: winrm


 tasks:
 - name: ping
 win_ping:

Con Ansible se pueden automatizar tareas simples o complejas. Estos son ejemplos básicos de cómo comenzar a construir sus playbooks. En un próximo blog post hablaremos de cómo implementar playbooks.

Por Pablo Calvo

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *