2
Lo más leído
4
Lo más leído
En un mundo donde la existencia de arquitecturas variables, contextos heterogéneos y una
gran cantidad de nodos por gestionar, la tarea de administrar se ha convertido en una tarea
tediosa y muchas veces repetitiva, por lo que surge la necesidad de contar con herramientas e
instrumentos que permitan a los SysAdmin y Developers automatizar estos procesos de forma
sencilla, entendible y segura, independientemente si se encuentran en arquitecturas de nodos
físicos, virtuales o en la nube.
Ansible es una plataforma de software libre para configurar y administrar ordenadores y/o
servidores.
Que es ansible
Ansible es una herramienta que nos permite gestionar configuraciones, aprovisionamiento de
recursos, orquestación, despliegue automático de aplicaciones y muchas otras tareas de TI de
una forma limpia, sencilla y segura.
Ansible permite
• Instalaciones multi-nodo
• Ejecuciones de tareas ad hoc
• Administración de configuraciones
• Manejar nodos a través de SSH
Para todo esto y mucho más, no requiere ningún software remoto adicional (excepto Python 2.4
o posterior).
Características
• Mínimalista: Es una sistema de administración que no impone dependencias
adicionales.
• Consistente: Es muy robusto y fuerte en su funcionalidad
• Seguro: Ansible no instala agentes vulnerables en los nodos. Solamente se requiere
OpenSSH que es considerado crítico y altamente testeado.
• Alta confiabilidad: El modelo de idempotencia es aplicado para las instalaciones y
configuraciones, para prevenir efectos secundarios en la ejecución repetitiva de scripts.
• Curva de aprendizaje mínima: ya que hace uso de de los playbooks, los cuales usan
un lenguaje descriptivo simple, basado en YAML.
Integración con diferentes arquitecturas
Independientemente de la arquitectura que disponga nuestra infraestructura, Ansible puede
instalarse en ambientes físicos, virtualizados, nubes públicas y privadas; también puede
instalarse en entornos para analizar y archivar big data.
¿En qué se diferencia de otras herramientas similares?
• No necesita agentes
• No requiere de configuraciones engorrosas y complicadas
• Flexibilidad (API, Módulos, Plugins)
• Facilidad de uso
Componentes
• Máquina de Administración: es la máquina donde tenemos instalado Ansible, y desde
donde podremos ejecutar las tareas y/o gestionar los nodos.
• Inventario: es una descripción de los nodos que pueden ser accedidos por Ansible
(maquina de administración). El inventario está descrito por un archivo de configuración,
en formato INI, cuya ubicación por defecto es /etc/ansible/hosts. En el archivo de
configuración se listan las direcciones IP o hostname de cada nodo que es accesible por
Ansible. Además, los nodos pueden ser asignados a grupos.
• Playbook: describen configuraciones, despliegue, y orquestación; el formato del
Playbook es YAML. Cada Playbook asocia un grupo de hosts a un conjunto de roles,
cada rol está representado por llamadas a lo que Ansible define como Tareas. En
resumen un PlayBook lista las tareas que deben ejecutarse en los diferentes nodos.
• Tarea: son bloques dentro del Playbook donde se define una acción específica a realizar
(instalar paquetes, ejecutar scripts, verificar estado de actualizaciones, etc).
• Modulo: son las unidades de trabajo en Ansible; cada módulo es auto-suficiente y puede
ser escrito en lenguaje estándar de scripting, como ser Python, Perl, Ruby, Bash, etc.
Una de las propiedades principales de los módulos es la idempotencia la cual asegura
que ninguna operación se realizará una vez que el sistema ha alcanzado el estado
deseado.
• Roles: permiten ordenar los diferentes Playbooks.
• Facts: variables dentro de Ansible que contienen información sobre los servidores
(Sistema Operativo, Cantidad de Ram, Direcciones IP, etc)
• Handlers: código que se usa cuando algo cambia o existen excepciones (si actualizas
el archivo de configuración de Apache, un Handler re-iniciará el servicio httpd).
Como funciona Ansible
• Ansible no precisa instalar ni Agentes, solo un equipo a partir del cual se realizará la
gestión de los diferentes nodos.
• Ansible se conecta a los nodos que se desea gestionar, aprovisionar u orquestar
utilizando una conexión SSH, mediante la cual le envía una serie de instrucciones a
ejecutar y/o configuraciones que se desee aplicar.
¿Quiénes usan Ansible actualmente?
Por su simplicidad Ansible es utilizado por muchísimas empresas. Entre ellas:
• Atlassian
• NASA
• Evernote
• Spotify
• Verisign
• RedHat
• Amazon
Instalación
• RedHat y Centos: yum install ansible
• Debian: apt-get install ansible
Pasos para realizar la gestión de nodos
• Conectar el equipo de administración con los nodos
• Configurar el inventario de nodos
• Realizar pruebas de conectividad
• Realizar la gestión y/o aprovisionamiento
Conectar el equipo de administración con los nodos
Generar la llave
Generar la llave en el nodo administrador
ssh-keygen
Esto genera
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
Copiar la llave pública
Copiar la llave del nodo administrador a los nodos a administrar
ssh-copy-id -i ~/.ssh/id_rsa.pub root@web01.atixlibre.org
ssh-copy-id -i ~/.ssh/id_rsa.pub root@web01.atixlibre.org
ssh-copy-id -i ~/.ssh/id_rsa.pub root@web01.atixlibre.org
Archivos de configuración
/etc/ansible/
Configurar el inventario de nodos
/etc/ansible/hosts
[servidoresweb]
web01.atixlibre.org
web02.atixlibre.org
web03.atixlibre.org
[basesdedatos]
db01.atixlibre.org
db02.atixlibre.org
db03.atixlibre.org
Realizar pruebas de conectividad
Ejecución ad hoc
ansible all -m ping -u root
Resultado
192.168.101.104 | success >> {
"changed": false,
"ping": "pong"
}
Ejecución sin -u root
192.168.100.10 | FAILED => SSH encountered an unknown error during the connection. We
recommend you re-run the command using -vvvv, which will enable SSH debugging output to
help diagnose the issue
Ejecución desde un playbook
playbook_test.yml
- hosts: servidoresweb
remote_user: root
tasks:
- name: test de conexión
ping:
ansible-playbook playbook_test.yml
Partes de una tarea
Name: Cada tarea tiene un nombre, que sirve para identificar la tarea y también para el
seguimiento de la misma.
Ejemplo
tasks:
- name: Verificar si apache esta correindo
service: name=httpd state=running
notify: son las acciones que se ejecutarán al final de cada tarea en el Playbook. Sólo serán
ejecutadas una vez, incluso cuando sean llamadas por diferentes tareas. Por ejemplo: Muchas
tareas pueden solicitar el reinicio de algún servicio específico, pero este sólo será reiniciado una
sola vez.
Ejemplo
notify:
- restart apache
Ejecución
ansible-playbook playbook.yml
Ejemplo de playbook
Crear un Playbook llamado webserver.yml, con el que vamos a instalar las herramientas
necesarias para publicar una página web en varios servidores.
#######################################
# Hosts donde se realizarán las tareas
#######################################
- hosts: servidoresweb
user: root
#####################################
# Instalación de paquetes necesarios.
#####################################
tasks:
- name: General | Instalación de paquetes requeridos.
action: apt pkg={{ item }} state=installed with_items:
- php5
- apache2
- mysql-server
- mysql-client
- php5-mysql
- php-apc
- php5-xmlrpc
- php-soap
- php5-gd
- unzip
- python-mysqldb
###########################
# Configuración de Apache2.
###########################
- name: Apache2 | Habilitar módulos
action: command a2enmod rewrite vhost_alias
#######################
# Reinicio de servicios
#######################
- name: Reiniciar Apache
action: service name=apache2 state=restarted
Ejecución del playbook
ansible-playbook webserver.yml
PLAY [webserver] **************************************************************
GATHERING FACTS ***************************************************************
ok: [192.168.101.104]
TASK: [General | Instalación de paquetes requeridos.] ************************
changed: [192.168.101.104] => (item=php5,apache2,mysql-server,mysql-client,php5-
mysql,php-apc,php5-xmlrpc,php-soap,php5-gd,unzip,python-mysqldb)
TASK: [Apache2 | Habilitar modulos] *******************************************
changed: [192.168.101.104]
TASK: [Restart Apache] ********************************************************
changed: [192.168.101.104]
PLAY RECAP ********************************************************************
192.168.101.104 : ok=4 changed=3 unreachable=0 failed=0
Referencias
[1] http://ww.ansible.com

