aboutsummaryrefslogtreecommitdiffstats
path: root/roles/postgresql/tasks
diff options
context:
space:
mode:
authorRomain Gonçalves <me@rgoncalves.se>2024-02-13 23:09:02 +0100
committerRomain Gonçalves <me@rgoncalves.se>2024-02-13 23:16:09 +0100
commit479efa19547bf710e0113b08bc6165b66d1b7980 (patch)
tree4f4bb17bdcca43ec7fd14ccf0b07dc316dc29541 /roles/postgresql/tasks
parent075faa3ab59f2e5569cbd7c947251135e378e211 (diff)
downloadrules-479efa19547bf710e0113b08bc6165b66d1b7980.tar.gz
feat(roles/postgresql): simplify postgresql init
Diffstat (limited to 'roles/postgresql/tasks')
-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
3 files changed, 51 insertions, 0 deletions
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.