meta data de esta página
¡Esta es una revisión vieja del documento!
Ansible
Es una herramienta de orquestación que automatiza la gestión de configuraciones y el despliegue de aplicaciones. Nos permitirá gestionar nuestros servidores sin necesidad de agente de forma sencilla y funcionando en paralelo.
Para poder usar ansible sólo se necesita un equipo controlador con ansible instalado y conexión ssh con los equipos a gestionar , y en los nodos remotos tener instalado python .
Utiliza YAML para describir las acciones a realizar en los diferentes nodos remotos.
Instalación en Centos
Instalación en Centos
1 |
yum install ansible |
Para comprobar si todo está correcto ejecutamos
1 |
ansible --version |
Conceptos básicos
- Inventario . Archivo donde agrupamos una lista de servidores. Por defecto en /etc/ansible/hosts
- Playbooks. Es un archivo donde listamos las tareas que de deben ejecutar. Se escribe en formato YAML
- Task. Un bloque dentro del Playbook , en el que definimos una acción concreta a realizar.
- Includes
- Roles
Comandos básicos
Configurar el acceso a los clientes
Verificar que tenemos acceso a los clientes
1 |
ansible -i miinventario -m ping all |
Generamos nuestras llaves ssh
1 |
ssh-keygen |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[root@localhost ~] # ssh-keygen Generating public /private rsa key pair. Enter file in which to save the key ( /root/ . ssh /id_rsa ): Created directory '/root/.ssh' . Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/ . ssh /id_rsa . Your public key has been saved in /root/ . ssh /id_rsa .pub. The key fingerprint is: SHA256:LXpEhlOQ04nsA3CF /nKfPB3GgDJv0JBw2TZNwgGF1kI root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | o+E&*Oo. | | oX @++ | | o Bo+o | | = =+.. | | * .So. | | . =o .+ | | +.o.+ . | | .= . | | . | +----[SHA256]-----+ [root@localhost ~] # |
El siguiente paso sería copiar nuestro fichero de llave pública al cliente
1 |
ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@ipcliente |
si todo ha ido bien ahora deberiamos de poder acceder desde nuestro servidor de ansible al equipo cliente ejecutando
1 |
ssh ip_maquina_cliente |
Configurar nuestra lista de clientes
El fichero que viene por defecto para indicar los clientes es /etc/ansible/hosts aunque nosotros podemos definir distintos ficheros según nuestas necesidades.
Editamos es fichero por defecto y definimos los equipos clientes
1 |
vi /etc/ansible/hosts |
[centos] hostcliente.midominio.local hostcliente2.midominio.net
Para comprobar que todos nuestros nodos reponden podemos realizar un ping.
1 |
ansible all -m ping |
Si por ejemplo queremos ejecutar un comando en todos nuestros nodos:
1 |
ansible all -a "/etc/init.d/httpd start" |