blob: 81d357aa8aacf4b8c74c480260c433946a67a6b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
- import_role:
name: jail
tasks_from: jail_setup
- name: Check if database is initialized
stat:
path: /var/db/postgres/data18/PG_VERSION
register: _pg_data
- name: Set postgres data directory ownership
file:
path: /var/db/postgres
state: directory
owner: postgres
group: postgres
mode: "0755"
when: not _pg_data.stat.exists
- name: Initialize database
shell: /usr/local/etc/rc.d/postgresql initdb
when: not _pg_data.stat.exists
- name: Allow LAN connections in pg_hba.conf
lineinfile:
path: /var/db/postgres/data18/pg_hba.conf
line: "host all all {{ jail_lan_cidr }} scram-sha-256"
regexp: "^host.*all.*all.*scram-sha-256"
notify: Reload postgresql
- name: Listen on all interfaces
lineinfile:
path: /var/db/postgres/data18/postgresql.conf
line: "listen_addresses = '*'"
regexp: "^listen_addresses"
notify: Reload postgresql
- name: Start postgres
service:
name: postgresql
state: started
- name: Flush handlers
meta: flush_handlers
- import_role:
name: jail
tasks_from: jail_launch
- name: Create database users
shell: "su -l postgres -c \"psql -tc \\\"SELECT 1 FROM pg_roles WHERE rolname='{{ item }}'\\\"\" | grep -q 1 || su -l postgres -c \"psql -c \\\"CREATE ROLE {{ item }} LOGIN PASSWORD '{{ pg_user_passwords[item] }}'\\\"\""
loop: "{{ pg_users }}"
register: _pg_user
changed_when: "'CREATE ROLE' in _pg_user.stdout"
no_log: true
- name: Create databases
shell: "su -l postgres -c \"psql -tc \\\"SELECT 1 FROM pg_database WHERE datname='{{ item.name }}'\\\"\" | grep -q 1 || su -l postgres -c \"createdb -O {{ item.owner }} {{ item.name }}\""
loop: "{{ pg_databases }}"
register: _pg_db
changed_when: "'CREATE DATABASE' in _pg_db.stdout"
|