Ansible + Tacos
¿Qué es Ansible?_Simple automatización
_Provisión, configuración, despliegue, orquestación y más.
_No usa agentes
Ansible_YAML es muy simple
_Open source
_Written in python
Instalación
http://docs.ansible.com/ansible/intro_installation.html
¿Cómo funciona?_Ansible usa SSH
_En centos paramiko
Playbook_El lenguaje principal
_Describen un ambiente en particular
_Manejan configuración y despliegue
Ejemplo
https://github.com/sawyer-effect/chelajs
Hosts and UsersPor cada ‘play’ escogemos hosts y user
---
- hosts: webservers
remote_user: root
Tasks _Una o varias por ‘play’
_ Ejecutadas en secuencia
_Hosts define la lista de servers
Ejemplo de task
tasks: - name: Copy ansible inventory file to client copy: src=/etc/ansible/hosts dest=/etc/ansible/hosts owner=root group=root mode=0644
Ejecutando
ansible-playbook playbook.yml --list-hosts
Inventory_Varios sistemas al mismo tiempo
_Default es /etc/ansible/hosts
_Maneja grupos
_Inventarios dinámicos
Ejemplo inventory[webservers]
www[01:50].example.com
[dbservers]
one.example.com
two.example.com
three.example.com
[databases]
db-[a:f].example.com
Host variables[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909
_Tambien se pueden definir en host_vars
_Nombre del host en el archivo
Group Variables[atlanta]
host1
host2
[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
Tips sobre variablesNo usen dash, ejemplo: foo-bar
- hosts: webservers
vars:
http_port: 80
Usando variablesMe puedo comer {{ max_value }} tacos
template: src=foo.cfg.j2 dest={{ remote_install_path }}/foo.cfg
Roles
_Te ayudan a reutilizar tareas
_Separar tareas por responsabilidad
_Una mejor organización
Roles---
- hosts: webservers
roles:
- common
- webservers
- hosts: webservers
roles:
- { role: foo_app_instance, dir: '/opt/a', port: 5000 }
- { role: foo_app_instance, dir: '/opt/b', port: 5001 }
Role default variables_Variables default (menor prioridad)
defaults/main.yml
Ansible Galaxy
https://galaxy.ansible.com/
¿Preguntas?
¡Gracias!