add postgres1c role
This commit is contained in:
10
roles/postgres1c/molecule/default/converge.yml
Normal file
10
roles/postgres1c/molecule/default/converge.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
roles:
|
||||
- role: genlab.common.postgres1c
|
||||
postgres1c_version: 15
|
||||
postgres1c_postgres_pw_path: "secrets/postgresql.yaml"
|
||||
postgres1c_backup_timer: "Sat *-*-* 02:00:00"
|
||||
postgres1c_backup_compression: "5"
|
||||
# backup enabled by default at /var/backups/postgres1c/backup_<db_name>.dump
|
||||
22
roles/postgres1c/molecule/default/molecule.yml
Normal file
22
roles/postgres1c/molecule/default/molecule.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
driver:
|
||||
name: docker
|
||||
platforms:
|
||||
- name: ubuntu
|
||||
image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2204}-ansible:latest
|
||||
pre_build_image: true
|
||||
command: ${MOLECULE_DOCKER_COMMAND:-""}
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||
cgroupns_mode: host
|
||||
privileged: true
|
||||
provisioner:
|
||||
name: ansible
|
||||
verifier:
|
||||
name: ansible
|
||||
lint: |
|
||||
set -e
|
||||
yamllint .
|
||||
ansible-lint .
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
postgres1c_postgres_pw: 12345
|
||||
58
roles/postgres1c/molecule/default/verify.yml
Normal file
58
roles/postgres1c/molecule/default/verify.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
- name: Verify
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: "Include default role vars"
|
||||
ansible.builtin.include_vars:
|
||||
dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults/"
|
||||
extensions: [ 'yml' ]
|
||||
|
||||
- name: "Get 'postgres' user password"
|
||||
tags: [postgres1c]
|
||||
ansible.builtin.include_vars:
|
||||
file: "secrets/postgresql.yaml"
|
||||
|
||||
- name: "Check that PostgreSQL server responds to the 'postgres' user credentials"
|
||||
register: postgres1c__verify_db_version
|
||||
community.postgresql.postgresql_info:
|
||||
login_host: localhost
|
||||
login_user: postgres
|
||||
login_password: "{{ postgres1c_postgres_pw }}"
|
||||
filter: "version"
|
||||
|
||||
- name: "Verify that correct PostgreSQL version is installed"
|
||||
ansible.builtin.assert:
|
||||
that: postgres1c__verify_db_version.version.major == postgres1c_major_ver
|
||||
success_msg: >
|
||||
Detected expected PostgreSQL version
|
||||
'{{ postgres1c__verify_db_version.version.major }}'
|
||||
({{ postgres1c__verify_db_version.version }})"
|
||||
fail_msg: >
|
||||
Expected PostgreSQL version '{{ postgres1c_major_ver }}';
|
||||
Actual '{{ postgres1c__verify_db_version.version.major }}'
|
||||
({{ postgres1c__verify_db_version.version.major }})"
|
||||
|
||||
- name: Start service postgrespro-1c (i.e. do nothing and throw fail if it start)
|
||||
ansible.builtin.service:
|
||||
name: "postgrespro-1c-{{ postgres1c_version }}"
|
||||
state: started
|
||||
register: start_postgrespro1c
|
||||
failed_when: start_postgrespro1c.changed
|
||||
|
||||
- name: Create a new database with name "test"
|
||||
tags: [postgres1c]
|
||||
become: true
|
||||
become_user: postgres
|
||||
community.postgresql.postgresql_db:
|
||||
name: test
|
||||
comment: "test-db"
|
||||
login_unix_socket: "/tmp"
|
||||
|
||||
- name: Test backup without cron
|
||||
tags: [postgres1c]
|
||||
become: true
|
||||
become_user: postgres
|
||||
ansible.builtin.command: /opt/postgres1c_backup/backup.sh
|
||||
args:
|
||||
creates: /var/backups/postgres1c/backup_test.tar
|
||||
Reference in New Issue
Block a user