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}}"
27 - name: upgrade cluster
28 command: "pg_upgradecluster --locale='C.UTF8' -v 17 {{postgresql_server_upgrade_from}} main"
30 creates: "/etc/postgresql/17/main/postgresql.conf"
31 when: postgresql_server_upgrade_from != ""
35 command: "pg_createcluster --locale='C.UTF8' 17 main"
37 creates: "/etc/postgresql/17/main/postgresql.conf"
38 when: postgresql_server_upgrade_from == ""
41 - name: copy postgresql.conf
44 dest: "/etc/postgresql/17/main/postgresql.conf"
49 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/postgresql.conf"
50 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/postgresql.conf"
51 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/postgresql.conf"
52 - "default/postgresql.conf"
53 notify: restart postgresql.service
56 - name: copy pg_hba.conf
59 dest: "/etc/postgresql/17/main/pg_hba.conf"
64 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/pg_hba.conf"
65 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/pg_hba.conf"
66 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/pg_hba.conf"
67 - "default/pg_hba.conf"
68 notify: restart postgresql.service
71 - name: create logrotate entry for postgresql
74 dest: "/etc/logrotate.d/postgresql-common"
79 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/postgresql-common.logrotate"
80 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/postgresql-common.logrotate"
81 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/postgresql-common.logrotate"
82 - "default/postgresql-common.logrotate"
85 - name: enable and start postgresql.service
86 include_role: name="base/systemd/enable-and-start"
88 service_name: postgresql.service
91 - name: set superuser password
95 password: "{{postgresql_postgres_pw}}"
97 when: postgresql_postgres_pw != ""
100 - name: ensure group grp_spectator exists and grant necessary privs on db postgres
101 become_user: postgres
103 name: "grp_spectator"
104 role_attr_flags: "NOLOGIN,NOSUPERUSER,INHERIT,NOCREATEDB,NOCREATEROLE,NOREPLICATION"
108 - name: revoke unnecessary privs for PUBLIC on db postgres
109 become_user: postgres
118 - name: grant necessary privs for PUBLIC on db postgres
119 become_user: postgres
122 privs: CONNECT,TEMPORARY
127 - name: revoke ALL privs for PUBLIC on schema "postgres.public"
128 become_user: postgres