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)