Herramientas de usuario

Herramientas del sitio


informatica:ciberseguridad:cursos:curso_ansible_automatizacion_it:conceptos_fundamentales

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
informatica:ciberseguridad:cursos:curso_ansible_automatizacion_it:conceptos_fundamentales [2023/05/05 16:28] – [Nodo de gestión] tempwininformatica:ciberseguridad:cursos:curso_ansible_automatizacion_it:conceptos_fundamentales [2023/05/05 16:50] (actual) – [Inventarios estáticos] tempwin
Línea 180: Línea 180:
  
 Para evitar dejar las credenciales en algún sitio accesible, usaremos la criptografía de clave pública. La privada nos la quedamos y la pública se la pasamos a los sistemas que queremos gestionar con Ansible. Para evitar dejar las credenciales en algún sitio accesible, usaremos la criptografía de clave pública. La privada nos la quedamos y la pública se la pasamos a los sistemas que queremos gestionar con Ansible.
 +
 +<WRAP center round tip 60%>
 +Esta es la manera recomendable de realizar las conexiones a otros equipos
 +</WRAP>
  
 ==== Equipo a gestionar ==== ==== Equipo a gestionar ====
Línea 215: Línea 219:
  
   * ''%%--%%key-file'': permite indicar dónde está la clave privada del nodo de gestión.   * ''%%--%%key-file'': permite indicar dónde está la clave privada del nodo de gestión.
 +
 +===== Inventarios estáticos =====
 +
 +Fichero con la lista de los sistemas que queremos configurar. En los estáticos no son más que un fichero de texto con información de los equipos.
 +
 +Ejemplo:
 +
 +<code>
 +10.0.65.40
 +10.0.65.42
 +10.0.65.50
 +host.example.com
 +</code>
 +
 +También son válidos:
 +
 +<code>
 +[control]
 +control ansible_host=10.0.42.10
 +
 +[web]
 +node-[1:3] ansible_host=10.0.42.[5:8]
 +</code>
 +
 +<code>
 +ansible ip.dir.equipo.remoto -u ansible --key-file /home/pepito/.ssh/id_rsa -m ping
 +</code>
 +
 +Ansible crea por defecto un inventario estático en ''/etc/ansible/hosts''. Ahí tendríamos que añadir los equipos que queremos gestionar.
 +
 +<WRAP center round important 60%>
 +Añadir ejemplos de lo anterior.
 +</WRAP>
 +
 +Para crear nuestro propio inventario estático, creamos un fichero de texto con el siguiente contenido:
 +
 +<code>
 +10.0.40.10
 +10.0.40.20
 +</code>
 +
 +Para ejecutar Ansible sobre ese inventario:
 +
 +<code>
 +ansible all -i /home/pepito/inventario -u ansible --key-file /home/pepito/.ssh/id_rsa -m ping
 +</code>
 +
 +Podríamos "complicar" un poco el fichero de inventario:
 +
 +<code>
 +[servidor_web]
 +10.0.40.10
 +
 +[bbdd]
 +10.0.40.20
 +</code>
 +
 +<code>
 +ansible all -i /home/pepito/inventario -l servidor_web -u ansible --key-file /home/pepito/.ssh/id_rsa -m ping
 +</code>
 +
 +De esa manera, solo se ejecutará el módulo ''ping'' sobre la máquina etiquetada como ''servidor_web''.
 +
 +Si queremos agrupar máquinas:
 +
 +<code>
 +[servidor_web]
 +10.0.40.10
 +
 +[bbdd]
 +10.0.40.20
 +
 +[aplicacion:children]
 +servidor_web
 +bbdd
 +</code>
 +
 +<code>
 +ansible all -i /home/pepito/inventario -l aplicacion -u ansible --key-file /home/pepito/.ssh/id_rsa -m ping
 +</code>
 +
 +Más cosas, añadiendo alias:
 +
 +<code>
 +[servidor_web]
 +10.0.40.10
 +
 +[bbdd]
 +bbdd1 ansible_host=10.0.40.20
 +</code>
 +
 +Y llamamos a Ansible sobre el equipo con la etiqueta que creamos anteriormente:
 +
 +<code>
 +ansible bbdd1 -i /home/pepito/inventario -u ansible --key-file /home/pepito/.ssh/id_rsa -m ping
 +</code>
 +
 +===== Qué son los facts en Ansible =====
 +
 +Los //facts// permiten recoger información sobre los sistemas objetivo y realizar así ciertas modificaciones en función de esa información recogida.
 +
 +<code>
 +ansible servidor_web -i /home/pepito/inventario -u ansible --key-file /home/pepito/.ssh/id_rsa -m setup
 +</code>
 +
 +  * El módulo ''setup'' permite recoger los //facts//
 +
 +<WRAP center round todo 60%>
 +Poner salida del comando anterior
 +</WRAP>
 +
 +Podríamos filtrar (mirar documentación oficial del módulo ''setup''):
 +
 +<code>
 +ansible servidor_web -i /home/pepito/inventario -u ansible --key-file /home/pepito/.ssh/id_rsa -m setup -a "filter=ansible_processor"
 +</code>
 +
 +Cuando usemos Playbooks, por defecto Ansible recoge todos los //facts//.
 ===== Recursos ===== ===== Recursos =====
  
   * [[https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html|How to build your inventory]]   * [[https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html|How to build your inventory]]
   * [[https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_vars_facts.html|Discovering variables: facts and magic variables]]   * [[https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_vars_facts.html|Discovering variables: facts and magic variables]]
informatica/ciberseguridad/cursos/curso_ansible_automatizacion_it/conceptos_fundamentales.1683296908.txt.gz · Última modificación: por tempwin