Instalación de ansible en Debian 12
¿Que es ansible?
Ansible es una herramienta de software libre que permite a los usuarios configurar y administrar ordenadores de forma centralizada. Es una herramienta de administración de configuración, que controla el estado de un sistema y lo mantiene en un estado deseado, confirmando que se cumplan las políticas de configuración definidas.
Requisitos
- Sistema Debian 12 actualizado.
- Privilegios de root o sudo.
- Acceso a internet.
Instalacion
La instalación de ansible la podemos realizar de dos formas, la primera es mediante el gestor de paquetes de Debian y la segunda es mediante pip en un entorno virtual.
Instalacion con apt
Para instalar ansible con apt, ejecutamos el siguiente comando:
root@ansible:~# apt install ansible -y
Instalacion con pip en un entorno virtual
Para instalar ansible con pip, primero debemos instalar pip y python3-venv, para ello ejecutamos el siguiente comando:
root@ansible:~# apt install python3-pip python3-venv -y
Una vez instalado pip y python3-venv, creamos un entorno virtual con python3-venv, para ello ejecutamos el siguiente comando:
usuario@ansible:~$ python3 -m venv ansible
Activamos el entorno virtual, para ello ejecutamos el siguiente comando:
usuario@ansible:~$ source ansible/bin/activate
Una vez activado el entorno virtual, instalamos ansible con pip, para ello ejecutamos el siguiente comando:
(ansible) usuario@ansible:~$ pip install ansible
Para desactivar el entorno virtual, ejecutamos el siguiente comando:
(ansible) usuario@ansible:~$ deactivate
Nota: Si hacemos la instalación de ansible con pip, tenemos que activar el entorno virtual cada vez que queramos utilizar ansible.
Verificar la instalacion
Para verificar la instalacion de ansible en Debian 12, tenemos que ejecutar el siguiente comando:
usuario@ansible:~# ansible --version
ansible [core 2.14.3]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
Configuracion
Para configurar ansible, tenemos que crear los siguientes archivos y directorios:
ansible/
├── hosts
├── group_vars/
│ └── all.yml
├── roles/
│ └── common/
│ ├── tasks/
│ │ └── main.yml
│ ├── handlers/
│ │ └── main.yml
│ ├── files/
│ ├── templates/
│ └── vars/
│ └── main.yml
├── site.yml
└── ansible.cfg
Podemos crear los archivos y directorios con los siguientes comandos:
# Creación de directorios principales
mkdir -p ansible/group_vars ansible/roles/common/tasks ansible/roles/common/handlers ansible/roles/common/files ansible/roles/common/templates ansible/roles/common/vars
# Creación de ficheros principales
touch ansible/hosts ansible/group_vars/all.yml ansible/roles/common/vars/main.yml ansible/roles/common/tasks/main.yml ansible/roles/common/handlers/main.yml ansible/roles/common/templates/nginx.conf.j2 ansible/site.yml ansible/ansible.cfg
Configuracion de ansible.cfg
Ahora tenemos que modificar el archivo ansible.cfg, para ello ejecutamos el siguiente comando:
usuario@ansible:~$ nano ansible/ansible.cfg
[defaults]
inventory = hosts
remote_user = usuario
host_key_checking = False
Configuracion de hosts
Un ejemplo de archivo hosts seria el siguiente:
usuario@ansible:~$ nano ansible/hosts
[servidores_web]
servidor1 ansible_ssh_host=192.168.1.10 ansible_ssh_user=debian
[servidor_mysql]
servidor_mysql ansible_ssh_host=192.168.1.11 ansible_ssh_user=debian
Configuracion de site.yml
Un ejemplo de archivo site.yml seria el siguiente:
usuario@ansible:~$ nano ansible/site.yml
- hosts: all
become: true
roles:
- role: commons
- hosts: servidores_web
become: true
roles:
- role: apache2
- hosts: servidores_web
become: true
roles:
- role: mariadb
Configuracion de roles/commons/tasks/main.yml
Un ejemplo de archivo roles/commons/tasks/main.yml seria el siguiente:
usuario@ansible:~$ nano ansible/roles/commons/tasks/main.yml
- name: update system
apt: update_cache=yes upgrade=yes
Ya tenemos una configuración básica de ansible, tendrán que ir modificando los archivos y la estructura de directorios según sus necesidades.
Con esto ya tendríamos instalado y configurado ansible en Debian 12.