100 lines
2.4 KiB
YAML
100 lines
2.4 KiB
YAML
---
|
|
- name: Vérification de la présence des paramètres d'entrées dans les variables
|
|
ansible.builtin.fail:
|
|
msg: |
|
|
La variable {{ item }} est obligatoire pour utiliser le role.
|
|
Veuillez la renseigner dans le dossier host_vars.
|
|
when:
|
|
- item is not defined
|
|
loop:
|
|
- db_user
|
|
- db_password
|
|
- db_name
|
|
|
|
- name: Apt Update and Install Postgres
|
|
ansible.builtin.apt:
|
|
update_cache: true
|
|
name:
|
|
- postgresql
|
|
- acl
|
|
- python3-psycopg2
|
|
state: present
|
|
when: ansible_pkg_mgr == "apt"
|
|
|
|
- name: Yum Update and Install Postgres
|
|
ansible.builtin.yum:
|
|
update_cache: true
|
|
name:
|
|
- postgresql
|
|
- postgresql-server
|
|
- postgresql-contrib
|
|
- acl
|
|
- python3-psycopg2
|
|
state: present
|
|
when: ansible_pkg_mgr == "yum"
|
|
|
|
- name: Dnf Update and Install Postgres
|
|
ansible.builtin.dnf:
|
|
update_cache: true
|
|
name:
|
|
- postgresql
|
|
- postgresql-server
|
|
- postgresql-contrib
|
|
- acl
|
|
- python3-psycopg2
|
|
state: present
|
|
when: ansible_pkg_mgr == "dnf"
|
|
|
|
- name: Yum/Dnf management
|
|
when: ansible_pkg_mgr == "dnf" or ansible_pkg_mgr == "yum"
|
|
block:
|
|
- name: Find out if PostgreSQL is initialized
|
|
ansible.builtin.stat:
|
|
path: "/var/lib/pgsql/data/pg_hba.conf"
|
|
register: postgres_data
|
|
|
|
- name: Init database only for Yum/Dnf OS
|
|
ansible.builtin.command: /usr/bin/postgresql-setup --initdb
|
|
when: not postgres_data.stat.exists
|
|
|
|
- name: Start and enable services
|
|
ansible.builtin.service:
|
|
name: postgresql
|
|
state: started
|
|
enabled: true
|
|
|
|
- name: Create db user
|
|
community.postgresql.postgresql_user:
|
|
state: present
|
|
name: "{{ db_user }}"
|
|
password: "{{ db_password }}"
|
|
role_attr_flags: CREATEDB
|
|
become: true
|
|
become_user: postgres
|
|
|
|
- name: Allow md5 connection for the db user
|
|
community.postgresql.postgresql_pg_hba:
|
|
dest: "/etc/postgresql/12/main/pg_hba.conf"
|
|
contype: host
|
|
databases: all
|
|
method: md5
|
|
users: "{{ db_user }}"
|
|
create: true
|
|
become: true
|
|
become_user: postgres
|
|
notify: Restart postgres
|
|
when: ansible_pkg_mgr == "apt"
|
|
|
|
- name: Allow md5 connection for the db user
|
|
community.postgresql.postgresql_pg_hba:
|
|
dest: "~/data/pg_hba.conf"
|
|
contype: host
|
|
databases: all
|
|
method: md5
|
|
users: "{{ db_user }}"
|
|
create: true
|
|
become: true
|
|
become_user: postgres
|
|
notify: Restart postgres
|
|
when: ansible_pkg_mgr == "dnf" or ansible_pkg_mgr == "yum"
|