Cómo preinstalar Debian 10 para controlarlo con Ansible

Cómo preparar una máquina para controlarla con Ansible

Ansible es una herramienta realmente potente, pensada para eliminar de la ecuación las tareas tediosas y repetitivas. Además, también vale incluso para poner en producción proyectos y mantenerlos, pero antes de gestionar máquinas necesitas saber cómo preparar linux para ser controlado por Ansible.

Este tuto lo he basado en Debian 10, pero lo puedes aplicar en sus versiones anteriores, por ejemplo suelo hacer preparaciones también en Debian 9 y 8 e incluso los derivados. Linux Mint, Ubuntu, etc también funcionan con este tuto, y con ligeras modificaciones en gestión de paquetes debería funcionarte en otras distribuciones.

Instalar todo lo necesario en linux para controlarlo con Ansible

Antes de nada, cuando haces una instalación limpia de Linux, suele tener la red configurada y algunos otros servicios. En este caso, voy a suponer que tu instalación no tiene nada, por ejemplo cuando creas un contenedor en Proxmox, y tienes que poner en marcha incluso la red.

Lo primero de todo será configurar los parámetros para que tu recién instalado Debian 10 tenga acceso a la red desde la que vas a controlarlo con Ansible. Entiendo que tienes acceso a la terminal de la máquina que quieres preparar, ya sea directamente con teclado y monitor, o mediante consola de tu gestor de máquinas virtuales.

Recuerda que te harán falta permisos root o estar conectado directamente con dicha cuenta. Como Debian no siempre lleva sudo preinstalado, puedes ejecutar el comando su, o entrar directamente como root en la terminal.

Empieza editando la configuración de red.

nano /etc/network/interfaces

En el archivo, al final del todo añade estas líneas

auto eth0
iface eth0 inet static
        address 192.0.0.56
        netmask 255.255.255.0
        gateway 192.0.0.1

Cambia address por la ip que quieras para esta máquina, y gateway por la puerta de acceso que tenga tu router o gestor de la red. Después de esto, toca reiniciar la tarjeta de red.

service networking restart

Y ahora debería dejarte llegar a internet, o a otras máquinas de la red.

ping 192.0.0.10 #ip de ansible

Este te tiene que dar respuesta y marcarte los ms que tarda en responde la máquina de Ansible que va a controlar. Lo siguiente sera actualizar apt para instalar algunas dependencias necesarias.

apt update

E instalamos el servidor ssh, para permitir a ansible conectar a esta máquina, python 2.7 ya que lo necesita también para gestionar los paquetes, y sudo para tomar el control root de forma más sencilla

apt install openssh-server python-pip sudo

Sudo no es completamente necesario, pero tendrás que configurar ansible para que utilize el comando “su” en su lugar para tener acceso root.

Léete también  Como detectar el sistema operativo desde php

Instalar la clave pública de ansible en el equipo remoto a controlar

Ansible va a necesitar o tener acceso con contraseña (lo que haría que te la preguntara cada vez que quieres ejecutarlo contra el equipo remoto), o con clave ssh.

Por si no tienes creada ya una clave privada en la máquina ansible (te lo recomiendo), tienes aquí un tuto sobre cómo crear y copiar claves privadas en máquinas linux.

Si ya tienes tu clave generada en ansible, solo tienes que copiar el contenido de:

cat /root/.ssh/id_rsa.pub
o si tienes otro tipo de clave...
cat /root/.ssh/id_ed25519.pub

En la máquina esclava pegamos la clave ssh copiada en una nueva línea del archivo creando la carpeta si no existe.

mkdir /root/.ssh
nano /root/.ssh/authorized_keys

Desde este momento, si vas a la máquina Ansible y configuras este Debian 10 entre los hosts a  controlar, debería conectarse sin problemas. En caso de que no conecte o tengas algún error en la ejecución de Ansible puedes dejarme un comentario y te echo un cable.

¿Quieres usar Ansible? ¿Para instalar máquinas o hacer puestas en producción? Comenta y comparte


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.