Add EL8 support for ara_api and ara_frontend_nginx roles

This adds support for deploying the ARA API server with an optional
nginx frontend on EL8.

It also sets up integration test jobs to make sure we test it.

Change-Id: I7ce026667ea85d8c59e4910572a34d29f78a8dca
This commit is contained in:
David Moreau Simard 2020-01-16 17:04:08 -05:00
parent b551db3289
commit 867c423222
No known key found for this signature in database
GPG Key ID: 938880DAFC753E80
8 changed files with 87 additions and 8 deletions

View File

@ -57,8 +57,8 @@
parent: ara-api-database-backends
nodeset: ara-database-server-multinode
description: |
Deploys the ARA API server on Ubuntu 18.04 as well as Fedora 30 and
tests it against a central PostgreSQL server installed on CentOS 8.
Deploys the ARA API server on Ubuntu 18.04, Fedora 30 as well as CentOS 8
and tests it against a central PostgreSQL server installed on CentOS 8.
The job exercises the ara_api Ansible role, the ARA Ansible plugins, the
ARA API clients as well as the API itself.
run: tests/with_postgresql.yaml
@ -69,8 +69,8 @@
parent: ara-api-database-backends
nodeset: ara-database-server-multinode
description: |
Deploys the ARA API server on Ubuntu 18.04 as well as Fedora 30 and
tests it against a central MySQL server installed on CentOS 8.
Deploys the ARA API server on Ubuntu 18.04, Fedora 30 as well as CentOS 8
and tests it against a central MySQL server installed on CentOS 8.
The job exercises the ara_api Ansible role, the ARA Ansible plugins, the
ARA API clients as well as the API itself.
run: tests/with_mysql.yaml
@ -81,8 +81,8 @@
parent: ara-api-database-backends
nodeset: ara-multinode
description: |
Deploys the ARA API server on Ubuntu 18.04 as well as Fedora 30 and
tests it using the distributed sqlite database backend.
Deploys the ARA API server on Ubuntu 18.04, Fedora 30 as well as CentOS 8
and tests it using the distributed sqlite database backend.
run: tests/with_distributed_sqlite.yaml
# TODO: The job should build a package from current source and test that package

View File

@ -9,6 +9,8 @@
label: ubuntu-bionic
- name: fedora-30
label: fedora-30
- name: centos-8
label: centos-8
groups:
- name: ara-database-server
nodes:
@ -17,6 +19,7 @@
nodes:
- ubuntu-bionic
- fedora-30
- centos-8
# Nodeset used to test instances of ARA API deployed on different operating
# systems simultaneously.
@ -27,11 +30,14 @@
label: ubuntu-bionic
- name: fedora-30
label: fedora-30
- name: centos-8
label: centos-8
groups:
- name: ara-api-server
nodes:
- ubuntu-bionic
- fedora-30
- centos-8
- nodeset:
name: ara-fedora-30
@ -41,4 +47,4 @@
groups:
- name: ara-api-server
nodes:
- fedora-30
- fedora-30

View File

@ -7,7 +7,7 @@ This Ansible role provides a framework for installing one or many instances of
`ARA Records Ansible <https://github.com/ansible-community/ara>`_ in a variety of
opinionated deployment topologies.
It is currently tested and supported against Ubuntu 18.04 and Fedora 29.
It is currently tested and supported against Ubuntu 18.04, Fedora 30 and CentOS 8.
Role Variables
--------------

View File

@ -16,6 +16,18 @@
# You should have received a copy of the GNU General Public License
# along with ARA Records Ansible. If not, see <http://www.gnu.org/licenses/>.
# EL8 doesn't install a python3 interpreter by default.
# System packages rely on /usr/libexec/platform-python and Ansible will use it
# but we want to use the non-system one. Install it if it's missing.
- name: Ensure python3 is installed for EL8
package:
name: python3
state: present
become: yes
when:
- ansible_distribution | lower in ["redhat", "centos"]
- ansible_distribution_major_version == "8"
# The ansible_python_version fact might end up retrieving the version of
# python2 so we need to explicitely get the version of python 3 available.
- name: Validate availability of Python 3.5

View File

@ -0,0 +1,38 @@
---
# Copyright (c) 2019 Red Hat, Inc.
#
# This file is part of ARA Records Ansible.
#
# ARA Records Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ARA Records Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ARA Records Ansible. If not, see <http://www.gnu.org/licenses/>.
# ARA has not been packaged for CentOS or RHEL yet
ara_distribution_packages: []
ara_api_required_packages:
- git
- python3
- policycoreutils-python-utils
ara_api_postgresql_packages:
- postgresql
- postgresql-devel
- python3-devel
- gcc
ara_api_mysql_packages:
- mariadb
- mariadb-connector-c-devel
- redhat-rpm-config
- python3-devel
- gcc

View File

@ -0,0 +1 @@
CentOS.yaml

View File

@ -0,0 +1,21 @@
---
# Copyright (c) 2019 Red Hat, Inc.
#
# This file is part of ARA Records Ansible.
#
# ARA Records Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ARA Records Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ARA Records Ansible. If not, see <http://www.gnu.org/licenses/>.
ara_nginx_user: nginx
ara_nginx_group: nginx
ara_nginx_config_path: /etc/nginx/conf.d

View File

@ -0,0 +1 @@
CentOS.yaml