Ansible

De WikiEducator
Saltar a: navegación, buscar
"Ansible is a radically simple configuration-management, deployment, task-execution, and multinode orchestration framework"
  • Ejecución sobre ssh -> No son necesarios servidores centralizados ni agentes en las máquinas a gestionar.
  • Scripts son un DSL de configuración muy simple que usa módulos
  • Los módulos pueden escribirse en cualquier lenguaje, aunque el ansible está escrito en python (los módulos han de producir JSON)
  • Curva de aprendizaje mínima
  • Toda su funcionalidad expuesta en api python
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  user: root
  tasks:
  - name: ensure apache is at the latest version
    action: yum pkg=httpd state=latest
  - name: write the apache config file
    action: template src=/srv/httpd.j2 dest=/etc/httpd.conf
    notify:
     - restart apache
  - name: ensure apache is running
    action: service name=httpd state=started
  handlers:
     - name: restart apache
       action: service name=httpd state=restarted


Módulos

http://ansible.cc/docs/modules.html

  • Número relativamente pequeño de módulos "core".
  • Muy sencillo trabajar con commandos de shell
  • Muy sencillo crear y gestionar módulos propios

Máquinas: Inventario

  • Las máquinas y grupos de máquinas se pueden configurar en un simple archivo de texto plano
# /etc/ansible/hosts
mail.example.com

[webservers]
foo.example.com
bar.example.com

[dbservers]
one.example.com
two.example.com
three.example.com
  • Puede obtener el inventario y variables de configuración de otros servidores:
    • cobbler (ansible es del mismo creador)
    • Amazon EC2
    • facter (puppetlabs)
    • Ohai (opscode)

Creación de módulos

Ejemplo: https://github.com/luisperlaz/ansible-misc-modules