Topología de la red
Aquí, ansible-pc es una máquina Debian 10 donde instalaremos Ansible.
Los servidores 6f7c2 y 6b219 son máquinas Debian 10 que configuraremos para la automatización de Ansible. Simplemente llamaré a estos servidores hosts Ansible para el propósito de este artículo.
Podemos usar Ansible desde ansible-pc para automatizar diferentes tareas en el 6f7c2 y 6b219 Servidores Debian.
Instalación de Ansible
En esta sección, le mostraré cómo instalar Ansible en ansible-pc.
Puede instalar Ansible en Debian 10 desde el repositorio oficial de paquetes de Debian.
Primero, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
Ahora, instale Ansible con el siguiente comando:
$ sudo apt install ansible
Para confirmar la instalación, presione Y y luego presione
Ansible debe estar instalado.
Ahora, ejecute el siguiente comando para verificar si Ansible está funcionando correctamente.
$ ansible --versionComo puede ver, el comando ansible está disponible y funciona correctamente. Ansible 2.7.7 es la última versión de Ansible disponible en el repositorio de paquetes de Debian en el momento en que se escribió este artículo.
Generando clave SSH
En la máquina Debian 10 (ansible-pc) donde ha instalado Ansible, primero debe generar una clave SSH.
Para generar una clave SSH, ejecute el siguiente comando:
$ ssh-keygen
Ahora presiona
prensa
prensa
Se debe generar una clave SSH.
Configuración de hosts de Debian para la automatización de Ansible
En esta sección, le mostraré cómo configurar un host Debian para la automatización de Ansible. Si tiene varios hosts que desea automatizar con Ansible, repita el mismo proceso para cada uno de los hosts.
Los hosts que le gustaría configurar para la automatización de Ansible deben tener el paquete de servidor SSH preinstalado.
Primero, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
Luego, instale el servidor OpenSSH con el siguiente comando:
$ sudo apt install openssh-server -y
En mi caso, el paquete del servidor OpenSSH ya está instalado. Si no está instalado en su caso, debe instalarlo antes de este paso.
Ahora, compruebe si el sshd el servicio se ejecuta a través del siguiente comando:
$ sudo systemctl status sshdComo puede ver, el sshd el servicio es activo (corriendo) y activado (se iniciará automáticamente al arrancar el sistema).
Si el sshd el servicio es no activo (en ejecución), inícielo manualmente con el siguiente comando:
$ sudo systemctl start sshd
Si el sshd el servicio no es activado (no agregado al inicio del sistema) en su caso, agréguelo al inicio del sistema manualmente con el siguiente comando:
$ sudo systemctl enable sshd
Ahora, crea un ansible usuario y permitir el acceso sudo sin contraseña al ansible usuario.
Para crear un ansible usuario, ejecute el siguiente comando:
$ sudo adduser --shell / bin / bash --gecos "" ansible
Escriba una contraseña para ansible usuario y presione
Vuelva a escribir la contraseña y presione
Un ansible el usuario debe ser creado.
Ahora, para permitir el acceso sudo sin contraseña al ansible usuario, edite el / etc / sudoers archivo con el siguiente comando:
$ sudo visudo
Ahora, agregue la siguiente línea al / etc / sudoers expediente.
ansible TODOS = (TODOS) NOPASSWD: TODOSLuego, guarde el archivo presionando
Ahora, busque la dirección IP del host Ansible 6f7c2 con el siguiente comando:
$ nombre de host -IAquí, la dirección IP en mi caso es 192.168.20.167. Será diferente para ti. Por lo tanto, asegúrese de reemplazar esta dirección con su propio formulario ahora en.
Copia de la clave pública SSH en el host Ansible
Desde la computadora donde instaló Ansible (ansible-pc), copie la clave pública SSH en el host de Ansible 6f7c2 como sigue:
$ ssh-copy-id ansible @ 192.168.20.167
Escribir sí y presione
A continuación, escriba la contraseña del ansible usuario y presione
La clave SSH pública debe copiarse en el host Ansible 6f7c2.
Debería poder SSH en el host de Ansible 6f7c2 como el usuario ansible sin contraseña, como puede ver en la siguiente captura de pantalla:
$ ssh ansible @ 192.168.20.167
También debería poder ejecutar comandos sudo sin que se le solicite ninguna contraseña.
$ sudo ls /
Finalmente, cierre la sesión SSH de la siguiente manera:
$ salida
Protección de hosts Ansible
Como el ansible el usuario puede ejecutar cualquier comando sudo sin que se le solicite una contraseña, hemos configurado el inicio de sesión basado en la clave SSH para los hosts de Ansible. Pero, aún puede SSH en los hosts de Ansible como ansible usuario utilizando la contraseña del ansible usuario. Entonces, esto no es muy seguro.
Para mejorar la seguridad, ejecute el siguiente comando en los hosts de Ansible para deshabilitar el inicio de sesión basado en contraseña para el ansible usuario:
$ sudo usermod -L ansible
Si luego decide habilitar el inicio de sesión basado en contraseña para el ansible usuario, ejecute el siguiente comando en el host Ansible:
$ sudo usermod -U ansibleProbando Ansible
Crea un nuevo directorio de proyectos ~ / proyecto / en la máquina Debian donde ha instalado Ansible (ansible-pc) usando el siguiente código:
$ mkdir ~ / proyecto
Navega al ~ / proyecto / directorio usando el siguiente código:
$ cd ~ / proyecto /
Crear un nuevo Hospedadores archivo en el directorio del proyecto de la siguiente manera:
$ nano hosts
Ahora, enumere las direcciones IP o los nombres DNS de los hosts de Ansible (6f7c2 y 6b219 en mi caso) en el Hospedadores expediente:
192.168.20.167192.168.20.168
Una vez que haya terminado, guarde el archivo presionando
Para probar, intente hacer ping a todos los hosts que utilizan Ansible con el siguiente código:
$ ansible -i ./ hosts all -u ansible -m pingNOTA: Aquí el -tu La opción se utiliza para especificar el nombre de usuario (ansible en este caso) que Ansible utilizará para SSH en los hosts.
Como puede ver, Ansible puede acceder a todos los hosts. Entonces, los hosts están listos para la automatización de Ansible.
Entonces, así es como instala Ansible en Debian 10 y configura los hosts de Debian para la automatización de Ansible. Gracias por leer este artículo.