From 479efa19547bf710e0113b08bc6165b66d1b7980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Gon=C3=A7alves?= Date: Tue, 13 Feb 2024 23:09:02 +0100 Subject: feat(roles/postgresql): simplify postgresql init --- roles/postgresql/defaults/main.yml | 8 +++++++ roles/postgresql/tasks/create_db.yml | 6 ++++++ roles/postgresql/tasks/create_user.yml | 6 ++++++ roles/postgresql/tasks/main.yml | 39 ++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 roles/postgresql/defaults/main.yml create mode 100644 roles/postgresql/tasks/create_db.yml create mode 100644 roles/postgresql/tasks/create_user.yml create mode 100644 roles/postgresql/tasks/main.yml (limited to 'roles/postgresql') 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 -- cgit v1.2.3