Más contenido relacionado

PDF
Provisión Automática de máquinas con Ansible
PPTX
Virtualization
PPT
Virtualization
PDF
Vmware overview
PPTX
Virtualization Explained | What Is Virtualization Technology? | Virtualizatio...
PDF
Introduction to virtualization
PPTX
Vmware Data Center Virtualization ESXI and vCenter
PPT
What is Virtualization
Provisión Automática de máquinas con Ansible
Virtualization
Virtualization
Vmware overview
Virtualization Explained | What Is Virtualization Technology? | Virtualizatio...
Introduction to virtualization
Vmware Data Center Virtualization ESXI and vCenter
What is Virtualization

La actualidad más candente (20)

PPTX
Virtualizacion
PPTX
Virtualization 101
PPTX
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
PDF
Server Virtualization
PPT
Virtualisation basics
PPTX
virtual-machine-ppt 18030 cloud computing.pptx
PPTX
VMware ESXi 6.0 Installation Process
PPTX
what is LINUX ? presentation.
PDF
Virtualization presentation
PPTX
VMware Overview
PPTX
Fundamentals of Servers, server storage and server security.
PPT
Virtualization VMWare technology
PPSX
HPE SimpliVity
PPTX
Desktop virtualization
PPTX
Virtual Infrastructure Overview
PDF
Virtual Chassis for Cloud Builders
PDF
Hyper-converged infrastructure
PPTX
Virtualization concept slideshare
PPTX
VMware Vsphere Graduation Project Presentation
Virtualizacion
Virtualization 101
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Server Virtualization
Virtualisation basics
virtual-machine-ppt 18030 cloud computing.pptx
VMware ESXi 6.0 Installation Process
what is LINUX ? presentation.
Virtualization presentation
VMware Overview
Fundamentals of Servers, server storage and server security.
Virtualization VMWare technology
HPE SimpliVity
Desktop virtualization
Virtual Infrastructure Overview
Virtual Chassis for Cloud Builders
Hyper-converged infrastructure
Virtualization concept slideshare
VMware Vsphere Graduation Project Presentation
Publicidad

