You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
- name: Install packages to support postgres
|
|
apt:
|
|
name: [
|
|
'libssl-dev',
|
|
'libpq-dev',
|
|
'libz-dev',
|
|
'libexpat1-dev',
|
|
'postgresql-client',
|
|
'postgresql-contrib',
|
|
'postgresql',
|
|
'python3-psycopg2',
|
|
]
|
|
state: present
|
|
|
|
- name: Start & enable postgres
|
|
service:
|
|
name: postgresql
|
|
state: started
|
|
enabled: true
|
|
|
|
- name: Create database users
|
|
postgresql_user:
|
|
name: "{{ item.value.user }}"
|
|
password: "{{ item.value.pass }}"
|
|
state: present
|
|
become_user: postgres
|
|
become: true
|
|
with_dict: "{{ databases }}"
|
|
|
|
- name: Create databases
|
|
postgresql_db:
|
|
name: "{{ item.value.name }}"
|
|
owner: "{{ item.value.user }}"
|
|
state: present
|
|
become_user: postgres
|
|
become: true
|
|
with_dict: "{{ databases }}"
|
|
|
|
- name: Add auth lines to pgsql hba config
|
|
postgresql_pg_hba:
|
|
dest: /etc/postgresql/13/main/pg_hba.conf
|
|
contype: host
|
|
source: "{{ item }}/32"
|
|
method: md5
|
|
create: true
|
|
with_items: "{{ database.allow_addresses }}"
|
|
notify: Restart postgresql
|
|
|
|
- name: "Bind PSQL to localhost and {{ database.bind }}"
|
|
lineinfile:
|
|
path: /etc/postgresql/13/main/postgresql.conf
|
|
regexp: '^listen_addresses '
|
|
insertafter: '^#listen_addresses'
|
|
line: "listen_addresses = 'localhost,{{ database.bind_address }}'"
|
|
notify: Restart postgresql
|
|
|
|
- name: "Restart PSQL if notified."
|
|
meta: flush_handlers
|
|
|
|
|
|
|