Ansible
De WikiEducator
"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)