25

Ansible + tacos at dev hangout

Embed Size (px)

Citation preview

Page 1: Ansible + tacos at dev hangout
Page 2: Ansible + tacos at dev hangout

Ansible + Tacos

Page 3: Ansible + tacos at dev hangout
Page 4: Ansible + tacos at dev hangout
Page 5: Ansible + tacos at dev hangout

¿Qué es Ansible?_Simple automatización

_Provisión, configuración, despliegue, orquestación y más.

_No usa agentes

Page 6: Ansible + tacos at dev hangout

Ansible_YAML es muy simple

_Open source

_Written in python

Page 7: Ansible + tacos at dev hangout

Instalación

http://docs.ansible.com/ansible/intro_installation.html

Page 8: Ansible + tacos at dev hangout

¿Cómo funciona?_Ansible usa SSH

_En centos paramiko

Page 9: Ansible + tacos at dev hangout

Playbook_El lenguaje principal

_Describen un ambiente en particular

_Manejan configuración y despliegue

Page 10: Ansible + tacos at dev hangout

Ejemplo

https://github.com/sawyer-effect/chelajs

Page 11: Ansible + tacos at dev hangout

Hosts and UsersPor cada ‘play’ escogemos hosts y user

---

- hosts: webservers

remote_user: root

Page 12: Ansible + tacos at dev hangout

Tasks _Una o varias por ‘play’

_ Ejecutadas en secuencia

_Hosts define la lista de servers

Page 13: Ansible + tacos at dev hangout

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

Page 14: Ansible + tacos at dev hangout

Ejecutando

ansible-playbook playbook.yml --list-hosts

Page 15: Ansible + tacos at dev hangout

Inventory_Varios sistemas al mismo tiempo

_Default es /etc/ansible/hosts

_Maneja grupos

_Inventarios dinámicos

Page 16: Ansible + tacos at dev hangout

Ejemplo inventory[webservers]

www[01:50].example.com

[dbservers]

one.example.com

two.example.com

three.example.com

[databases]

db-[a:f].example.com

Page 17: Ansible + tacos at dev hangout

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

Page 18: Ansible + tacos at dev hangout

Group Variables[atlanta]

host1

host2

[atlanta:vars]

ntp_server=ntp.atlanta.example.com

proxy=proxy.atlanta.example.com

Page 19: Ansible + tacos at dev hangout

Tips sobre variablesNo usen dash, ejemplo: foo-bar

- hosts: webservers

vars:

http_port: 80

Page 20: Ansible + tacos at dev hangout

Usando variablesMe puedo comer {{ max_value }} tacos

template: src=foo.cfg.j2 dest={{ remote_install_path }}/foo.cfg

Page 21: Ansible + tacos at dev hangout

Roles

_Te ayudan a reutilizar tareas

_Separar tareas por responsabilidad

_Una mejor organización

Page 22: Ansible + tacos at dev hangout

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 }

Page 23: Ansible + tacos at dev hangout

Role default variables_Variables default (menor prioridad)

defaults/main.yml

Page 24: Ansible + tacos at dev hangout

Ansible Galaxy

https://galaxy.ansible.com/

Page 25: Ansible + tacos at dev hangout

¿Preguntas?

¡Gracias!