1 #####################################
2 ### someone's ansible provisioner ###
3 #####################################
4 # Part of: https://git.somenet.org/root/pub/somesible.git
5 # 2017-2025 by someone <someone@somenet.org>
7 ###########################################################
8 # DO NOT FORGET TO UPDATE POSTGRESQL.CONF - CLUSTER PATHS #
9 ###########################################################
10 # YOU WILL KILL THE LIVE-CLUSTER OTHERWISE! #
11 #############################################
13 - name: install postgresql
17 - postgresql-17-postgis-3
24 ignore_errors: "{{ignore_online_errors | bool}}"
26 # TODO: upgrade or init
28 - name: copy postgresql.conf
31 dest: "/etc/postgresql/17/main/postgresql.conf"
36 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/postgresql.conf"
37 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/postgresql.conf"
38 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/postgresql.conf"
39 - "default/postgresql.conf"
40 notify: restart postgresql.service
43 - name: copy pg_hba.conf
46 dest: "/etc/postgresql/17/main/pg_hba.conf"
51 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/pg_hba.conf"
52 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/pg_hba.conf"
53 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/pg_hba.conf"
54 - "default/pg_hba.conf"
55 notify: restart postgresql.service
58 - name: create logrotate entry for postgresql
61 dest: "/etc/logrotate.d/postgresql-common"
66 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/postgresql-common.logrotate"
67 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/postgresql-common.logrotate"
68 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/postgresql-common.logrotate"
69 - "default/postgresql-common.logrotate"
72 - name: enable and start postgresql.service
73 include_role: name="base/systemd/enable-and-start"
75 service_name: postgresql.service
78 - name: set superuser password
82 password: "{{postgresql_postgres_pw}}"
84 when: postgresql_postgres_pw != ""
87 - name: ensure group grp_spectator exists and grant necessary privs on db postgres
91 role_attr_flags: "NOLOGIN,NOSUPERUSER,INHERIT,NOCREATEDB,NOCREATEROLE,NOREPLICATION"
95 - name: revoke unnecessary privs for PUBLIC on db postgres
105 - name: grant necessary privs for PUBLIC on db postgres
106 become_user: postgres
109 privs: CONNECT,TEMPORARY
114 - name: revoke ALL privs for PUBLIC on schema "postgres.public"
115 become_user: postgres