From c0c02494348ac06227396dc43ef3d280ef8b4e82 Mon Sep 17 00:00:00 2001 From: Doug Shelley Date: Mon, 5 Dec 2016 16:53:42 +0000 Subject: [PATCH] Add Xenial support for MariaDB Add the elements for building the MariaDB 10.1 guest image on Xenial. A change was required to the service_candidates to allow for the selection of the systemd unit file (mariadb.service) instead of the old upstart script. Change-Id: Iee0548e109f26c675b1410b6457b9e63ada9c0db --- .../install.d/30-mariadb | 0 .../ubuntu-xenial-mariadb/element-deps | 1 + .../install.d/30-mariadb | 39 +++++++++++++++++++ .../datastore/experimental/mariadb/service.py | 2 +- 4 files changed, 41 insertions(+), 1 deletion(-) rename integration/scripts/files/elements/{ubuntu-mariadb => ubuntu-trusty-mariadb}/install.d/30-mariadb (100%) create mode 100644 integration/scripts/files/elements/ubuntu-xenial-mariadb/element-deps create mode 100755 integration/scripts/files/elements/ubuntu-xenial-mariadb/install.d/30-mariadb diff --git a/integration/scripts/files/elements/ubuntu-mariadb/install.d/30-mariadb b/integration/scripts/files/elements/ubuntu-trusty-mariadb/install.d/30-mariadb similarity index 100% rename from integration/scripts/files/elements/ubuntu-mariadb/install.d/30-mariadb rename to integration/scripts/files/elements/ubuntu-trusty-mariadb/install.d/30-mariadb diff --git a/integration/scripts/files/elements/ubuntu-xenial-mariadb/element-deps b/integration/scripts/files/elements/ubuntu-xenial-mariadb/element-deps new file mode 100644 index 0000000000..5d7756f933 --- /dev/null +++ b/integration/scripts/files/elements/ubuntu-xenial-mariadb/element-deps @@ -0,0 +1 @@ +ubuntu-mariadb diff --git a/integration/scripts/files/elements/ubuntu-xenial-mariadb/install.d/30-mariadb b/integration/scripts/files/elements/ubuntu-xenial-mariadb/install.d/30-mariadb new file mode 100755 index 0000000000..521f3e68ba --- /dev/null +++ b/integration/scripts/files/elements/ubuntu-xenial-mariadb/install.d/30-mariadb @@ -0,0 +1,39 @@ +#!/bin/sh + +# CONTEXT: GUEST during CONSTRUCTION as ROOT +# PURPOSE: Install controller base required packages + +set -e +set -o xtrace + +export DEBIAN_FRONTEND=noninteractive + +# NOTE(vkmc): Using MariaDB repositories is required +# https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/ +apt-get -y install software-properties-common +apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 +add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.1/ubuntu xenial main' + +# Pin MariaDB repository +sudo echo -e "Package: *\nPin: origin ftp.osuosl.org\nPin-Priority: 1000" > /etc/apt/preferences.d/mariadb.pref + +apt-get -y update +apt-get -y install socat percona-xtrabackup +apt-get -y install libmariadbclient18 mariadb-server + +cat >/etc/mysql/conf.d/no_perf_schema.cnf <<_EOF_ +[mysqld] +performance_schema = off +_EOF_ + +mv /etc/mysql/my.cnf.fallback /etc/mysql/my.cnf +chown mysql:mysql /etc/mysql/my.cnf +cat >/etc/mysql/my.cnf <<_EOF_ +[mysql] + +!includedir /etc/mysql/conf.d/ +_EOF_ + +rm /etc/init.d/mysql +systemctl daemon-reload +systemctl enable mariadb diff --git a/trove/guestagent/datastore/experimental/mariadb/service.py b/trove/guestagent/datastore/experimental/mariadb/service.py index b1bb4f053c..a851e023d4 100644 --- a/trove/guestagent/datastore/experimental/mariadb/service.py +++ b/trove/guestagent/datastore/experimental/mariadb/service.py @@ -37,7 +37,7 @@ class MariaDBApp(galera_service.GaleraApp): def service_candidates(self): service_candidates = super(MariaDBApp, self).service_candidates return { - operating_system.DEBIAN: service_candidates, + operating_system.DEBIAN: ["mariadb"] + service_candidates, operating_system.REDHAT: ["mariadb"], operating_system.SUSE: service_candidates }[self.OS]