From f1b4c528678e60aa222dbca6e21d00ec598e32da Mon Sep 17 00:00:00 2001 From: Austin Macdonald Date: Wed, 13 Mar 2019 15:12:17 -0400 Subject: [PATCH] Add maria/mysql support Does not install maria or mysql, but will work if it is already installed. re #4517 --- example-source/playbook.yml | 2 +- example-use/playbook.yml | 2 +- roles/pulp3-database/README.md | 45 ++++++++++++++ roles/pulp3-database/defaults/main.yml | 14 +++++ .../meta/main.yml | 0 roles/pulp3-database/tasks/install_mysql.yml | 3 + .../pulp3-database/tasks/install_postgres.yml | 19 ++++++ .../tasks/main.yml | 31 +++------- .../vars/CentOS.yml | 0 .../vars/Debian.yml | 0 .../vars/Fedora.yml | 0 .../vars/Ubuntu.yml | 0 .../vars/main.yml | 0 roles/pulp3-postgresql/README.md | 58 ------------------- roles/pulp3-postgresql/defaults/main.yml | 13 ----- roles/pulp3/tasks/install.yml | 2 +- 16 files changed, 93 insertions(+), 96 deletions(-) create mode 100644 roles/pulp3-database/README.md create mode 100644 roles/pulp3-database/defaults/main.yml rename roles/{pulp3-postgresql => pulp3-database}/meta/main.yml (100%) create mode 100644 roles/pulp3-database/tasks/install_mysql.yml create mode 100644 roles/pulp3-database/tasks/install_postgres.yml rename roles/{pulp3-postgresql => pulp3-database}/tasks/main.yml (80%) rename roles/{pulp3-postgresql => pulp3-database}/vars/CentOS.yml (100%) rename roles/{pulp3-postgresql => pulp3-database}/vars/Debian.yml (100%) rename roles/{pulp3-postgresql => pulp3-database}/vars/Fedora.yml (100%) rename roles/{pulp3-postgresql => pulp3-database}/vars/Ubuntu.yml (100%) rename roles/{pulp3-postgresql => pulp3-database}/vars/main.yml (100%) delete mode 100644 roles/pulp3-postgresql/README.md delete mode 100644 roles/pulp3-postgresql/defaults/main.yml diff --git a/example-source/playbook.yml b/example-source/playbook.yml index 4b2bc31a9..d680009af 100644 --- a/example-source/playbook.yml +++ b/example-source/playbook.yml @@ -1,7 +1,7 @@ --- - hosts: all roles: - - pulp3-postgresql + - pulp3-database - pulp3-workers - pulp3-resource-manager - pulp3-webserver diff --git a/example-use/playbook.yml b/example-use/playbook.yml index 31b28541a..a451aabda 100644 --- a/example-use/playbook.yml +++ b/example-use/playbook.yml @@ -1,7 +1,7 @@ --- - hosts: all roles: - - pulp3-postgresql + - pulp3-database - pulp3-workers - pulp3-resource-manager - pulp3-webserver diff --git a/roles/pulp3-database/README.md b/roles/pulp3-database/README.md new file mode 100644 index 000000000..ab780aecc --- /dev/null +++ b/roles/pulp3-database/README.md @@ -0,0 +1,45 @@ +pulp3-database +================ + +Optionally install a database, then configure for Pulp. + +More specifically, this role does the following: + +1. Call the external role to install a database if `pulp_install_db` is true. +2. Install the Python bindings to interact with the specified database. +3. Create and run migrations. + +Role Variables: +--------------- + +* `pulp_database_config`: Defines how Pulp will talk to PostgreSQL. Default values are constructed +* from the other variables defined here. See `defaults/main.yml`. +* `pulp_db_host`: Host of the database instance. Defaults to localhost. +* `pulp_db_name`: Name of the database, defaults to pulp. +* `pulp_db_user`: Database user, should match linux user. Defaults to pulp +* `pulp_db_password`: Password for Postgresql user. Defaults to pulp +* `pulp_db_backend`: Django setting for db backend. for databasePassword for Postgresql user. + Defaults to "django.db.backends.postgresql_psycopg2" +* `pulp_install_db`: Defaults to true. Whether to install a database. + +Shared Variables: +----------------- + +* `ansible_python_interpreter`: **Required**. Path to the Python interpreter. + +This role **is tightly coupled** with the required the `pulp3` role and uses some of +variables which are documented in that role: + +* `pulp_user` +* `pulp_install_dir` +* `pulp_install_plugins` +* `pulp_default_admin_password` + + +This role optionally depends on other roles to install a database. + +Operating Systems Variables: +---------------------------- + +Each currently supported operating system has a matching file in the "vars" +directory. diff --git a/roles/pulp3-database/defaults/main.yml b/roles/pulp3-database/defaults/main.yml new file mode 100644 index 000000000..ca600181f --- /dev/null +++ b/roles/pulp3-database/defaults/main.yml @@ -0,0 +1,14 @@ +--- +pulp_install_db: true +pulp_db_host: localhost +pulp_db_name: pulp +pulp_db_user: pulp +pulp_db_password: pulp +pulp_db_backend: django.db.backends.postgresql_psycopg2 +pulp_database_config: + default: + HOST: "{{ pulp_db_host }}" + ENGINE: "{{ pulp_db_backend }}" + NAME: "{{ pulp_db_name}}" + USER: "{{ pulp_db_user }}" + PASSWORD: "{{ pulp_db_password }}" diff --git a/roles/pulp3-postgresql/meta/main.yml b/roles/pulp3-database/meta/main.yml similarity index 100% rename from roles/pulp3-postgresql/meta/main.yml rename to roles/pulp3-database/meta/main.yml diff --git a/roles/pulp3-database/tasks/install_mysql.yml b/roles/pulp3-database/tasks/install_mysql.yml new file mode 100644 index 000000000..1b3bb832e --- /dev/null +++ b/roles/pulp3-database/tasks/install_mysql.yml @@ -0,0 +1,3 @@ +--- +- fail: + msg: "MySQL/Maria installation is not implented. Please install manually and set pulp_install_database to false." diff --git a/roles/pulp3-database/tasks/install_postgres.yml b/roles/pulp3-database/tasks/install_postgres.yml new file mode 100644 index 000000000..adbfe495f --- /dev/null +++ b/roles/pulp3-database/tasks/install_postgres.yml @@ -0,0 +1,19 @@ +--- +- block: + - name: Install SCL package + package: + name: 'centos-release-scl' + state: present + when: ansible_distribution == 'CentOS' + + - name: Set listen addresses + set_fact: + postgresql_global_config_options: + - option: listen_addresses + value: "*" + when: pulp_db_host != 'localhost' + + - name: Install and configure PostgreSQL + import_role: + name: geerlingguy.postgresql + become: yes diff --git a/roles/pulp3-postgresql/tasks/main.yml b/roles/pulp3-database/tasks/main.yml similarity index 80% rename from roles/pulp3-postgresql/tasks/main.yml rename to roles/pulp3-database/tasks/main.yml index 8b773fed4..f9b10a2f1 100644 --- a/roles/pulp3-postgresql/tasks/main.yml +++ b/roles/pulp3-database/tasks/main.yml @@ -4,28 +4,15 @@ tags: - always -- block: - - - name: Install SCL package - package: - name: 'centos-release-scl' - state: present - when: ansible_distribution == 'CentOS' - - - name: Set listen addresses - set_fact: - postgresql_global_config_options: - - option: listen_addresses - value: "*" - when: pulp_postgresql_host != 'localhost' - - - name: Install and configure PostgreSQL - import_role: - name: geerlingguy.postgresql - - - become: true - when: pulp_install_postgresql +- import_tasks: install_postgres.yml + when: + - pulp_install_db + - pulp_db_type == 'postgres' + +- import_tasks: install_mysql.yml + when: + - pulp_install_db + - pulp_db_type == 'mysql' - meta: flush_handlers diff --git a/roles/pulp3-postgresql/vars/CentOS.yml b/roles/pulp3-database/vars/CentOS.yml similarity index 100% rename from roles/pulp3-postgresql/vars/CentOS.yml rename to roles/pulp3-database/vars/CentOS.yml diff --git a/roles/pulp3-postgresql/vars/Debian.yml b/roles/pulp3-database/vars/Debian.yml similarity index 100% rename from roles/pulp3-postgresql/vars/Debian.yml rename to roles/pulp3-database/vars/Debian.yml diff --git a/roles/pulp3-postgresql/vars/Fedora.yml b/roles/pulp3-database/vars/Fedora.yml similarity index 100% rename from roles/pulp3-postgresql/vars/Fedora.yml rename to roles/pulp3-database/vars/Fedora.yml diff --git a/roles/pulp3-postgresql/vars/Ubuntu.yml b/roles/pulp3-database/vars/Ubuntu.yml similarity index 100% rename from roles/pulp3-postgresql/vars/Ubuntu.yml rename to roles/pulp3-database/vars/Ubuntu.yml diff --git a/roles/pulp3-postgresql/vars/main.yml b/roles/pulp3-database/vars/main.yml similarity index 100% rename from roles/pulp3-postgresql/vars/main.yml rename to roles/pulp3-database/vars/main.yml diff --git a/roles/pulp3-postgresql/README.md b/roles/pulp3-postgresql/README.md deleted file mode 100644 index b3ea5cf0d..000000000 --- a/roles/pulp3-postgresql/README.md +++ /dev/null @@ -1,58 +0,0 @@ -pulp3-postgresql -================ - -Optionally call anxs/postgresql, and configure Pulp's database. - -More specifically, this role does the following: - -1. Call the anxs/postgresql role if `pulp_postgresql_call_anxs_postgresql` is - true. This role installs and configures PostgreSQL. -2. Install the package needed to talk to PostgreSQL from Python, if any. -3. Create and run migrations for `core`. - -Role Variables: ---------------- - -* `pulp_install_postgresql`: Defaults to true. Whether to install Postgresql. -* `pulp_database_config`: Defines how Pulp will talk to PostgreSQL. Defaults - to values for a single-machine Pulp instance. See `defaults/main.yml` for - specific values and syntax. -* `pulp_postgresql_host`: Host of the postgresql instance. Defaults to localhost. -* `pulp_postgresql_database`: Name of the postgresql database, defaults to pulp. -* `pulp_postgresql_user`: Postgresql user, (not linux user). Defaults to pulp -* `pulp_postgresql_password`: Password for Postgresql user. Defaults to pulp - -Shared Variables: ------------------ - -* `ansible_python_interpreter`: **Required**. Path to the Python interpreter. - -This role **is tightly coupled** with the required the `pulp3` role and uses some of -variables which are documented in that role: - -* `pulp_user` -* `pulp_install_dir` -* `pulp_install_plugins` -* `pulp_default_admin_password` - - -This role optionally depends on anxs.postgresql to install and configure the -database. To customize PostgreSQL's configuration, set the variables accepted by that -role. Default values for the anxs.postgresql role are set in `vars/main.yml`: - -* `postgresql_databases` -* `postgresql_users` -* `postgresql_user_privilages` -* `postgresql_version` - -Operating Systems Variables: ----------------------------- - -Each currently supported operating system has a matching file in the "vars" -directory. - -Dependencies: -------------- - -* [anxs.postgresql](https://galaxy.ansible.com/anxs/postgresql), when - `pulp_postgresql_call_anxs_postgresql` is true. diff --git a/roles/pulp3-postgresql/defaults/main.yml b/roles/pulp3-postgresql/defaults/main.yml deleted file mode 100644 index b0c32dd56..000000000 --- a/roles/pulp3-postgresql/defaults/main.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -pulp_install_postgresql: true -pulp_postgresql_host: localhost -pulp_postgresql_database: pulp -pulp_postgresql_user: pulp -pulp_postgresql_password: pulp -pulp_database_config: - default: - HOST: "{{ pulp_postgresql_host }}" - ENGINE: django.db.backends.postgresql_psycopg2 - NAME: "{{ pulp_postgresql_database }}" - USER: "{{ pulp_postgresql_user }}" - PASSWORD: "{{ pulp_postgresql_password }}" diff --git a/roles/pulp3/tasks/install.yml b/roles/pulp3/tasks/install.yml index 8b24543f7..21482ad84 100644 --- a/roles/pulp3/tasks/install.yml +++ b/roles/pulp3/tasks/install.yml @@ -80,7 +80,7 @@ state: present virtualenv: '{{ pulp_install_dir }}' virtualenv_command: '{{ pulp_python_interpreter }} -m venv' - when: pulp_db_type == "mysql" + when: pulp_db_type == "mariadb" - name: Install pulpcore package from source pip: