Ansible es una herramienta de automatización para administrar múltiples hosts remotos desde una sola máquina. Le proporciona una configuración fácil para una gran cantidad de hosts remotos. Por ejemplo, si está realizando las mismas tareas en varias máquinas, Ansible le brinda la opción de automatizar estas tareas.
Este tutorial lo ayudará a instalar Ansible en sistemas Ubuntu 16.04 (Xenial) LTS.
Paso 1:configurar el acceso SSH
Puede configurar ssh basado en clave para los hosts Linux Ansible remotos. Por lo tanto, no se requerirá contraseña para SSH. Ansible también le permite usar una contraseña para ssh, pero ssh basado en clave es más seguro.
Genere un par de claves ssh en su servidor Ansible:
ssh-keygen
Copie la clave pública a todos sus hosts remotos que necesita para conectarse a través de esta clave ssh.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host
Paso 2:instale Ansible en Ubuntu 16.04
Ansible proporciona su PPA oficial para la instalación en sistemas Ubuntu. Ejecute el siguiente comando para configurar Ansible PPA en su sistema Ubuntu 18.04.
sudo apt-add-repository ppa:ansible/ansible
Luego ejecute los siguientes comandos para instalar Ansible:
sudo apt update sudo apt install ansible
Paso 3:Configurar hosts y grupos de Ansible
Su servidor está listo con Ansible para la administración y automatización de hosts remotos. Puede tener una cantidad de hosts que necesite y administrarlos con un solo servidor Ansible.
Aquí debe definir sus sistemas remotos en el archivo de hosts de Ansible (/etc/ansible/hosts). También puede hacer grupos de hosts con tipos similares. Aquí debe organizar adecuadamente sus anfitriones en grupos. Los grupos se utilizan para realizar una tarea en todos los hosts remotos definidos en él.
Edite el archivo de configuración de los hosts de Ansible. Por ejemplo:
sudo nano /etc/ansible/hosts
Agrega tus anfitriones y organízalos en grupos. Se puede agregar un host en varios grupos .
[webservers] web-host1 web-host2 [dbservers] db-host1
La imagen a continuación lo ayudará a comprender el grupo y los anfitriones en un grupo.
Configuración Vars de host único
Debe definir la configuración para sus hosts. El archivo específico del host debe tener el mismo nombre que el host (p. ej., web-host1) en el directorio host_vars.
sudo mkdir /etc/ansible/host_vars sudo vi /etc/ansible/host_vars/web-host1
Agregue la configuración de SSH a este archivo para web-host1.
ansible_ssh_host: 192.168.1.15 ansible_ssh_port: 22 ansible_ssh_user: root
En caso de que no haya usado el Paso 1 para la conexión ssh para este host. También puede agregar uno de los siguientes métodos al archivo de configuración web-hosts1 para la autenticación.
ansible_ssh_pass: secret_password ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
Configuración de Vars de Grupo
Puede configurar los ajustes de variables comunes de un grupo en las configuraciones de grupo. El nombre del archivo del grupo debe ser el mismo que el nombre del grupo (p. ej., servidores web) en group_vars
directorio.
sudo mkdir /etc/ansible/group_vars sudo vi /etc/ansible/group_vars/webservers
Agregue las variables comunes a este archivo utilizado por todos los hosts agregados en este grupo.
ansible_ssh_port: 22 ansible_ssh_user: root
Paso 4:probar la configuración de Ansible
Su configuración de Ansible está lista para la prueba. Para probar la conectividad de todos los hosts usando un módulo de ping como:
ansible -m ping all
Para probar la conectividad de un host específico o un grupo de hosts
ansible -m ping web-host1 ## Specific host ansible -m ping webservers ## Specific group
También puede ejecutar un comando usando el módulo de shell. Por ejemplo, pruebe la memoria libre en web-host1. También puede realizar la misma tarea para un grupo. Simplemente use el nombre del grupo en lugar del nombre de host.
ansible -m shell -a 'free -m' web-host1