sql >> Base de Datos >  >> RDS >> PostgreSQL

Planeta PostgreSQL en Ansible Galaxy

¡Ansible Galaxy es simplemente la forma más fácil de encontrar roles de Ansible ya escritos, crear y compartir sus roles y saltar a la galaxia del contenido de Ansible!

====================¡Anuncio en hora de máxima audiencia! ====================

FOSDEM PGDay 2016 será el 29 de enero antes de FOSDEM, que es el evento de código abierto más grande de Europa, y PostgreSQL Devroom será el 31 de enero en FOSDEM en Bruselas.

Si está interesado en la gestión de configuración, orquestación de servidores, implementación automatizada (por eso está leyendo esta publicación de blog, ¿verdad?) y le gusta trabajar con PostgreSQL (seguro) en AWS (opcionalmente), entonces quizás desee unirse a mi charla "Gestión de PostgreSQL con Ansible" el 29 de enero, de 12:30 a 13:20.

¡Consulte el increíble calendario de ambos eventos! ¡Espero verte en Bruselas esta semana!

====================¡Anuncio en hora de máxima audiencia! ====================

¡Hola, galaxia Ansible!

Ansible tiene una comunidad poderosa que los hace aún más poderosos. Los desarrolladores que contribuyen a Ansible están felices de contribuir y los usuarios que usan Ansible para sus propios sistemas están felices de usarlo.

El contenido de Ansible al que se refieren en su página web es básicamente roles de Ansible. Continuemos con los roles en esta publicación de blog e intentemos comprender qué significa el rol de Ansible y cuáles son las diferencias entre roles, playbooks y tareas.

¿Qué es un rol de Ansible?

Absolutamente deberías usar roles. Los papeles son geniales. Usa roles. ¡Roles! ¿Dijimos eso lo suficiente? Los roles son geniales.

Antes de hablar de roles, recordemos la definición de tarea y libro de jugadas en la terminología de Ansible.

Tarea

Las tareas son responsables de llamar a un módulo con un conjunto específico de parámetros.

Puede leer mi publicación de blog anterior para obtener información sobre los módulos de Ansible y consultar los módulos de Ansible Postgres con ejemplos.

Cada tarea de Ansible contiene un nombre, un módulo al que se llamará, parámetros del módulo y, opcionalmente, condiciones previas y posteriores. Nos permiten llamar a módulos de Ansible y pasar información a tareas consecutivas.

La siguiente tarea invoca el módulo de archivo proporcionando 4 parámetros.


- name: Ensure the data folder has right ownership
  file: path="/var/lib/postgresql" state=directory owner=postgres group=postgres

Asegura que 3 condiciones sean verdaderas:

  • /var/lib/postgresql existe como directorio
  • el propietario de /var/lib/postgresql es “postgres”
  • el grupo de /var/lib/postgresql es "postgres"

Si no existe, Ansible crea el directorio y asigna propietario y grupo. Si solo el propietario es diferente, Ansible lo convierte en "postgres".

Libro de jugadas

Los libros de jugadas contienen jugadas y las jugadas contienen tareas. Las tareas llaman módulos y pueden (opcionalmente) controladores de activación (ejecutar una vez, ejecutar al final) .

Ahora podemos ver un ejemplo de libro de jugadas muy simple a continuación:


- name: Ensure all virtual machines are ready
  hosts: 127.0.0.1
  connection: local
  vars_files: # load default variables from YAML files below
    - 'defaults/postgresql.yml'
    - 'defaults/aws.yml'
  tasks:
    - include: 'tasks/provision.yml' # load infrastructure setup tasks

- name: Ensure all required PostgreSQL dependencies ready
  hosts: postgresql-all # manage all PostgreSQL servers
  sudo: yes
  sudo_user: root
  vars_files:
    - 'defaults/postgresql.yml'
    - 'defaults/aws.yml'
  tasks:
    - include: 'tasks/postgresql.yml' # load PostgreSQL setup tasks

En este libro de jugadas tenemos dos jugadas:

El primer juego garantiza que todas las máquinas virtuales estén listas y funcionen en localhost. Carga variables predeterminadas de archivos YAML llamados postgresql.yml y aws.yml. Puede pensar en estos archivos como archivos de configuración para los roles y playbooks de PostgreSQL y AWS (en nuestro ejemplo), ya que puede ver que ambos juegos usan estos archivos para las variables predeterminadas. Esta obra llama a la tarea provision.yml que contiene tareas de configuración de infraestructura.

Second Play asegura que todas las dependencias de PostgreSQL requeridas estén listas y opera en servidores de Postgres que están definidos en el archivo de inventario. Esta obra llama a la tarea postgresql.yml que contiene las tareas de configuración de PostgreSQL.

Si desea ver el libro de jugadas completo, le invitamos a consultar mi repositorio y contribuir para mejorarlo.

Para comprender mejor el concepto del libro de jugadas, puede consultar los libros de jugadas de ejemplo que se sugieren en los documentos de Ansible.

Volvamos a hablar de roles. En Ansible;

  • Libros de jugadas organizar tareas
  • Funciones organizar libros de jugadas

Imagine que tenemos muchos recursos independientes para administrar (por ejemplo, servidores web, servidores PostgreSQL, registro, monitoreo, AWS). Poner todo en un solo libro de jugadas puede resultar en una solución imposible de mantener.

Para reducir tal complejidad, los roles nos ayudan con:

Dividir tareas en libros de jugadas mucho más pequeños

Esto nos permite centrarnos en los recursos, de forma independiente. Eso hace que sea más fácil de mantener y depurar. También será mucho más fácil entender la estructura.

Reutilización de configuraciones, archivos, plantillas, tareas

De esta forma, podemos compartir fácilmente esos componentes entre libros de jugadas, sin tener que volver a escribirlos una y otra vez.

Manejo de dependencias del libro de jugadas

Cuando ejecutamos un rol, podemos estar seguros de que se cumplen todas las condiciones previas para ese rol.

Aquí puede ver un gráfico de dependencia y la estructura de directorio de roles correspondiente:

Funciones de PostgreSQL en Ansible Galaxy

Mientras escribía esta publicación de blog, había 146 roles que se convierten en una salida de postgresql y postgres búsqueda de filtros.

Personalmente, sugiero verificar un par de estos roles y usarlos en sus arquitecturas si son lo suficientemente buenos y satisfacen sus necesidades; si no lo son, regístrese en Ansible Galaxy y cree sus propios roles.

¡Feliz piratería!

Para obtener más información sobre Ansible:

  • Echa un vistazo a sus documentos bien escritos.
  • Mire el video de inicio rápido de Ansible, que es un tutorial muy útil.
  • Siga su calendario de seminarios web, hay algunos próximos seminarios web interesantes en la lista.