Similar a Ansible (20)

PPTX
Introduccion a Ansible
ODP
Gestionando tu infraestructura con Ansible
ODP
Ansible para Gestión de la configuración y Automatización
PDF
Cloud Computing. Gestión de configuraciones. Ansible
PDF
Ansible + AWS: Cómo administrar tu infraestructura de AWS con Ansible
PPTX
Ansible DevOps Day Peru 2016
PPTX
Ansible administracion simplificada
ODP
Ambientes de desarrollo y producción. Mejores prácticas con ansible
PPTX
Ansible + tacos at dev hangout
PPTX
Automatización de sistemas con Ansible - OpenSouthCode 16
PPTX
AWS Peru Meetup - Ansible y AWS Demo (by Joseph Paz)
PDF
Introducción a Ansible
PDF
Automatización de tareas con Ansible
PPTX
It automation con ansible sd
PDF
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
PPTX
Infraestructura como codigo
PPTX
LINUXsddsdsdsdsdssdsddssddssdsdsdsd.pptx
PDF
Instalacion Xen
PPT
Configuración maquinas virtuales
PDF
Infrastructure as Code
Introduccion a Ansible
Gestionando tu infraestructura con Ansible
Ansible para Gestión de la configuración y Automatización
Cloud Computing. Gestión de configuraciones. Ansible
Ansible + AWS: Cómo administrar tu infraestructura de AWS con Ansible
Ansible DevOps Day Peru 2016
Ansible administracion simplificada
Ambientes de desarrollo y producción. Mejores prácticas con ansible
Ansible + tacos at dev hangout
Automatización de sistemas con Ansible - OpenSouthCode 16
AWS Peru Meetup - Ansible y AWS Demo (by Joseph Paz)
Introducción a Ansible
Automatización de tareas con Ansible
It automation con ansible sd
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
Infraestructura como codigo
LINUXsddsdsdsdsdssdsddssddssdsdsdsd.pptx
Instalacion Xen
Configuración maquinas virtuales
Infrastructure as Code
Publicidad

