parent
bf8c72b85c
commit
b507b53121
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
gather_facts: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setup and configure PostgreSQL server
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: postgresql_server
|
||||||
|
rolespec_validate: true
|
||||||
|
|
||||||
|
- name: Test koji_db_server role
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: msvsphere.ci.koji_db_server
|
||||||
|
rolespec_validate: true
|
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: vagrant
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: msvsphere-9
|
||||||
|
box: msvsphere/9
|
||||||
|
memory: 1024
|
||||||
|
cpus: 1
|
||||||
|
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
inventory:
|
||||||
|
group_vars:
|
||||||
|
all:
|
||||||
|
koji_db_server_password: 'MsVsPhErE-32167'
|
||||||
|
koji_db_server_ip: '127.0.0.1'
|
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Check Koji database connection
|
||||||
|
ansible.builtin.command:
|
||||||
|
argv:
|
||||||
|
- psql
|
||||||
|
- -t
|
||||||
|
- --csv
|
||||||
|
- -c
|
||||||
|
- "SELECT 'exists' FROM pg_database WHERE datname='koji'"
|
||||||
|
- "postgresql://koji:{{ koji_db_server_password }}@127.0.0.1:5432/koji"
|
||||||
|
register: psql_cmd
|
||||||
|
|
||||||
|
- name: Verify Koji database connection status
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that: |
|
||||||
|
psql_cmd.rc == 0 and psql_cmd.stdout == 'exists'
|
@ -0,0 +1,32 @@
|
|||||||
|
# msvsphere.ci.koji_db_server
|
||||||
|
|
||||||
|
An Ansible role that configures a PostgreSQL server for Koji.
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
| Variable | Default value | Type | Description | Required |
|
||||||
|
| -------- | ------------- | ---- | ----------- | -------- |
|
||||||
|
| koji_db_server_db_name | "koji" | string | Koji database name. | no |
|
||||||
|
| koji_db_server_user | "koji" | string | Koji database user name. | no |
|
||||||
|
| koji_db_server_password | | string | Koji database user password. | yes |
|
||||||
|
| koji_db_server_ip | | string | Koji (koji-hub/koji-web) server IP address. | yes |
|
||||||
|
| koji_db_server_password_encryption | "scram-sha-256" | string | Password encryption algorithm. | no |
|
||||||
|
|
||||||
|
## Example playbook
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- role: msvsphere.ci.koji_db_server
|
||||||
|
koji_db_server_password: 'PASSWORD'
|
||||||
|
koji_db_server_ip: '127.0.0.1'
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT.
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
* [Eugene Zamriy](mailto:ezamriy@msvsphere-os.ru)
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
koji_db_server_db_name: 'koji'
|
||||||
|
koji_db_server_user: 'koji'
|
||||||
|
koji_db_server_password:
|
||||||
|
koji_db_server_ip:
|
||||||
|
koji_db_server_password_encryption: 'scram-sha-256'
|
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
argument_specs:
|
||||||
|
main:
|
||||||
|
short_description: A role that configures a PostgreSQL server for Koji.
|
||||||
|
author: Eugene Zamriy
|
||||||
|
version_added: '0.1.3'
|
||||||
|
options:
|
||||||
|
koji_db_server_db_name:
|
||||||
|
description: Koji database name.
|
||||||
|
default: 'koji'
|
||||||
|
type: 'str'
|
||||||
|
required: false
|
||||||
|
|
||||||
|
koji_db_server_user:
|
||||||
|
description: Koji database user name.
|
||||||
|
default: 'koji'
|
||||||
|
type: 'str'
|
||||||
|
required: false
|
||||||
|
|
||||||
|
koji_db_server_password:
|
||||||
|
description: Koji database user password.
|
||||||
|
type: 'str'
|
||||||
|
required: true
|
||||||
|
|
||||||
|
koji_db_server_ip:
|
||||||
|
description: Koji (koji-hub/koji-web) server IP address.
|
||||||
|
type: 'str'
|
||||||
|
required: true
|
||||||
|
|
||||||
|
koji_db_server_password_encryption:
|
||||||
|
description: Password encryption algorithm.
|
||||||
|
default: 'scram-sha-256'
|
||||||
|
type: 'str'
|
||||||
|
required: false
|
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: Eugene Zamriy
|
||||||
|
description: A role that configures a PostgreSQL server for Koji.
|
||||||
|
company: Softline PJSC
|
||||||
|
license: MIT
|
||||||
|
min_ansible_version: 2.13
|
||||||
|
platforms:
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- "9"
|
||||||
|
galaxy_tags:
|
||||||
|
- postgresql
|
||||||
|
- koji
|
||||||
|
|
||||||
|
dependencies: []
|
@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
- name: Check if required variables are defined
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: "{{ item }} is not defined or empty"
|
||||||
|
when: |
|
||||||
|
(vars[item] is undefined)
|
||||||
|
or (vars[item] is none)
|
||||||
|
or (vars[item] | trim | length == 0)
|
||||||
|
with_items:
|
||||||
|
- koji_db_server_db_name
|
||||||
|
- koji_db_server_user
|
||||||
|
- koji_db_server_password
|
||||||
|
- koji_db_server_ip
|
||||||
|
- koji_db_server_password_encryption
|
||||||
|
|
||||||
|
# Required for community.postgresql.postgresql_db module
|
||||||
|
- name: Install dependencies
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: python3-psycopg2
|
||||||
|
state: installed
|
||||||
|
|
||||||
|
- name: Create Koji database
|
||||||
|
community.postgresql.postgresql_db:
|
||||||
|
name: "{{ koji_db_server_db_name }}"
|
||||||
|
become: true
|
||||||
|
become_user: postgres
|
||||||
|
|
||||||
|
- name: Create Koji database user
|
||||||
|
community.postgresql.postgresql_user:
|
||||||
|
db: "{{ koji_db_server_db_name }}"
|
||||||
|
name: "{{ koji_db_server_user }}"
|
||||||
|
password: "{{ koji_db_server_password }}"
|
||||||
|
environment:
|
||||||
|
PGOPTIONS: "-c password_encryption={{ koji_db_server_password_encryption }}"
|
||||||
|
become: true
|
||||||
|
become_user: postgres
|
||||||
|
|
||||||
|
- name: Allow requests from Koji server
|
||||||
|
community.postgresql.postgresql_pg_hba:
|
||||||
|
dest: /var/lib/pgsql/data/pg_hba.conf
|
||||||
|
contype: host
|
||||||
|
databases: "{{ koji_db_server_db_name }}"
|
||||||
|
users: "{{ koji_db_server_user }}"
|
||||||
|
address: "{{ koji_db_server_ip }}/32"
|
||||||
|
method: "{{ koji_db_server_password_encryption }}"
|
||||||
|
notify: restart postgresql
|
Loading…
Reference in new issue