nephosolutions.postgresql

NephoSolutions - Rol de Ansible para PostgreSQL

Rol de Ansible que instala y configura PostgreSQL, extensiones, bases de datos y usuarios.

Forked from ANXS/postgresql

Instalación

Esto ha sido probado en Ansible 2.4.0 y versiones posteriores.

Para instalar:

ansible-galaxy install ANXS.postgresql

Ejemplo de Playbook

Incluye un ejemplo de cómo usar tu rol:

    - hosts: servidor-postgresql
      become: yes
      roles:
         - { role: anxs.postgresql }

Dependencias

  • ANXS.monit (Galaxy/GH) si deseas protección con monit (en ese caso, debes establecer monit_protection: true)

Matriz de Compatibilidad

Distribución / PostgreSQL <= 9.3 9.4 9.5 9.6 10 11 12
Ubuntu 14.04 :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :grey_question:
Ubuntu 16.04 :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :grey_question:
Debian 8.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :grey_question:
Debian 9.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :grey_question:
CentOS 6.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :grey_question:
CentOS 7.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :grey_question:
CentOS 8.x :no_entry: :grey_question: :grey_question: :grey_question: :grey_question: :grey_question: :grey_question:
Fedora última :no_entry: :x: :x: :x: :x: :x: :x:
  • :white_check_mark: - probado, funciona bien
  • :warning: - No para uso en producción
  • :grey_question: - funcionará en el futuro (ayuda si puedes)
  • :interrobang: - puede funcionar, no probado
  • :no_entry: - PostgreSQL ha llegado al final de su vida útil (EOL)

Variables

# Configuraciones básicas
postgresql_version: 11
postgresql_encoding: "UTF-8"
postgresql_locale: "en_US.UTF-8"
postgresql_ctype: "en_US.UTF-8"

postgresql_admin_user: "postgres"
postgresql_default_auth_method: "peer"

postgresql_service_enabled: false # ¿debería habilitarse el servicio?, el valor por defecto es true

postgresql_cluster_name: "main"
postgresql_cluster_reset: false

# Lista de bases de datos a crear (opcional)
# Nota: para mayor flexibilidad con las extensiones, usa la configuración postgresql_database_extensions.
postgresql_databases:
  - name: foobar
    owner: baz          # opcional; especifica el propietario de la base de datos
    hstore: yes         # indicador para instalar la extensión hstore en esta base de datos (yes/no)
    uuid_ossp: yes      # indicador para instalar la extensión uuid-ossp en esta base de datos (yes/no)
    citext: yes         # indicador para instalar la extensión citext en esta base de datos (yes/no)
    encoding: "UTF-8"   # sobrescribe la variable global {{ postgresql_encoding }} por base de datos
    lc_collate: "en_GB.UTF-8"   # sobrescribe la variable global {{ postgresql_locale }} por base de datos
    lc_ctype: "en_GB.UTF-8"     # sobrescribe la variable global {{ postgresql_ctype }} por base de datos

# Lista de extensiones de base de datos a crear (opcional)
postgresql_database_extensions:
  - db: foobar
    extensions:
      - hstore
      - citext

# Lista de usuarios a crear (opcional)
postgresql_users:
  - name: baz
    pass: pass
    encrypted: yes  # si la contraseña debe estar encriptada, postgresql >= 10 solo acepta contraseñas encriptadas

# Lista de esquemas a crear (opcional)
postgresql_database_schemas:
  - database: foobar           # nombre de la base de datos
    schema: acme               # nombre del esquema
    state: present

  - database: foobar           # nombre de la base de datos
    schema: acme_baz           # nombre del esquema
    owner: baz                 # nombre del propietario
    state: present

# Lista de privilegios de usuario a aplicar (opcional)
postgresql_user_privileges:
  - name: baz                   # nombre de usuario
    db: foobar                  # base de datos
    priv: "ALL"                 # formato de cadena de privilegio: ejemplo: INSERT,UPDATE/tabla:SELECT/otraTabla:ALL
    role_attr_flags: "CREATEDB" # banderas de atributos de rol

Hay muchas más configuraciones que se pueden establecer, las cuales puedes encontrar en defaults/main.yml

Pruebas

Este proyecto viene con un Vagrantfile, esta es una forma rápida y fácil de probar los cambios en el rol, inícialo con vagrant up

Consulta la documentación de Vagrant para configurarte con Vagrant.

Una vez que tu VM esté activa, puedes reprovisionarla usando vagrant provision, o ansible-playbook tests/playbook.yml -i vagrant-inventory.

Si deseas experimentar con el play de prueba, consulta tests/playbook.yml, y cambia las variables en tests/vars.yml.

Si estás contribuyendo, prueba primero tus cambios dentro del entorno de Vagrant (usando la distribución dirigida) y, si es posible, asegúrate de que tu cambio esté cubierto en las pruebas encontradas en .travis.yml.

Licencia

Licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Agradecimientos

Creador:

Mantenedores:

Principales Contribuyentes:

Comentarios, reportes de errores, solicitudes, ...

¡Son bienvenidos!

Acerca del proyecto

"Install and configure PostgreSQL, dependencies, extensions, databases and users." "Forked from https://github.com/ANXS/postgresql"

Instalar
ansible-galaxy install nephosolutions.postgresql
Licencia
mit
Descargas
1.4k
Propietario
ICT Consultancy & Services – DevOps & Cloud Architects