aboutsummaryrefslogtreecommitdiffstats
path: root/roles/postgresql
diff options
context:
space:
mode:
Diffstat (limited to 'roles/postgresql')
-rw-r--r--roles/postgresql/defaults/main.yml8
-rw-r--r--roles/postgresql/tasks/create_db.yml6
-rw-r--r--roles/postgresql/tasks/create_user.yml6
-rw-r--r--roles/postgresql/tasks/main.yml39
4 files changed, 59 insertions, 0 deletions
diff --git a/roles/postgresql/defaults/main.yml b/roles/postgresql/defaults/main.yml
new file mode 100644
index 0000000..65f47df
--- /dev/null
+++ b/roles/postgresql/defaults/main.yml
@@ -0,0 +1,8 @@
+---
+
+postgresql__dir: /var/postgresql
+postgresql__data_dir: "{{ postgresql__dir }}/data"
+postgresql__user: _postgresql
+postgresql__group: _postgresql
+postgresql__db_user: postgres
+postgresql__port: 5432
diff --git a/roles/postgresql/tasks/create_db.yml b/roles/postgresql/tasks/create_db.yml
new file mode 100644
index 0000000..d2f3676
--- /dev/null
+++ b/roles/postgresql/tasks/create_db.yml
@@ -0,0 +1,6 @@
+---
+
+- name: create database # noqa: no-changed-when
+ ansible.builtin.command: createdb -U postgres -O "{{ postgres_db_user }}" "{{ postgres_db_name }}"
+ register: result
+ failed_when: result.rc != 0 and "already exists" not in result.stderr
diff --git a/roles/postgresql/tasks/create_user.yml b/roles/postgresql/tasks/create_user.yml
new file mode 100644
index 0000000..793676e
--- /dev/null
+++ b/roles/postgresql/tasks/create_user.yml
@@ -0,0 +1,6 @@
+---
+
+- name: create database user # noqa: no-changed-when
+ ansible.builtin.command: createuser -U postgres "{{ postgres_db_user }}"
+ register: result
+ failed_when: result.rc != 0 and "already exists" not in result.stderr
diff --git a/roles/postgresql/tasks/main.yml b/roles/postgresql/tasks/main.yml
new file mode 100644
index 0000000..a59faa2
--- /dev/null
+++ b/roles/postgresql/tasks/main.yml
@@ -0,0 +1,39 @@
+---
+
+- name: install postgresql
+ ansible.builtin.package:
+ name:
+ - postgresql-server
+ - postgresql-contrib
+ state: present
+
+- name: install python libraries for ansible
+ ansible.builtin.package:
+ name: py3-psycopg2
+ state: present
+
+- name: create postgresql data directory
+ ansible.builtin.file:
+ path: "{{ postgresql__data_dir }}"
+ owner: "{{ postgresql__user }}"
+ group: "{{ postgresql__group }}"
+ mode: "0700"
+ state: directory
+
+- name: init postgresql database # noqa: no-changed-when
+ ansible.builtin.command:
+ argv:
+ - initdb
+ - "--pgdata={{ postgresql__data_dir }}"
+ - "--username={{ postgresql__db_user }}"
+ - --encoding=UTF-8
+ - --locale=en_US.UTF-8
+ creates: "{{ postgresql__data_dir }}/PG_VERSION"
+ become: true
+ become_user: "{{ postgresql__user }}"
+
+- name: enable and restart postgresql service
+ ansible.builtin.service:
+ name: postgresql
+ state: restarted
+ enabled: true
remember that computers suck.