Topología de la red:
Aquí el linuxhint-711ea es un Ubuntu 20.04 máquina LTS donde instalaré Ansible.
Luego, configuraré los hosts host1 (Dirección IP 192.168.20.162) y host2 (Dirección IP 192.168.20.153) para la automatización de Ansible y ejecutar comandos en ellos usando Ansible desde el linuxhint-711ea máquina.
Simplemente llamaré host1 y host2 como anfitriones de Ansible en este artículo.
Instalación de Ansible:
Puede instalar fácilmente Ansible en Ubuntu 20.04 LTS del repositorio oficial de paquetes de Ubuntu.
Primero, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
La caché del repositorio de paquetes APT debe actualizarse.
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.
Generando clave SSH:
Ahora, debe generar una clave SSH en la computadora donde ha instalado Ansible.
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 Ubuntu para la automatización de Ansible:
En esta sección, le mostraré cómo configurar un host Ubuntu (host1) para la automatización Ansible. Si tiene más de un host que desea automatizar con Ansible, repita el mismo proceso en cada uno de los hosts.
Los hosts de Ubuntu Ansible (que desea configurar para la automatización de Ansible) deben tener instalado el paquete de servidor SSH.
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 instalarse.
Ahora, compruebe si el sshd el servicio se está ejecutando con el 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 no es activo (en ejecución) en su caso, inícielo manualmente con el siguiente comando:
$ sudo systemctl start sshdSi 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 sshdAhora, configure el firewall para permitir el acceso SSH con el siguiente comando:
$ sudo ufw permitir ssh
También debe crear 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 ansible
Ahora, escriba una contraseña para el ansible usuario y presione
Ahora, vuelva a escribir la contraseña y presione
Ahora presiona
Ahora presiona
Ahora presiona
Ahora presiona
Ahora presiona
Ahora, escriba y y luego presione
Un ansible el usuario debe ser creado.
Ahora, configure el acceso sudo sin contraseña al ansible usuario con el siguiente comando:
$ echo "ansible ALL = (ALL) NOPASSWD: ALL" | sudo tee / etc / sudoers.d / ansible
Ahora, busque la dirección IP del host Ansible (host1) con el siguiente comando:
$ nombre de host -IAquí, la dirección IP en mi caso es 192.168.20.162. Será diferente para ti. Por lo tanto, asegúrese de reemplazarlo con el suyo ahora en.
Ahora, desde la computadora donde instaló Ansible, copie la clave pública SSH al host Ansible (host1) como sigue:
$ ssh-copy-id ansible @ 192.168.20.162
Escribir sí y presione
Ahora, escriba la contraseña para el ansible usuario y presione
La clave SSH pública debe copiarse a host1.
Ahora, desactive el inicio de sesión basado en contraseña para ansible usuario con el siguiente comando:
$ sudo usermod -L ansible
Ahora, solo puede SSH en el host Ansible (host1) como ansible usuario sin contraseña de la computadora desde la que ha copiado la clave pública SSH (en este caso, la computadora donde ha instalado Ansible). Pero no podrá SSH en el host Ansible (host1) como ansible usuario desde cualquier otra computadora. He configurado los hosts de Ansible de esta manera por razones de seguridad. Como el ansible El usuario no necesita ninguna contraseña para ejecutar comandos administrativos, es arriesgado permitir el inicio de sesión basado en contraseña para el ansible usuario.
Ahora, debería poder SSH en el host ansible host1 desde la computadora donde ha instalado Ansible de la siguiente manera:
$ ssh ansible @ 192.168.20.162
Como puede ver, puedo acceder al host de Ansible (host1) como usuario ansible sin contraseña. Entonces, el anfitrión de Ansible (host1) está listo para la automatización de Ansible.
Si por alguna razón, desea permitir el inicio de sesión basado en contraseña para el ansible usuario nuevamente, ejecute el siguiente comando en el host Ansible (host1):
$ sudo usermod -U ansible
Puede configurar tantos hosts como desee para la automatización de Ansible de la misma manera.
En este artículo, he configurado solo 2 hosts, host1 y host2 para la demostración.
Probando Ansible:
Ahora, crea un nuevo directorio de proyecto ~ / ansible-demo / en la computadora donde ha instalado Ansible de la siguiente manera:
$ mkdir ~ / ansible-demo
Ahora, navega hasta el ~ / ansible-demo / directorio de la siguiente manera:
$ cd ~ / ansible-demo /
Ahora, crea un nuevo Hospedadores archivo en el directorio del proyecto de la siguiente manera:
$ nano hosts
Ahora, escriba las direcciones IP o los nombres DNS de los hosts de Ansible (host1 y host2 en mi caso) en el Hospedadores archivo de la siguiente manera:
192.168.20.162192.168.20.153
Ahora, guarde el archivo presionando
Ahora, intente hacer ping a todos los hosts que usan Ansible de la siguiente manera:
$ ansible all -i ./ hosts -u ansible -m pingNOTA: Aquí, la opción -u se usa para especificar el nombre de usuario (ansible en este caso) que Ansible usará para SSH en los hosts.
Como puede ver, se puede hacer ping a todos los hosts. Entonces, los hosts están listos para la automatización de Ansible.
De la misma manera, puede ejecutar cualquier comando en los hosts usando Ansible de la siguiente manera:
$ ansible all -i ./ hosts -u ansible -m shell -a 'echo "$ (nombre de host) - $ (nombre de host -I)"'
Como puede ver, el comando se ejecutó correctamente en cada uno de los hosts y se muestra la salida.
Entonces, así es como instalas Ansible en Ubuntu 20.04 LTS y configurar Ubuntu 20.04 hosts LTS para la automatización de Ansible. Gracias por leer este artículo.