trainline-eu.ansible_postgresql_role
Rol de Ansible para PostgreSQL 
Rol de Ansible que instala y configura clústeres, bases de datos y usuarios de PostgreSQL.
Ve la página del rol en Ansible Galaxy.
Instalación
Este rol ha sido probado en Ansible 2.5.0 y versiones superiores.
Para instalar:
ansible-galaxy install trainline-eu.ansible_postgresql_role
Dependencias
Sin dependencias
Dependencias recomendadas:
Matriz de compatibilidad
Esta tabla lista las versiones de OS/PostgreSQL probadas.
Distribución / PostgreSQL | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|
Debian 9.x | :no_entry: :white_check_mark: | :no_entry: :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Debian 10.x | :no_entry: :white_check_mark: | :no_entry: :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- :white_check_mark: - probado, funciona correctamente
- :grey_question: - funcionará en el futuro (ayuda si puedes)
- :interrobang: - tal vez funcione, no probado
- :no_entry: - PostgreSQL ha alcanzado el final de su vida útil
Variables
# Configuraciones básicas
postgres_listen_addresses: [ '127.0.0.1' ] # Opcional
postgres_log_dir: '/home/postgres-logs' # Opcional
postgres_data_dir: '/home/postgres' # Opcional
postgres_clusters: # Obligatorio
- version: 11 # Obligatorio
name: 'main' # Obligatorio
port: 5432 # Obligatorio
checksums: True # Opcional
fsync_enabled: False # Opcional
archive_enabled: False # Opcional
wal_level: 'logical' # Opcional
max_replication_slots: 10 # Opcional
barman_directory: None # Opcional
# Definir el clúster como un servidor de espera
primary: # Opcional
host: '127.0.1.1' # Obligatorio
port: 5433 # Obligatorio
replication_user: 'replicator' # Obligatorio
replication_password: 'SuperSecret' # Obligatorio
restore_command: None # Opcional
restore_barman_directory: None # Opcional
# Lista de usuarios a crear (opcional)
users:
- username: 'replicator' # Obligatorio
password: 'SuperSecret' # Obligatorio
permissions: 'REPLICATION' # Obligatorio
# Lista de bases de datos a crear (opcional)
databases:
- dbname: my_database # Obligatorio
owner: john # Obligatorio
extensions: # Opcional
- names: [ 'postgis', 'postgis_topology' ]
apt_deps: [ 'postgresql-11-postgis' ]
extra_config: # Opcional
max_connections: 100 # Opcional
shared_preload_libraries: '' # Opcional
max_worker_processes: 8 # Opcional
track_commit_timestamp: off # Opcional
max_standby_archive_delay: 30s # Opcional
max_standby_streaming_delay: 600s # Opcional
# Configuración de Postgres (Opcional)
postgres_log_line_prefix: '%m [%p] base de datos: %d host: %h usuario: %u '
postgres_datestyle: 'iso, dmy'
postgres_locale_formats: fr_FR.UTF-8
postgres_text_search_config: pg_catalog.french
# Configuración pg_hba de Postgres (opcional)
postgres_allowed_hosts:
- user: all
range: 10.0.0.0/24
postgres_replication_hosts:
- user: replicator
range: 10.0.0.0/24
# Configuración relacionada con Ansible
postgres_become_method: su # Opcional
# Conectividad Barman
postgres_barman_server: barman.example.com # Requerido si al menos un servidor tiene archive_enabled habilitado
postgres_barman_rsync_enabled: False # Opcional
postgres_barman_rsync_options: '' # Opcional
postgres_barman_remote_user: barman # Opcional
postgres_barman_path_prefix: '~' # Opcional, requerido si se utiliza rsync
Pruebas
Este proyecto viene con un libro de pruebas test/main.yml
. Utiliza Docker
para provisionar contenedores localmente y configurar un clúster de postgresql de 3 nodos con un servidor barman.
La cobertura de este libro de pruebas probablemente no sea completa, pero al menos está disponible.
Si estás contribuyendo, prueba tus cambios primero en un nuevo libro de pruebas en el directorio test/
dentro de contenedores docker (usando la distribución objetivo) y, si es posible, asegúrate de que tu cambio esté cubierto en las pruebas.
Licencia
Licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Agradecimientos
Creadores:
Mantenedores:
Comentarios, reportes de errores, solicitudes, ...
Son bienvenidos!
Install, configure and manage PostgreSQL clusters
ansible-galaxy install trainline-eu.ansible_postgresql_role