Ansible es un conjunto de herramientas de automatización que funciona muy bien con servidores basados en Linux, pero también es compatible con otros servidores en la nube, como Windows y VMware (por nombrar algunos). Ansible es una aplicación sin agente que solo requiere Python para funcionar, que es una aplicación predeterminada en casi todas las distribuciones de Linux.
Ansible es excelente para automatizar tareas administrativas y crear una infraestructura de estado deseada (garantizando que todos los servidores sean iguales).
Ansible funciona con el protocolo SSH, por lo que no necesita ningún software o agente en servidores remotos. Es una excelente alternativa a otras herramientas de automatización, incluidas Chef y Puppet.
En este artículo, le mostraremos cómo instalar y configurar Ansible en el servidor Ubuntu 18.04.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
- Preferiblemente, tendrá algunos servidores de prueba de Linux (Ubuntu o Debian).
- Una contraseña raíz configurada en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:configurar la autenticación basada en clave SSH
Ansible usa SSH para recuperar información de los hosts remotos. Deberá configurar la autenticación basada en claves para los hosts remotos para que el servidor Ansible pueda comunicarse con los hosts remotos sin ingresar la contraseña SSH.
Primero, genere una clave SSH en el servidor Ansible con el siguiente comando:
ssh-keygen -t rsa
Deberías obtener el siguiente resultado:
Generando par de claves rsa pública/privada. Ingrese el archivo en el que guardar la clave (/root/.ssh/id_rsa):Directorio creado '/root/.ssh'. Ingrese la frase de contraseña (vacío si no tiene frase de contraseña):Ingrese la misma Frase de contraseña nuevamente:Su identificación se guardó en /root/.ssh/id_rsa. Su clave pública se guardó en /root/.ssh/id_rsa.pub. onlineLa imagen randomart de la llave es:+---[RSA 2048]----+| .. || .o .o|| E .=o=o.|| . ..o*=o.|| S..o ..*o|| . ..++ .+oB|| . . =o + O+|| . O .o . +|| .Bo= .o. .|+----[SHA256]-----+
Luego, copie la clave generada a los hosts remotos con el siguiente comando:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
A continuación, verifique el inicio de sesión sin contraseña SSH con el siguiente comando:
ssh [email protected]
Paso 3:Instalar Ansible
Puede agregar Ansible PPA con el siguiente comando:
apt-add-repositorio ppa:ansible/ansible
Después de agregar Ansible PPA, actualice el repositorio e instale Ansible con el siguiente comando:
apt-get update -yapt-get install ansible -y
Una vez que se haya completado la instalación, puede continuar con el siguiente paso.
Paso 4:configurar los hosts de Ansible
A continuación, deberá configurar su archivo de hosts de Ansible para definir los servidores remotos. Puede editar /etc/ansible/hosts con el siguiente comando:
nano /etc/ansible/hosts
Puede agregar hosts individuales o grupos de hosts, como se muestra a continuación:
[servidores web]servidorweb1 ansible_ssh_host=192.168.1.2 ansible_ssh_port=22 ansible_ssh_user=rootwebserver2 ansible_ssh_host=192.168.1.3 ansible_ssh_port=22 ansible_ssh_user=raíz[servidores de base de datos]dbserver1 ansible_ssh_host=192.168.1_4=ansiblepressh_user=2Guarde y cierre el archivo cuando haya terminado.
En el archivo anterior, webserver1 y webserver2 se usan para definir la dirección IP del servidor web, el puerto SSH y el nombre de usuario, mientras que dbserver1 se usa para definir la dirección IP del servidor de la base de datos, el puerto SSH y el nombre de usuario.
A continuación, deshabilite la advertencia de Python editando el archivo /etc/ansible/ansible.cfg:
nano /etc/ansible/ansible.cfgAgregue la siguiente línea debajo de [predeterminados]:
deprecation_warnings=FalsoGuarde y cierre el archivo cuando haya terminado.
En este punto, su servidor Ansible está listo para administrar su servidor web y su servidor de base de datos.
Paso 5:Probar Ansible
Después de configurar el servidor de Ansible, es hora de probar la conectividad de todos los hosts de Ansible.
En el servidor de Ansible, ejecute el siguiente comando para probar la conectividad de todos los hosts:
ansible -m hacer ping a todosSi todo está bien, debería obtener el siguiente resultado:
Para probar la conectividad de hosts específicos como dbserver1, ejecute el siguiente comando:
ansible -m ping dbserver1Debería ver el siguiente resultado:
Para probar la conectividad de un grupo de hosts como [servidores web], ejecute el siguiente comando:
ansible -m ping servidores webDebería ver el siguiente resultado:
Paso 6:Comandos avanzados de Ansible
Puede ejecutar cualquier comando en un servidor remoto a través de SSH desde el servidor de Ansible.
Por ejemplo, para verificar el uso del disco de todos los hosts de Ansible, ejecute el siguiente comando:
ansible -m shell -a "df -h" todoEste comando ejecutará el comando "df -h" en todos los hosts remotos y generará el siguiente resultado:
Puede listar todas las bases de datos en hosts dbserver1 con el siguiente comando:
ansible -m shell -a "mysql -u root [email protected] -e 'mostrar bases de datos'" dbserver1Debería ver el siguiente resultado:
Conclusión
En el tutorial anterior, aprendimos cómo instalar Ansible en el servidor Ubuntu 18.04. También aprendimos a administrar varios servidores con Ansible. Ahora puede administrar fácilmente toda su infraestructura con Ansible:¡pruébelo con VPS Hosting de Atlantic.Net!