2023-06-10 13:10:47 +00:00
- name : Record (initial) disk space used
shell : df -B1 --output=used / | tail -1
2023-05-27 07:26:04 +00:00
register : df1
2022-12-22 05:50:07 +00:00
- name: 'Install packages : postgresql, postgresql-client, python3-psycopg2'
2020-02-04 20:03:59 +00:00
package :
2021-07-27 18:00:37 +00:00
name :
- postgresql
- postgresql-client
2021-07-29 16:34:32 +00:00
- python3-psycopg2 # For Ansible modules {postgresql_db, postgresql_user} in Ansible collection community.postgresql -- used in moodle/tasks/install.yml
2020-02-04 20:03:59 +00:00
state : present
2022-12-21 19:07:10 +00:00
- name : Run shell command "pg_config --version" to extract MAJOR version number -- strip off MINOR/PATCH version number(s)
2022-12-21 19:18:27 +00:00
shell : pg_config --version | sed 's/^[^0-9]*//; s/[^0-9].*//'
2022-12-21 18:34:30 +00:00
register : pg_config_version
- name : 'Dynamically set Ansible var "postgresql_version: {{ pg_config_version.stdout }}"'
set_fact :
postgresql_version : "{{ pg_config_version.stdout }}"
2021-07-27 18:00:37 +00:00
- name : Install /etc/systemd/system/postgresql-iiab.service from template (0644 by default)
2020-02-04 20:03:59 +00:00
template :
src : postgresql-iiab.service
dest : /etc/systemd/system/postgresql-iiab.service
2021-07-27 18:00:37 +00:00
- name : Create PostgreSQL data dir /library/pgsql-iiab, owned by postgres:postgres (0700)
2020-02-04 20:03:59 +00:00
file :
2021-07-27 18:00:37 +00:00
state : directory
2020-02-04 20:03:59 +00:00
path : /library/pgsql-iiab
owner : postgres
group : postgres
2021-07-27 18:00:37 +00:00
mode : 0700
2020-02-04 20:03:59 +00:00
2021-07-27 18:00:37 +00:00
- name : Make sure locale {{ postgresql_locale }} is enabled # en_US.UTF-8
2020-02-04 20:03:59 +00:00
lineinfile :
dest : /etc/locale.gen
line : "{{ postgresql_locale }} UTF-8"
2021-07-27 18:00:37 +00:00
- name : Generate locales
2020-02-04 20:03:59 +00:00
command : /usr/sbin/locale-gen
2021-07-27 18:00:37 +00:00
- name : Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf
2020-02-04 20:03:59 +00:00
#command: su - postgres -c "/usr/lib/postgresql/{{ postgresql_version }}/bin/initdb -E 'UTF-8' --locale={{ postgresql_locale }} -D /library/pgsql-iiab"
command : /usr/lib/postgresql/{{ postgresql_version }}/bin/initdb -E 'UTF-8' --locale={{ postgresql_locale }} -D /library/pgsql-iiab
args :
creates : /library/pgsql-iiab/pg_hba.conf
become : yes
become_user : postgres
2021-07-27 18:00:37 +00:00
# - name: Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf (OS's other than debuntu)
# #command: su - postgres -c "/usr/bin/initdb -E 'UTF-8' --lc-collate={{ postgresql_locale }} --lc-ctype={{ postgresql_locale }} -D /library/pgsql-iiab"
# command: /usr/bin/initdb -E 'UTF-8' --lc-collate={{ postgresql_locale }} --lc-ctype={{ postgresql_locale }} -D /library/pgsql-iiab
# args:
# creates: /library/pgsql-iiab/pg_hba.conf
# become: yes
# become_user: postgres
# when: not is_debuntu
2020-02-04 20:03:59 +00:00
2021-07-27 18:00:37 +00:00
- name : Install /library/pgsql-iiab/postgresql.conf from template (postgres:postgres, 0640)
2020-02-04 20:03:59 +00:00
template :
backup : yes
src : postgresql.conf.j2
dest : /library/pgsql-iiab/postgresql.conf
owner : postgres
group : postgres
2021-07-27 18:00:37 +00:00
mode : 0640
2020-02-04 20:03:59 +00:00
2020-10-28 20:54:51 +00:00
- name : Disable & Stop stock 'postgresql' (parent) systemd service
2020-02-04 20:03:59 +00:00
systemd :
name : postgresql
state : stopped
enabled : no
2020-10-28 20:54:51 +00:00
# Above parent service postgresql.service uses template postgresql@.service to
# start/stop` child service e.g. postgresql@11-main.service on Debian 10, or
# postgresql@13-main.service on Debian 11. So these 2 stanzas dont do anything:
# 'systemctl is-enabled postgresql@' shows 'indirect' before + after
#- name: Disable stock 'postgresql@' (template) if real Debian
# systemd:
# name: postgresql@
# #state: stopped # Error if you attempt to stop template
# enabled: no # Doesn't do anything
# when: is_debian and not is_raspbian
# 'systemctl is-enabled postgresql@13-main.service' shows 'enabled-runtime' before + after
#- name: Disable & Stop stock 'postgresql@{{ postgresql_version }}-main.service' (child service) if real Debian
# systemd:
# name: "postgresql@{{ postgresql_version }}-main.service"
# state: stopped # Already done by parent above
# enabled: no # Doesn't do anything
# when: is_debian and not is_raspbian
2020-08-28 00:11:24 +00:00
2020-02-04 20:03:59 +00:00
# RECORD PostgreSQL AS INSTALLED
2023-06-10 13:10:47 +00:00
- name : Record (final) disk space used
shell : df -B1 --output=used / | tail -1
2023-05-27 07:26:04 +00:00
register : df2
2023-06-10 13:10:47 +00:00
- name : Add 'postgresql_disk_usage = {{ df2.stdout|int - df1.stdout|int }}' to {{ iiab_ini_file }}
2023-05-27 07:26:04 +00:00
ini_file :
path : "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section : postgresql
option : postgresql_disk_usage
2023-06-10 13:10:47 +00:00
value : "{{ df2.stdout|int - df1.stdout|int }}"
2023-05-27 07:26:04 +00:00
2020-02-04 20:03:59 +00:00
- name : "Set 'postgresql_installed: True'"
set_fact :
postgresql_installed : True
- name : "Add 'postgresql_installed: True' to {{ iiab_state_file }}"
lineinfile :
path : "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp : '^postgresql_installed'
line: 'postgresql_installed : True '