diff options
Diffstat (limited to 'roles/postgres/tasks/main.yml')
-rw-r--r-- | roles/postgres/tasks/main.yml | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml new file mode 100644 index 0000000..d8fe000 --- /dev/null +++ b/roles/postgres/tasks/main.yml @@ -0,0 +1,52 @@ +- name: install postgres + package: + name: + - postgresql-server + - postgresql-contrib + state: present + +- name: create postgres directories + file: + path: "{{ postgres_dir }}/{{ item }}" + owner: "{{ postgres_user }}" + group: "{{ postgres_group }}" + mode: 0750 + state: directory + loop: + - "" + - "data" + +- name: delete default data dir if exists + file: + path: "{{ postgres_default_dir }}" + state: absent + when: postgres_dir != "/var/postgresql" + +- name: link postgres directory to default one + file: + src: "{{ postgres_dir }}" + dest: "{{ postgres_default_dir }}" + owner: "{{ postgres_user }}" + group: "{{ postgres_group }}" + state: link + mode: 0750 + follow: false + when: postgres_dir != "/var/postgresql" + + # NOTE: this tasks needs `pipelining` set to `false` to work correctly +- name: init postgres database + command: + cmd: initdb -D "{{ postgres_dir }}/data/" -U "{{ postgres_db_user }}" --encoding=UTF-8 --locale=en_US.UTF-8 + chdir: "{{ postgres_dir }}" + register: result + become: true + become_user: "{{ postgres_user }}" + failed_when: + - result.rc != 0 + - "'exists but is not empty' not in result.stderr" + +- name: enable and restart postgres service + service: + name: postgresql + state: restarted + enabled: true |