- name: Install 'postgresql' package package: name: postgresql state: present - name: Install 'postgresql-client' package (debuntu) package: name: postgresql-client state: present when: is_debuntu - name: Install 'postgresql-server' package (OS's other than debuntu) package: name: postgresql-server state: present when: not is_debuntu - name: Install /etc/systemd/system/postgresql-iiab.service from template template: src: postgresql-iiab.service dest: /etc/systemd/system/postgresql-iiab.service # owner: root # group: root # mode: '0644' - name: Create PostgreSQL data dir /library/pgsql-iiab, owned by postgres:postgres file: path: /library/pgsql-iiab owner: postgres group: postgres mode: '0700' state: directory - name: Make sure locale {{ postgresql_locale }} is enabled (debuntu) # en_US.UTF-8 lineinfile: dest: /etc/locale.gen line: "{{ postgresql_locale }} UTF-8" when: is_debuntu - name: Generate locales (debuntu) command: /usr/sbin/locale-gen when: is_debuntu - name: Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf (debuntu) #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 when: is_debuntu - 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 - name: Install /library/pgsql-iiab/postgresql.conf owned by postgres:postgres, from template template: backup: yes src: postgresql.conf.j2 dest: /library/pgsql-iiab/postgresql.conf owner: postgres group: postgres mode: '0640' - name: Disable & Stop stock 'postgresql' (parent) systemd service systemd: name: postgresql state: stopped enabled: no # 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 # RECORD PostgreSQL AS INSTALLED - 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'