mahdi22.postgresql
Rol de Ansible postgresql
Un rol de Ansible para instalar PostgreSQL en Linux para distribuciones RHEL/CentOS, Debian, Ubuntu y SUSE SLES. Específicamente, las responsabilidades de este rol son:
- Instalar PostgreSQL
 - Configurar parámetros y autenticaciones de PostgreSQL
 - Crear usuarios
 - Crear bases de datos
 
Instalación
$ ansible-galaxy install mahdi22.postgresql
Variables del Rol
variable/main.yml Establecer parámetros de configuración de PostgreSQL o usar valores predeterminados
postgresql_config:
  - option: port
    value: 5432
  - option: log_destination
    value: syslog
  - option: log_directory
    value: /var/log/postgresql/
Establecer o modificar parámetros de autenticación de PostgreSQL o usar valores predeterminados
postgresql_authentication:
  - {type: local, database: all, user: postgres, auth_method: peer}
  - {type: local, database: all, user: all, auth_method: md5}
  - {type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5}
  - {type: host, database: all, user: all, address: '::1/128', auth_method: md5}
  - {type: local, database: replication, user: all, auth_method: peer}
  - {type: host, database: replication, user: all, address: '127.0.0.1/32', auth_method: md5}
  - {type: host, database: replication, user: all, address: '::1/128', auth_method: md5}
Establecer bases de datos y usuarios de PostgreSQL para crear. Si no se establece create_users: no y create_databases: no en default/main.yml.
Ejemplo de creación de múltiples bases de datos y usuarios:
postgresql_databases_users: []
#postgresql_databases_users:
#  - {database: test, user: user1, userpassword: user1pass, priv: ALL}  #agregar base de datos 'test' y usuario 'user1' con contraseña 'user1pass' con privilegios 'ALL'
#  - {database: test1, user:'', userpassword: '', priv: ''}             #agregar solo la base de datos 'test1'
#  - {database: '', user: user2, userpassword: user2pass, priv: ''}    #agregar solo el usuario 'user2' con contraseña 'user2pass'
- Para crear solo la base de datos sin usuario establecer 
database: databasename,user:'' - Para crear solo el usuario establecer 
database: '',user: username,userpassword: password - Para crear una base de datos con privilegios de usuario establecer 
database: databasename,user: username,userpassword: password,priv: privileges 
Configuración básica
| Variable | Predeterminado | Comentarios | 
|---|---|---|
use_proxy | 
'False' | Si los hosts gestionados están detrás de un proxy web, establecer use_proxy: True | 
http_proxy | 
'http://proxy.lab.local:8080/' | Establecer servidor y puerto del proxy, reemplazar proxy.lab.local:8080 | 
https_proxy | 
'http://proxy.lab.local:8080/' | Establecer servidor y puerto del proxy, reemplazar proxy.lab.local:8080 | 
postgresql_version | 
Versión de PostgreSQL que se instalará | |
listen_addresses_host_ip | 
yes | sí para activar la escucha de PostgreSQL en la interfaz de red IP | 
create_users | 
yes | crear usuarios de PostgreSQL configurados en los archivos de variables | 
create_databases | 
yes | crear bases de datos de PostgreSQL configuradas en los archivos de variables | 
Comentarios
(1) Si los hosts gestionados están detrás de un proxy web, establecer las siguientes variables en el archivo defaults/main.yml:
use_proxy: False
proxy_env:
  http_proxy: http://proxy.local:8080/
  https_proxy: http://proxy.local:8080/
Ejemplo de Playbook
- hosts: dbservers
  roles:
    - role: mahdi22.postgresql
      become: yes
Pruebas
Este rol se ha probado en estas distribuciones de Linux:
- RHEL/CentOS 8 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - RHEL/CentOS 7 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - Debian 10 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - Debian 9 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - Ubuntu 20.04 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - Ubuntu 18.04 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - Ubuntu 16.04 versión de PostgreSQL (9.5, 9.4, 10, 11, 12, 13)
 - Suse SLES 12 versión de PostgreSQL (9.5, 9.4, 10, 11, 12)
 - Suse SLES 15 versión de PostgreSQL (11, 12, 13)
 
Install and configure Postgresql server on Rhel/CentOS, Debian, Ubuntu and SUSE SLES ditributions
ansible-galaxy install mahdi22.postgresql