meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
aplicaciones:ansible [232018/01/ 14:18] – [Comandos básicos] lcaplicaciones:ansible [182023/01/ 13:10] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +===== 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 [[https://es.wikipedia.org/wiki/YAML|YAML]] para describir las acciones a realizar en los diferentes nodos remotos.
 +
 +==== Instalación en Centos ====
 +Instalación en Centos <sxh>yum install ansible</sxh>
 +
 +Para comprobar si todo está correcto ejecutamos <sxh>ansible --version</sxh>
 +
 +==== 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
 +
 +
 +
 +{{tag>ansible}}
 +==== Comandos básicos ====
 +=== Configurar el acceso a los clientes  ===
 +Verificar que tenemos acceso a los clientes <sxh>ansible -i miinventario -m ping all</sxh>
 +
 +Generamos nuestras llaves ssh <sxh>ssh-keygen</sxh>
 +<sxh bash>
 +[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 ~]#
 +</sxh>
 +Una vez finalizado el proceso de generación disponemos de 2 ficheros: ~/.ssh/id_rsa y ~/.ssh/id_rsa.pub
 +
 +El siguiente paso sería copiar nuestro fichero de llave pública al cliente  
 +<sxh>ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@ipcliente</sxh>
 +
 +si todo ha ido bien ahora deberiamos de poder acceder desde nuestro servidor de ansible al equipo cliente ejecutando 
 +<sxh>ssh ip_maquina_cliente</sxh>
 +
 +=== 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 
 +<sxh>vi /etc/ansible/hosts</sxh>
 +<file>
 +[centos]
 +hostcliente.midominio.local
 +hostcliente2.midominio.net
 +</file>
 +
 +Para comprobar que todos nuestros nodos reponden podemos realizar un ping.
 +
 +<sxh>ansible all -m ping </sxh>
 +
 +Si por ejemplo queremos ejecutar un comando en todos nuestros nodos:
 +
 +<sxh>ansible all -a "/etc/init.d/httpd start"</sxh>
 +
 +
 +===== Referencias =====
 +  * [[https://github.com/ansible/ansible-examples|Ejemplos]]
 +  * https://www.ssh.com/ssh/copy-id
 +  * https://voragine.net/linux/acceso-ssh-seguro-servidor-autenticacion-clave-publica
 +  * https://blog.deiser.com/es/primeros-pasos-con-ansible
 +  * https://www.maquinasvirtuales.eu/docker-swarm-instalar-ansible-awx/