Más de Esteban Saavedra (20)

PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Lineas Base Migracion a Software Libre
PDF
Seguridad Sistemas de Gobierno
PDF
Tunneling: Esquivando Restricciones de Proxies y Firewalls
PDF
Bi Un Modelo Eficiente para Gerenciar Empresas
PDF
Clouds privadas
PDF
Introduccion Computacion Ubicua
PDF
Frameworks de Desarrollo Web Grails
PDF
Avances Tecnologicos
PDF
Dni Electronico Bolivia
PDF
E technologies
Lineas Base Migracion a Software Libre
Seguridad Sistemas de Gobierno
Tunneling: Esquivando Restricciones de Proxies y Firewalls
Bi Un Modelo Eficiente para Gerenciar Empresas
Clouds privadas
Introduccion Computacion Ubicua
Frameworks de Desarrollo Web Grails
Avances Tecnologicos
Dni Electronico Bolivia
E technologies

Último (20)

PDF
Trabajo de recuperación _20250821_191354_0000.pdf
DOCX
Nombre del estudiante Gabriela Benavides
PDF
Distribucion de frecuencia exel (1).pdf
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PPTX
Usuarios en la arquitectura de la información
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
PPTX
Procesamiento-del-Lenguaje-Natural-Un-Viaje-Paso-a-Paso.pptx
PDF
Inteligencia_Artificial,_Informática_Básica,_22_06_2025_SO_2.pdf
DOCX
Guía 5. Test de orientación Vocacional 2 NICOL.docx
PPTX
Uso responsable de la tecnología - EEST N°1
PPTX
TECNOLOGIAS DE INFORMACION Y COMUNICACION
PDF
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
DOCX
Informee_APA_Microbittrabajoogrupal.docx
PPTX
TECNOLOGIA EDUCATIVA...........pptx.....
PPTX
libro proyecto con scratch jr pdf en la e
PPT
Protocolos de seguridad y mecanismos encriptación
DOCX
Guía 5. Test de orientación Vocacional 2[1] (Recuperado automáticamente).docx
DOCX
orientacion nicol juliana portela jimenez
PPTX
Control de calidad en productos de frutas
PDF
Taller tecnológico Michelle lobo Velasquez
Trabajo de recuperación _20250821_191354_0000.pdf
Nombre del estudiante Gabriela Benavides
Distribucion de frecuencia exel (1).pdf
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Usuarios en la arquitectura de la información
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Procesamiento-del-Lenguaje-Natural-Un-Viaje-Paso-a-Paso.pptx
Inteligencia_Artificial,_Informática_Básica,_22_06_2025_SO_2.pdf
Guía 5. Test de orientación Vocacional 2 NICOL.docx
Uso responsable de la tecnología - EEST N°1
TECNOLOGIAS DE INFORMACION Y COMUNICACION
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
Informee_APA_Microbittrabajoogrupal.docx
TECNOLOGIA EDUCATIVA...........pptx.....
libro proyecto con scratch jr pdf en la e
Protocolos de seguridad y mecanismos encriptación
Guía 5. Test de orientación Vocacional 2[1] (Recuperado automáticamente).docx
orientacion nicol juliana portela jimenez
Control de calidad en productos de frutas
Taller tecnológico Michelle lobo Velasquez

