# TO DO: # - Validate input vars postgresql_install & postgresql_enabled # - Put ~13 stanzas just below into install.yml # - Triggered by... 'when: postgresql_installed is undefined' - name: Install 'postgresql' package package: name: postgresql state: present - name: Install 'postgresql-client' package (debuntu) package: name: postgresql-client state: present when: is_debuntu | bool - 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 | bool - name: Generate locales (debuntu) command: /usr/sbin/locale-gen when: is_debuntu | bool - 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 | bool - 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' # Likely No Longer Nec! Given stanza below does the same... #- name: 'Stop postgresql service: /etc/init.d/postgresql stop (debuntu)' # command: "/etc/init.d/postgresql stop" # ignore_errors: True # when: postgresql_install and is_debuntu - name: Disable & Stop stock 'postgresql' systemd service systemd: name: postgresql state: stopped enabled: no # RECORD PostgreSQL AS INSTALLED - name: "Set 'postgresql_installed: True'" set_fact: postgresql_installed: True - name: "Add 'postgresql_installed: True' to {{ iiab_state_file }}" lineinfile: dest: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^postgresql_installed' line: 'postgresql_installed: True' - name: Enable & Start 'postgresql-iiab' systemd service, if 'postgresql_enabled' systemd: name: postgresql-iiab state: started enabled: yes when: postgresql_enabled | bool - name: Disable 'postgresql-iiab' systemd service, if not 'postgresql_enabled' systemd: name: postgresql-iiab state: stopped enabled: no when: not postgresql_enabled - name: Add 'postgresql' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" section: postgresql option: "{{ item.option }}" value: "{{ item.value | string }}" with_items: - option: name value: PostgreSQL - option: description value: '"PostgreSQL is a powerful, open source object-relational database system."' - option: install value: "{{ postgresql_install }}" - option: enabled value: "{{ postgresql_enabled }}"