first version of ansible role for postgresql
This commit is contained in:
parent
35b54737ce
commit
7aaab1e4b0
12
README.md
12
README.md
@ -1,2 +1,12 @@
|
||||
# ansible-role-postgresql
|
||||
# Ansible Role PostgreSQL
|
||||
|
||||
Ansible Role to install postgresql and create database with user
|
||||
|
||||
Can be used to be included inside other roles to create databases.
|
||||
|
||||
Variables:
|
||||
* postgresql_database -> Name of the database
|
||||
* postgresql_password -> Name of the database
|
||||
* postgresql_username -> Name of the database user
|
||||
|
||||
Variables have no defaults (imagine a default pw which would be everywhere!!!) and role will not do anything if not all variables given
|
42
tasks/main.yaml
Normal file
42
tasks/main.yaml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
- name: Display Message when variables not defined
|
||||
debug:
|
||||
msg: "Please define postgresql_database, postgresql_username AND postgresql_password and none of them empty"
|
||||
when: postgresql_database is not defined or postgresql_database == "" or postgresql_username is not defined or postgresql_username == "" or postgresql_password is not defined or postgresql_password == ""
|
||||
|
||||
- name: Check for variables
|
||||
ansible.builtin.command: /bin/false
|
||||
when: postgresql_database is not defined or postgresql_database == "" or postgresql_username is not defined or postgresql_username == "" or postgresql_password is not defined or postgresql_password == ""
|
||||
|
||||
- name: Install postgresql and ansible-dependencies
|
||||
apt:
|
||||
name:
|
||||
- postgresql
|
||||
- python3-psycopg2
|
||||
update_cache: yes
|
||||
|
||||
- name: Create database
|
||||
community.postgresql.postgresql_db:
|
||||
name: "{{ postgresql_database }}"
|
||||
encoding: UTF-8
|
||||
lc_collate: C
|
||||
lc_ctype: C
|
||||
template: template0
|
||||
become_user: postgres
|
||||
|
||||
- name: create database user
|
||||
community.postgresql.postgresql_user:
|
||||
db: "{{ postgresql_database }}"
|
||||
name: "{{ postgresql_username }}"
|
||||
password: "{{ postgresql_password }}"
|
||||
expires: infinity
|
||||
become_user: postgres
|
||||
|
||||
- name: Grant all privs to user to database
|
||||
community.postgresql.postgresql_privs:
|
||||
db: "{{ postgresql_database }}"
|
||||
privs: ALL
|
||||
type: database
|
||||
obj: "{{ postgresql_database }}"
|
||||
role: "{{ postgresql_username }}"
|
||||
become_user: postgres
|
Loading…
Reference in New Issue
Block a user