Ansible

  • 1. En un mundo donde la existencia de arquitecturas variables, contextos heterogéneos y una gran cantidad de nodos por gestionar, la tarea de administrar se ha convertido en una tarea tediosa y muchas veces repetitiva, por lo que surge la necesidad de contar con herramientas e instrumentos que permitan a los SysAdmin y Developers automatizar estos procesos de forma sencilla, entendible y segura, independientemente si se encuentran en arquitecturas de nodos físicos, virtuales o en la nube. Ansible es una plataforma de software libre para configurar y administrar ordenadores y/o servidores. Que es ansible Ansible es una herramienta que nos permite gestionar configuraciones, aprovisionamiento de recursos, orquestación, despliegue automático de aplicaciones y muchas otras tareas de TI de una forma limpia, sencilla y segura. Ansible permite • Instalaciones multi-nodo • Ejecuciones de tareas ad hoc • Administración de configuraciones • Manejar nodos a través de SSH Para todo esto y mucho más, no requiere ningún software remoto adicional (excepto Python 2.4 o posterior).
  • 2. Características • Mínimalista: Es una sistema de administración que no impone dependencias adicionales. • Consistente: Es muy robusto y fuerte en su funcionalidad • Seguro: Ansible no instala agentes vulnerables en los nodos. Solamente se requiere OpenSSH que es considerado crítico y altamente testeado. • Alta confiabilidad: El modelo de idempotencia es aplicado para las instalaciones y configuraciones, para prevenir efectos secundarios en la ejecución repetitiva de scripts. • Curva de aprendizaje mínima: ya que hace uso de de los playbooks, los cuales usan un lenguaje descriptivo simple, basado en YAML. Integración con diferentes arquitecturas Independientemente de la arquitectura que disponga nuestra infraestructura, Ansible puede instalarse en ambientes físicos, virtualizados, nubes públicas y privadas; también puede instalarse en entornos para analizar y archivar big data. ¿En qué se diferencia de otras herramientas similares? • No necesita agentes • No requiere de configuraciones engorrosas y complicadas • Flexibilidad (API, Módulos, Plugins) • Facilidad de uso
  • 3. Componentes • Máquina de Administración: es la máquina donde tenemos instalado Ansible, y desde donde podremos ejecutar las tareas y/o gestionar los nodos. • Inventario: es una descripción de los nodos que pueden ser accedidos por Ansible (maquina de administración). El inventario está descrito por un archivo de configuración, en formato INI, cuya ubicación por defecto es /etc/ansible/hosts. En el archivo de configuración se listan las direcciones IP o hostname de cada nodo que es accesible por Ansible. Además, los nodos pueden ser asignados a grupos. • Playbook: describen configuraciones, despliegue, y orquestación; el formato del Playbook es YAML. Cada Playbook asocia un grupo de hosts a un conjunto de roles, cada rol está representado por llamadas a lo que Ansible define como Tareas. En resumen un PlayBook lista las tareas que deben ejecutarse en los diferentes nodos. • Tarea: son bloques dentro del Playbook donde se define una acción específica a realizar (instalar paquetes, ejecutar scripts, verificar estado de actualizaciones, etc). • Modulo: son las unidades de trabajo en Ansible; cada módulo es auto-suficiente y puede ser escrito en lenguaje estándar de scripting, como ser Python, Perl, Ruby, Bash, etc. Una de las propiedades principales de los módulos es la idempotencia la cual asegura que ninguna operación se realizará una vez que el sistema ha alcanzado el estado deseado. • Roles: permiten ordenar los diferentes Playbooks. • Facts: variables dentro de Ansible que contienen información sobre los servidores (Sistema Operativo, Cantidad de Ram, Direcciones IP, etc) • Handlers: código que se usa cuando algo cambia o existen excepciones (si actualizas el archivo de configuración de Apache, un Handler re-iniciará el servicio httpd). Como funciona Ansible • Ansible no precisa instalar ni Agentes, solo un equipo a partir del cual se realizará la gestión de los diferentes nodos. • Ansible se conecta a los nodos que se desea gestionar, aprovisionar u orquestar utilizando una conexión SSH, mediante la cual le envía una serie de instrucciones a ejecutar y/o configuraciones que se desee aplicar. ¿Quiénes usan Ansible actualmente? Por su simplicidad Ansible es utilizado por muchísimas empresas. Entre ellas: • Atlassian • NASA • Evernote • Spotify • Verisign • RedHat • Amazon
  • 4. Instalación • RedHat y Centos: yum install ansible • Debian: apt-get install ansible Pasos para realizar la gestión de nodos • Conectar el equipo de administración con los nodos • Configurar el inventario de nodos • Realizar pruebas de conectividad • Realizar la gestión y/o aprovisionamiento Conectar el equipo de administración con los nodos Generar la llave Generar la llave en el nodo administrador ssh-keygen Esto genera ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Copiar la llave pública Copiar la llave del nodo administrador a los nodos a administrar ssh-copy-id -i ~/.ssh/id_rsa.pub root@web01.atixlibre.org ssh-copy-id -i ~/.ssh/id_rsa.pub root@web01.atixlibre.org ssh-copy-id -i ~/.ssh/id_rsa.pub root@web01.atixlibre.org Archivos de configuración /etc/ansible/ Configurar el inventario de nodos /etc/ansible/hosts [servidoresweb] web01.atixlibre.org web02.atixlibre.org web03.atixlibre.org
  • 5. [basesdedatos] db01.atixlibre.org db02.atixlibre.org db03.atixlibre.org Realizar pruebas de conectividad Ejecución ad hoc ansible all -m ping -u root Resultado 192.168.101.104 | success >> { "changed": false, "ping": "pong" } Ejecución sin -u root 192.168.100.10 | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue Ejecución desde un playbook playbook_test.yml - hosts: servidoresweb remote_user: root tasks: - name: test de conexión ping: ansible-playbook playbook_test.yml Partes de una tarea Name: Cada tarea tiene un nombre, que sirve para identificar la tarea y también para el seguimiento de la misma. Ejemplo tasks: - name: Verificar si apache esta correindo service: name=httpd state=running notify: son las acciones que se ejecutarán al final de cada tarea en el Playbook. Sólo serán ejecutadas una vez, incluso cuando sean llamadas por diferentes tareas. Por ejemplo: Muchas tareas pueden solicitar el reinicio de algún servicio específico, pero este sólo será reiniciado una sola vez.
  • 6. Ejemplo notify: - restart apache Ejecución ansible-playbook playbook.yml Ejemplo de playbook Crear un Playbook llamado webserver.yml, con el que vamos a instalar las herramientas necesarias para publicar una página web en varios servidores. ####################################### # Hosts donde se realizarán las tareas ####################################### - hosts: servidoresweb user: root ##################################### # Instalación de paquetes necesarios. ##################################### tasks: - name: General | Instalación de paquetes requeridos. action: apt pkg={{ item }} state=installed with_items: - php5 - apache2 - mysql-server - mysql-client - php5-mysql - php-apc - php5-xmlrpc - php-soap - php5-gd - unzip - python-mysqldb ########################### # Configuración de Apache2. ########################### - name: Apache2 | Habilitar módulos action: command a2enmod rewrite vhost_alias ####################### # Reinicio de servicios ####################### - name: Reiniciar Apache action: service name=apache2 state=restarted
  • 7. Ejecución del playbook ansible-playbook webserver.yml PLAY [webserver] ************************************************************** GATHERING FACTS *************************************************************** ok: [192.168.101.104] TASK: [General | Instalación de paquetes requeridos.] ************************ changed: [192.168.101.104] => (item=php5,apache2,mysql-server,mysql-client,php5- mysql,php-apc,php5-xmlrpc,php-soap,php5-gd,unzip,python-mysqldb) TASK: [Apache2 | Habilitar modulos] ******************************************* changed: [192.168.101.104] TASK: [Restart Apache] ******************************************************** changed: [192.168.101.104] PLAY RECAP ******************************************************************** 192.168.101.104 : ok=4 changed=3 unreachable=0 failed=0 Referencias [1] http://ww.ansible.com