roles/postgresql-server: Deploy PostgreSQL
The *postgresql-server* role installs and configures PostgreSQL on Fedora/RHEL-based distributions.jenkins-master
parent
f89b279d3a
commit
afe4fb7eff
|
@ -0,0 +1,3 @@
|
||||||
|
pgdata_dir: /var/lib/pgsql/data
|
||||||
|
pg_locale: en_US.UTF-8
|
||||||
|
pg_ident: []
|
|
@ -0,0 +1,6 @@
|
||||||
|
- name: reload systemd
|
||||||
|
command: systemctl daemon-reload
|
||||||
|
- name: reload postgresql server
|
||||||
|
service:
|
||||||
|
name=postgresql
|
||||||
|
state=reloaded
|
|
@ -0,0 +1,53 @@
|
||||||
|
- name: ensure postgresql-server is installed
|
||||||
|
package:
|
||||||
|
name=postgresql-server
|
||||||
|
state=present
|
||||||
|
tags:
|
||||||
|
- install
|
||||||
|
|
||||||
|
- name: ensure postgresql-setup unit is installed
|
||||||
|
template:
|
||||||
|
src=postgresql-setup.service.j2
|
||||||
|
dest=/etc/systemd/system/postgresql-setup.service
|
||||||
|
mode=0644
|
||||||
|
notify: reload systemd
|
||||||
|
- meta: flush_handlers
|
||||||
|
- name: ensure postgresql-setup has started
|
||||||
|
service:
|
||||||
|
name=postgresql-setup
|
||||||
|
state=started
|
||||||
|
|
||||||
|
- name: ensure postgresql identity mapping is configured
|
||||||
|
template:
|
||||||
|
src=pg_ident.conf.j2
|
||||||
|
dest={{ pgdata_dir }}/pg_ident.conf
|
||||||
|
owner=postgres
|
||||||
|
group=postgres
|
||||||
|
mode=0600
|
||||||
|
setype=postgresql_db_t
|
||||||
|
- name: ensure postgresql host-based authentication is configured
|
||||||
|
template:
|
||||||
|
src=pg_hba.conf.j2
|
||||||
|
dest={{ pgdata_dir }}/pg_hba.conf
|
||||||
|
owner=postgres
|
||||||
|
group=postgres
|
||||||
|
mode=0600
|
||||||
|
setype=postgresql_db_t
|
||||||
|
notify: reload postgresql server
|
||||||
|
|
||||||
|
- name: ensure postgresql-check-db-dir is labelled correctly
|
||||||
|
file:
|
||||||
|
path=/usr/bin/postgresql-check-db-dir
|
||||||
|
setype=postgresql_exec_t
|
||||||
|
state=file
|
||||||
|
when: ansible_distribution in ('CentOS', 'RHEL')
|
||||||
|
|
||||||
|
- name: ensure postgresql starts at boot
|
||||||
|
service:
|
||||||
|
name=postgresql
|
||||||
|
enabled=yes
|
||||||
|
- meta: flush_handlers
|
||||||
|
- name: ensure postgresql server is running
|
||||||
|
service:
|
||||||
|
name=postgresql
|
||||||
|
state=started
|
|
@ -0,0 +1,7 @@
|
||||||
|
{#- vim: set ft=jinja : -#}
|
||||||
|
# TYPE DATABASE USER ADDRESS METHOD
|
||||||
|
{% for auth in pg_hba_extra|d({}) %}
|
||||||
|
{{ '{type: <9} {database: <15} {user: <15} {address: <23} {method}'.format(**auth) }}
|
||||||
|
{% endfor %}
|
||||||
|
local all postgres peer
|
||||||
|
local sameuser all peer
|
|
@ -0,0 +1,3 @@
|
||||||
|
{% for item in pg_ident %}
|
||||||
|
{{ item.mapname }} {{ item.system_user }} {{ item.pg_user }}
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Before=postgresql.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=true
|
||||||
|
Environment=PGDATA={{ pgdata_dir }}
|
||||||
|
Environment=LANG={{ pg_locale }}
|
||||||
|
User=postgres
|
||||||
|
Group=postgres
|
||||||
|
ExecStart=/bin/sh -c "[ -f ${PGDATA}/PG_VERSION ] || initdb -D ${PGDATA}"
|
Loading…
Reference in New Issue