aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roles/postgres/tasks/main.yml46
-rw-r--r--roles/postgres/vars/main.yml9
2 files changed, 55 insertions, 0 deletions
diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml
index e032ff5..2413b03 100644
--- a/roles/postgres/tasks/main.yml
+++ b/roles/postgres/tasks/main.yml
@@ -4,9 +4,55 @@
---
+- name: ensure postgres is installed for OpenBSD
+ package: name=postgresql-server state=present
+ when: ansible_distribution == "OpenBSD"
+
- name: ensure postgres is installed
package: name=postgresql state=present
ignore_errors: true
+ when: ansible_distribution != "OpenBSD"
+
+- name: ensure postgres group exists
+ group: name="{{ postgres_group }}" state=present
+
+- name: ensure postgres user exists
+ user:
+ name: "{{ postgres_user }}"
+ group: "{{ postgres_group }}"
+ system: true
+ state: present
+
+- name: ensure postgres directory exists
+ file:
+ path: "{{ postgres_dir }}"
+ owner: "{{ postgres_user }}"
+ group: "{{ postgres_group }}"
+ mode: 0760
+ state: directory
+
+- name: delete default data dir if exists
+ file: path=/var/postgresql state=absent
+ when: postgres_dir != "/var/postgresql"
+
+- name: link postgres directory to default one
+ file:
+ src: "{{ postgres_dir }}"
+ dest: "/var/postgresql"
+ owner: "{{ postgres_user }}"
+ group: "{{ postgres_group }}"
+ state: link
+ mode: 0760
+ when: postgres_dir != "/var/postgresql"
+
+- name: init postgres database
+ shell: initdb -D "{{ postgres_dir }}/data/" -U postgres --auth=scram-sha-256 --pwprompt --encoding=UTF-8 --locale=xx_XX.UTF-8
+ args:
+ chdir: "{{ postgres_dir }}"
+ become: true
+ become_user: "{{ postgres_user }}"
+ register: result
+ failed_when: result.rc != 0 and "exists but is not empty" not in result.stderr
- name: enable and restart postgres service
service:
diff --git a/roles/postgres/vars/main.yml b/roles/postgres/vars/main.yml
new file mode 100644
index 0000000..0e0030b
--- /dev/null
+++ b/roles/postgres/vars/main.yml
@@ -0,0 +1,9 @@
+
+# postgres ~~ roles/postgres/tasks/main.yml
+# postgres variables
+
+---
+
+postgres_dir: /var/postgres
+postgres_user: _postgresql
+postgres_group: _postgresql
remember that computers suck.