Skip to content
56K.ES

56K.ES

Sobre software libre y otras movidas

Menu
Menu

Instalar Ansible sobre Debian 11

Posted on 21/12/202121/12/2021 by fanta

Ansible es buena cosa. Escribir playbooks es bonito porque estás detallando realmente muchas veces procesos. En vez de entrar a una máquina como un loco a montar docker, luego noseque y ponerte a probar y luego no acordarte de como lo realizaste un playbook ansible te servirá para no trabajar 2 veces.

Vamos a ver en esta entrada como instalarlo y empezar a funcionar.

 

La instalación en una Debian 11 limpia puede ser así (versión stable-2.12, si sale una nueva pues pones la nueva rama):

# apt update
# apt upgrade
# apt install git python3-pip
$ cd /tmp/
$ git clone "https://github.com/ansible/ansible/" -b stable-2.12
$ cd ansible
# python3 setup.py install
$ ansible --version

Crear un inventario de máquinas

# mkdir -p /etc/ansible
# touch /etc/ansible/hosts

Dentro de /etc/ansible/hosts se pueden crear rápidamente unos grupos de ejemplo con algunos hosts. Ejemplo:

[webservers]
example.com ansible_connection=ssh ansible_user=boby
blog.example.com ansible_connection=ssh ansible_user=boby

Generamos la clave ssh del user (boby) que estemos usando en la máquina y la copiamos a example.com y a blog.example.com

$ ssh-keygen
$ ssh-copy-id -i /home/boby/.ssh/id_rsa.pub boby@example.com
$ ssh-copy-id -i /home/boby/.ssh/id_rsa.pub boby@blog.example.com

Suponemos que tanto example.com como blog.example.com tienen una pata con acceso ssh. Y que en el firewall tenemos acceso desde la máquina donde tenemos ansible.

 

Probamos a ver si va bien la cosa:

$ ansible example.com -m ping

 

Creamos un playbook de ejemplo en un archivo llamado playbook.yml

---
- name: Update web servers
  hosts: webservers
  remote_user: root

  tasks:
  - name: Ensure nginx is at the latest version
    ansible.builtin.apt:
      name: nginx
      state: latest

Cuidando de no meter espacios de menos o de más. Es un archivo yaml de modo que se ha de tener en cuenta eso.

Ese playbook es un ejemplo. Ejecutado sin parámetros con ansible-playbook tendría que conectar con example.com y blog.example.com y comprobar que nginx está en la ultima versión (el paquete).

Se ejecutaría el playbook así:

$ ansible-playbook playbook.yml
$ ansible-playbook playbook.yml -l blog.example.com

Lo primero ejecutará el playbook y lo segundo también pero solo para el host blog.example.com . Se podría también limitar a un grupo.

 

Y esto es más o menos lo básico que se necesita tocar para comenzar a escribir tus playbooks y tener ansible en una máquina con todos bien ordenados.

Tener los playbooks en un repositorio git privado es buena cosa porque no son algo que se haga y sirva para siempre. Posiblemente con el tiempo los vamos a tener que tocar.

Y eso es más o menos lo mínimo que se precisa para empezar a funcionar con ansible.

 

Saludos cordiales.

Deja una respuesta

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

Emisión de 56k en Twitch

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
©2022 56K.ES | Built using WordPress and Responsive Blogily theme by Superb