martes, 31 de mayo de 2016

Introducción a Playbooks

Sobre Playbooks

Libros de jugadas son una forma completamente diferente de usar ansible que en el modo de ejecución de la tarea adhoc, y son particularmente poderosos.

En pocas palabras, libros de jugadas son la base para un muy simple sistema de despliegue de gestión de la configuración y multi-máquina, a diferencia de cualquier que ya existen, y uno que se adapta muy bien a la implementación de aplicaciones complejas.

Libros de jugadas pueden declarar configuraciones, pero también pueden orquestar etapas de cualquier proceso ordenado manual, incluso como diferentes pasos deben rebotar hacia atrás y adelante entre conjuntos de máquinas en las órdenes particulares. Ellos pueden iniciar tareas de forma sincrónica o asincrónica.

Si bien es posible ejecutar el principal usr / local / bin / ansible programa para tareas ad-hoc, libros de jugadas son más propensos a mantenerse en control de código fuente y se utiliza para empujar a cabo la configuración o asegurar las configuraciones de los sistemas remotos están dentro de las especificaciones.

También hay algunos juegos completos de libros de jugadas que ilustran muchas de estas técnicas en el repositorio de ansibles-ejemplos . Nos gustaría recomendar mirando a éstos en otra pestaña a medida que avanza.

También hay muchos puntos saltando después de aprender libros de jugadas, así que salta de nuevo al índice de la documentación después de que haya terminado con esta sección.

Playbook Idioma Ejemplo

Libros de jugadas se expresan en formato YAML (ver YAML Sintaxis ) y tener un mínimo de sintaxis, que intenta intencionalmente para no ser un lenguaje de programación o escritura, sino más bien un modelo de configuración o un proceso.

Cada libro de jugadas se compone de uno o más 'juega' en una lista.

El objetivo de un juego es el mapeo de un grupo de hosts para algunos roles bien definidos, representados por lo que las tareas de llamadas ansibles. En un nivel básico, una tarea no es nada más que una llamada a un módulo de ansible (ver Información sobre los módulos ).

Al componer un libro de jugadas de múltiples 'juega', es posible organizar los despliegues multi-máquina, corriendo ciertos pasos en todos los equipos en el grupo de servidores web, a continuación, ciertos pasos en el grupo de servidores de base de datos, a continuación, más comandos de nuevo en el grupo de servidores web, etc. .

"Juega" son más o menos una analogía con el deporte. Usted puede tener un buen montón de obras que afectan a sus sistemas para hacer cosas diferentes. No es como si se acaba definiendo un estado o modelo en particular, y se puede ejecutar diferentes obras de teatro en diferentes momentos.

Para empezar, aquí hay un libro de jugadas que contiene sólo un juego:

--- 
-  Anfitriones :  servidores web 
  vars : 
    http_port :  80 
    max_clients :  200 
  usuario_remoto :  raíz 
  tareas : 
  -  Nombre :  asegurar Apache está en la última versión 
    de yum :  name = = httpd estado más reciente 
  -  Nombre :  escribir el archivo de configuración de Apache 
    plantilla :  src = /srv/httpd.j2 dest = / etc / httpd.conf 
    notificar : 
    -  Reinicia Apache 
  -  nombre :  asegurar Apache está funcionando (y activarlo en el arranque) 
    del servicio :  nombre = = httpd estado comenzó a enabled = yes 
  manipuladores : 
    -  nombre :  reinicio apache 
      servicio :  estado name = = httpd renovadas

También podemos romper los elementos de tarea a lo largo de varias líneas usando los tipos de diccionario YAML para suministrar argumentos de los módulos. Esto puede ser muy útil cuando se trabaja con las tareas que tienen parámetros o módulos que tienen muchos parámetros para mantenerlos bien estructurada muy largas. A continuación se muestra otra versión del ejemplo anterior, pero utilizando diccionarios YAML para suministrar los módulos con sus clave = valor argumentos .:

--- 
-  Anfitriones :  servidores web 
  vars : 
    http_port :  80 
    max_clients :  200 
  usuario_remoto :  raíz 
  tareas : 
  -  Nombre :  asegurar Apache está en la última versión 
    de yum : 
      Nombre :  httpd 
      Estado :  reciente 
  -  Nombre :  escribir el archivo de configuración de Apache 
    plantilla : 
      src :  /srv/httpd.j2 
      dest :  /etc/httpd.conf 
    notificar : 
    -  reinicia Apache 
  -  nombre :  garantizar Apache se está ejecutando 
    el servicio : 
      nombre :  httpd 
      estado :  comenzó 
  manipuladores : 
    -  nombre :  reiniciar apache 
      servicio : 
        nombre :  httpd 
        estado :  renovadas

Libros de jugadas pueden contener varias obras de teatro. Es posible que tenga un libro de jugadas que se dirige en primer lugar los servidores web, y luego los servidores de bases de datos. Por ejemplo:

--- 
-  Anfitriones :  servidores web 
  usuario_remoto :  root

  tareas : 
  -  Nombre :  garantizar Apache está en la última versión 
    de yum :  name = = httpd estado más reciente 
  -  Nombre :  escribir el archivo de configuración de Apache 
    plantilla :  src = / srv / httpd.j2 dest = / etc / httpd.conf

-  Anfitriones :  bases de datos 
  usuario_remoto :  root

  tareas : 
  -  Nombre :  garantizar PostgreSQL está en la última versión 
    de yum :  name = = PostgreSQL estado más reciente 
  -  Nombre :  asegurar que PostgreSQL se inicia 
    el servicio :  name = = zapatillas estado PostgreSQL

Puede utilizar este método para cambiar entre el grupo de hosts que usted está apuntando, el registro de nombre de usuario en los servidores remotos, si se debe o no sudo, y así sucesivamente. Obras de teatro, como tareas, se ejecutan en el orden especificado en el libro de jugadas: de arriba a abajo.

A continuación, vamos a romper hacia abajo lo que las diversas características del lenguaje libro de jugadas son.

Lo esencial
Los anfitriones y Usuarios

Para cada juego en un libro de jugadas, puedes elegir el que las máquinas en su infraestructura para apuntar y qué usuario remoto para completar los pasos (denominados tareas) como.

El anfitriones línea es una lista de uno o más grupos o patrones de hosts, separados por dos puntos, como se describe en la Patrones documentación. El usuario_remoto es sólo el nombre de la cuenta de usuario:

--- 
-  Anfitriones :  servidores web 
  usuario_remoto :  root


Fuente : http://docs.ansible.com/ansible/playbooks_intro.html

No hay comentarios:

Publicar un comentario en la entrada