Add CentOS7 support to Galera Server
Updates the multi-distro framework to add CentOS7 support. Depends-On: Ieadcdd70e9b8271aee3880896255a5037f56567e Change-Id: I7e889ea4653a6972ea7f8208416fc1fc3db45e5c Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
parent
5136160186
commit
5b23837dd0
@ -13,9 +13,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
## APT Cache Options
|
|
||||||
cache_timeout: 600
|
|
||||||
|
|
||||||
galera_cluster_members: "{{ groups['galera_all'] }}"
|
galera_cluster_members: "{{ groups['galera_all'] }}"
|
||||||
galera_server_bootstrap_node: "{{ galera_cluster_members[0] }}"
|
galera_server_bootstrap_node: "{{ galera_cluster_members[0] }}"
|
||||||
galera_ignore_cluster_state: false
|
galera_ignore_cluster_state: false
|
||||||
@ -31,6 +28,14 @@ galera_cluster_name: openstack_galera_cluster
|
|||||||
# as a slave." is no longer present.
|
# as a slave." is no longer present.
|
||||||
# galera_server_id: 0
|
# galera_server_id: 0
|
||||||
|
|
||||||
|
# These are here to stub out the internal ROLE API.
|
||||||
|
# if these are used they should be set within the
|
||||||
|
# distro specific variable files found in vars/
|
||||||
|
galera_pinned_packages: []
|
||||||
|
galera_debconf_items: []
|
||||||
|
percona_upstream_packages: []
|
||||||
|
|
||||||
|
|
||||||
galera_existing_cluster: true
|
galera_existing_cluster: true
|
||||||
galera_running_and_bootstrapped: false
|
galera_running_and_bootstrapped: false
|
||||||
|
|
||||||
@ -68,32 +73,6 @@ galera_wsrep_sst_auth_password: "{{ galera_root_password }}"
|
|||||||
# xtrabackup parallel/compression/sync threads
|
# xtrabackup parallel/compression/sync threads
|
||||||
galera_xtrabackup_threads: 4
|
galera_xtrabackup_threads: 4
|
||||||
|
|
||||||
# Repositories
|
|
||||||
galera_apt_repo_url: "https://mirror.rackspace.com/mariadb/repo/10.0/ubuntu"
|
|
||||||
galera_apt_repo:
|
|
||||||
repo: "deb {{ galera_apt_repo_url }} {{ ansible_distribution_release }} main"
|
|
||||||
state: "present"
|
|
||||||
|
|
||||||
galera_apt_percona_xtrabackup_url: "https://repo.percona.com/apt"
|
|
||||||
galera_apt_percona_xtrabackup_repo:
|
|
||||||
repo: "deb {{ galera_apt_percona_xtrabackup_url }} {{ ansible_distribution_release }} main"
|
|
||||||
state: "present"
|
|
||||||
|
|
||||||
percona_package_path: "/opt/{{ percona_package_url | basename }}"
|
|
||||||
|
|
||||||
galera_apt_pinned_packages: [{ package: "*", release: MariaDB, priority: "1001" }]
|
|
||||||
|
|
||||||
# Validate SSL certificates when downloading the percona deb above
|
|
||||||
# May be set to "no" when proxy server is intercepting the certificates.
|
|
||||||
percona_package_download_validate_certs: "yes"
|
|
||||||
|
|
||||||
#There is no package currently provided for Xenial, but vivid uses the
|
|
||||||
#same libraries and installs without issue.
|
|
||||||
qpress_deb_url: https://repo.percona.com/apt/pool/main/q/qpress/qpress_11-1.vivid_amd64.deb
|
|
||||||
qpress_package_download_validate_certs: yes
|
|
||||||
qpress_package_sha256: "54c02ae825b5c08bfae0792b23390b1577d7a26cadfb321384377bde31465959"
|
|
||||||
qpress_package_path: "/opt/{{ qpress_deb_url | basename }}"
|
|
||||||
|
|
||||||
galera_pip_packages:
|
galera_pip_packages:
|
||||||
- MySQL-python
|
- MySQL-python
|
||||||
- pycrypto
|
- pycrypto
|
||||||
@ -112,3 +91,5 @@ galera_debian_cnf_overrides: {}
|
|||||||
# the cluster will be used which is something to note if deploying galera on different
|
# the cluster will be used which is something to note if deploying galera on different
|
||||||
# hardware.
|
# hardware.
|
||||||
# galera_max_connections: 500
|
# galera_max_connections: 500
|
||||||
|
|
||||||
|
using_mysql_init: no
|
||||||
|
22
manual-test.rc
Normal file
22
manual-test.rc
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
export VIRTUAL_ENV=$(pwd)
|
||||||
|
export ANSIBLE_HOST_KEY_CHECKING=False
|
||||||
|
export ANSIBLE_SSH_CONTROL_PATH=/tmp/%%h-%%r
|
||||||
|
|
||||||
|
# TODO (odyssey4me) These are only here as they are non-standard folder
|
||||||
|
# names for Ansible 1.9.x. We are using the standard folder names for
|
||||||
|
# Ansible v2.x. We can remove this when we move to Ansible 2.x.
|
||||||
|
export ANSIBLE_ACTION_PLUGINS=${HOME}/.ansible/plugins/action
|
||||||
|
export ANSIBLE_CALLBACK_PLUGINS=${HOME}/.ansible/plugins/callback
|
||||||
|
export ANSIBLE_FILTER_PLUGINS=${HOME}/.ansible/plugins/filter
|
||||||
|
export ANSIBLE_LOOKUP_PLUGINS=${HOME}/.ansible/plugins/lookup
|
||||||
|
|
||||||
|
# This is required as the default is the current path or a path specified
|
||||||
|
# in ansible.cfg
|
||||||
|
export ANSIBLE_LIBRARY=${HOME}/.ansible/plugins/library
|
||||||
|
|
||||||
|
# This is required as the default is '/etc/ansible/roles' or a path
|
||||||
|
# specified in ansible.cfg
|
||||||
|
export ANSIBLE_ROLES_PATH=${HOME}/.ansible/roles:$(pwd)/..
|
||||||
|
|
||||||
|
echo "Run manual functional tests by executing the following:"
|
||||||
|
echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml -e \"rolename=$(pwd)\""
|
@ -23,6 +23,10 @@ galaxy_info:
|
|||||||
- name: Ubuntu
|
- name: Ubuntu
|
||||||
versions:
|
versions:
|
||||||
- trusty
|
- trusty
|
||||||
|
- xenial
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- 7
|
||||||
categories:
|
categories:
|
||||||
- cloud
|
- cloud
|
||||||
- galera
|
- galera
|
||||||
@ -31,7 +35,7 @@ galaxy_info:
|
|||||||
- openstack
|
- openstack
|
||||||
dependencies:
|
dependencies:
|
||||||
- role: apt_package_pinning
|
- role: apt_package_pinning
|
||||||
apt_pinned_packages: "{{ galera_apt_pinned_packages }}"
|
apt_pinned_packages: "{{ galera_pinned_packages }}"
|
||||||
apt_package_pinning_file_name: "galera_pin.pref"
|
apt_package_pinning_file_name: "galera_pin.pref"
|
||||||
when:
|
when:
|
||||||
- ansible_pkg_mgr == 'apt'
|
- ansible_pkg_mgr == 'apt'
|
||||||
|
@ -14,8 +14,13 @@
|
|||||||
# TODO(odyssey4me) remove this once https://review.openstack.org/288634 has merged
|
# TODO(odyssey4me) remove this once https://review.openstack.org/288634 has merged
|
||||||
# and the disk images are rebuilt and redeployed.
|
# and the disk images are rebuilt and redeployed.
|
||||||
curl
|
curl
|
||||||
|
wget
|
||||||
|
|
||||||
# Requirements for Paramiko 2.0
|
# Requirements for Paramiko 2.0
|
||||||
libssl-dev
|
libssl-dev [platform:dpkg]
|
||||||
libffi-dev
|
libffi-dev [platform:dpkg]
|
||||||
|
libffi-devel [platform:rpm]
|
||||||
|
openssl-devel [platform:rpm]
|
||||||
|
|
||||||
|
# For selinux
|
||||||
|
libselinux-python [platform:rpm]
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- CentOS 7 support has been added to the ``galera_server`` role.
|
@ -22,6 +22,10 @@ if [ "$(which apt-get)" ]; then
|
|||||||
apt-get install -y build-essential python2.7 python-dev git-core libssl-dev libffi-dev
|
apt-get install -y build-essential python2.7 python-dev git-core libssl-dev libffi-dev
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$(which yum)" ]; then
|
||||||
|
yum install -y '@Development Tools' python-devel git libffi-devel openssl-devel
|
||||||
|
fi
|
||||||
|
|
||||||
# get pip, if necessary
|
# get pip, if necessary
|
||||||
if [ ! "$(which pip)" ]; then
|
if [ ! "$(which pip)" ]; then
|
||||||
curl --silent --show-error --retry 5 \
|
curl --silent --show-error --retry 5 \
|
||||||
|
@ -19,15 +19,8 @@
|
|||||||
tags:
|
tags:
|
||||||
- install-apt
|
- install-apt
|
||||||
|
|
||||||
- name: Install pip packages
|
- include: galera_install_yum.yml
|
||||||
pip:
|
when:
|
||||||
name: "{{ item }}"
|
- ansible_pkg_mgr == 'yum'
|
||||||
state: latest
|
|
||||||
extra_args: "{{ pip_install_options|default('') }}"
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items: "{{ galera_pip_packages }}"
|
|
||||||
tags:
|
tags:
|
||||||
- galera-pip-packages
|
- install-yum
|
||||||
|
@ -13,6 +13,93 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache
|
||||||
|
#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged
|
||||||
|
#in 1.9.x or we move to 2.0 (if tested working)
|
||||||
|
- name: Check apt last update file
|
||||||
|
stat:
|
||||||
|
path: /var/cache/apt
|
||||||
|
register: apt_cache_stat
|
||||||
|
tags:
|
||||||
|
- galera-apt-packages
|
||||||
|
|
||||||
|
- name: Update apt if needed
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}"
|
||||||
|
tags:
|
||||||
|
- galera-apt-packages
|
||||||
|
|
||||||
|
- name: Install galera apt pre packages
|
||||||
|
apt:
|
||||||
|
pkg: "{{ item }}"
|
||||||
|
state: latest
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_pre_packages }}"
|
||||||
|
tags:
|
||||||
|
- galera-pre-apt-packages
|
||||||
|
|
||||||
|
- name: Add galera apt-keys
|
||||||
|
apt_key:
|
||||||
|
id: "{{ item.hash_id }}"
|
||||||
|
keyserver: "{{ item.keyserver | default(omit) }}"
|
||||||
|
data: "{{ item.data | default(omit) }}"
|
||||||
|
url: "{{ item.url | default(omit) }}"
|
||||||
|
state: "present"
|
||||||
|
register: add_keys
|
||||||
|
until: add_keys|success
|
||||||
|
ignore_errors: True
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_gpg_keys }}"
|
||||||
|
tags:
|
||||||
|
- galera-apt-keys
|
||||||
|
|
||||||
|
- name: Add galera apt-keys using fallback keyserver
|
||||||
|
apt_key:
|
||||||
|
id: "{{ item.hash_id }}"
|
||||||
|
keyserver: "{{ item.fallback_keyserver | default(omit) }}"
|
||||||
|
url: "{{ item.fallback_url | default(omit) }}"
|
||||||
|
state: "present"
|
||||||
|
register: add_keys_fallback
|
||||||
|
until: add_keys_fallback|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_gpg_keys }}"
|
||||||
|
when: add_keys|failed and (item.fallback_keyserver is defined or item.fallback_url is defined)
|
||||||
|
tags:
|
||||||
|
- galera-apt-keys
|
||||||
|
|
||||||
|
- name: Add galera repo
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ item.repo }}"
|
||||||
|
state: "{{ item.state }}"
|
||||||
|
register: add_repos
|
||||||
|
until: add_repos|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items:
|
||||||
|
- "{{ galera_repo }}"
|
||||||
|
tags:
|
||||||
|
- galera-repos
|
||||||
|
|
||||||
|
- name: Add percona repo
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ item.repo }}"
|
||||||
|
state: "{{ item.state }}"
|
||||||
|
register: add_repos
|
||||||
|
until: add_repos|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items:
|
||||||
|
- "{{ galera_percona_xtrabackup_repo }}"
|
||||||
|
when: use_percona_upstream | bool
|
||||||
|
tags:
|
||||||
|
- percona-repos
|
||||||
|
|
||||||
- name: Preseed galera password(s)
|
- name: Preseed galera password(s)
|
||||||
debconf:
|
debconf:
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
@ -23,6 +110,15 @@
|
|||||||
tags:
|
tags:
|
||||||
- galera-debconf
|
- galera-debconf
|
||||||
|
|
||||||
|
- name: Prevent galera from starting on install
|
||||||
|
copy:
|
||||||
|
src: "policy-rc.d"
|
||||||
|
dest: "/usr/sbin/policy-rc.d"
|
||||||
|
mode: "0755"
|
||||||
|
backup: yes
|
||||||
|
tags:
|
||||||
|
- galera-config
|
||||||
|
|
||||||
#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache
|
#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache
|
||||||
#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged
|
#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged
|
||||||
#in 1.9.x or we move to 2.0 (if tested working)
|
#in 1.9.x or we move to 2.0 (if tested working)
|
||||||
@ -50,31 +146,39 @@
|
|||||||
until: install_packages|success
|
until: install_packages|success
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
with_items: "{{ galera_apt_packages }}"
|
with_items: "{{ galera_packages }}"
|
||||||
notify: Restart mysql
|
notify: Restart mysql
|
||||||
tags:
|
tags:
|
||||||
- galera-apt-packages
|
- galera-apt-packages
|
||||||
|
|
||||||
# TODO(cloudnull) -- Remove this after the Mitaka release
|
- name: Install percona-xtrabackup package from .deb
|
||||||
# This task simply removes the system version of
|
|
||||||
# percona-xtrabackup and xtrabackup if found the
|
|
||||||
# purpose is to ensure that "if" the system version
|
|
||||||
# of the binary is installed its first removed in
|
|
||||||
# favor of the actual upstream package being used in
|
|
||||||
# the next task.
|
|
||||||
- name: UnInstall system xtrabackup packages
|
|
||||||
apt:
|
|
||||||
pkg: "{{ item }}"
|
|
||||||
state: absent
|
|
||||||
with_items:
|
|
||||||
- percona-xtrabackup
|
|
||||||
- xtrabackup
|
|
||||||
tags:
|
|
||||||
- percona-apt-packages
|
|
||||||
|
|
||||||
- name: Install percona packages upstream
|
|
||||||
apt:
|
apt:
|
||||||
deb: "{{ percona_package_path }}"
|
deb: "{{ percona_package_path }}"
|
||||||
force: yes
|
force: yes
|
||||||
|
when: not use_percona_upstream | bool
|
||||||
tags:
|
tags:
|
||||||
- galera-apt-packages
|
- percona-apt-packages
|
||||||
|
|
||||||
|
- name: Install qpress package from .deb
|
||||||
|
apt:
|
||||||
|
deb: "{{ qpress_package_path }}"
|
||||||
|
force: yes
|
||||||
|
when: not use_percona_upstream | bool
|
||||||
|
tags:
|
||||||
|
- percona-apt-packages
|
||||||
|
|
||||||
|
- name: Install percona packages
|
||||||
|
apt:
|
||||||
|
pkg: "{{ item }}"
|
||||||
|
state: installed
|
||||||
|
with_items: "{{ percona_upstream_packages }}"
|
||||||
|
when: use_percona_upstream | bool
|
||||||
|
tags:
|
||||||
|
- percona-apt-packages
|
||||||
|
|
||||||
|
- name: Remove policy-rc
|
||||||
|
file:
|
||||||
|
path: "/usr/sbin/policy-rc.d"
|
||||||
|
state: absent
|
||||||
|
tags:
|
||||||
|
- galera-config
|
||||||
|
162
tasks/galera_install_yum.yml
Normal file
162
tasks/galera_install_yum.yml
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2016, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: Update the local file system CRUD
|
||||||
|
file:
|
||||||
|
src: "{{ item.src|default(omit) }}"
|
||||||
|
path: "{{ item.path }}"
|
||||||
|
state: "{{ item.state }}"
|
||||||
|
force: "{{ item.force|default(omit) }}"
|
||||||
|
with_items:
|
||||||
|
- { path: "/etc/mysql", state: "directory" }
|
||||||
|
- { path: "/etc/mysql/conf.d", state: "directory" }
|
||||||
|
- { src: "/usr/lib64/galera", path: "/usr/lib/galera", state: "link", force: true }
|
||||||
|
- { src: "/etc/mysql/conf.d", path: "/etc/my.cnf.d", state: "link", force: true }
|
||||||
|
- { src: "/etc/mysql/my.cnf", path: "/etc/my.cnf", state: "link", force: true }
|
||||||
|
tags:
|
||||||
|
- galera-config
|
||||||
|
|
||||||
|
- name: Add galera gpg-keys
|
||||||
|
rpm_key:
|
||||||
|
state: present
|
||||||
|
key: "{{ item.keyserver }}/{{ item.key_name }}"
|
||||||
|
register: add_keys
|
||||||
|
until: add_keys|success
|
||||||
|
ignore_errors: True
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_client_gpg_keys }}"
|
||||||
|
tags:
|
||||||
|
- galera-gpg-keys
|
||||||
|
|
||||||
|
- name: Add galera gpg-keys using fallback keyserver
|
||||||
|
rpm_key:
|
||||||
|
state: present
|
||||||
|
key: "{{ item.fallback_keyserver }}/{{ item.key_name }}"
|
||||||
|
register: add_keys
|
||||||
|
until: add_keys|success
|
||||||
|
ignore_errors: True
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_client_gpg_keys }}"
|
||||||
|
when: add_keys|failed and (item.fallback_keyserver is defined)
|
||||||
|
tags:
|
||||||
|
- galera-gpg-keys
|
||||||
|
|
||||||
|
#TODO(cloudnull) Remove this task once we move to Ansible 2.1
|
||||||
|
# where we can leverage the `yum_repository` module:
|
||||||
|
# https://docs.ansible.com/ansible/yum_repository_module.html
|
||||||
|
- name: Add galera repo
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
[{{ item.name }}]
|
||||||
|
name={{ item.name }}
|
||||||
|
description={{ item.description }}
|
||||||
|
baseurl={{ item.baseurl }}
|
||||||
|
gpgkey={{ item.gpgkey }}
|
||||||
|
gpgcheck=1
|
||||||
|
enabled=1
|
||||||
|
dest: "/etc/yum.repos.d/{{ item.file }}.repo"
|
||||||
|
register: add_repos
|
||||||
|
until: add_repos|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items:
|
||||||
|
- "{{ galera_repo }}"
|
||||||
|
tags:
|
||||||
|
- galera-repos
|
||||||
|
|
||||||
|
- name: Install galera yum pre packages
|
||||||
|
yum:
|
||||||
|
pkg: "{{ item }}"
|
||||||
|
state: latest
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_pre_packages }}"
|
||||||
|
tags:
|
||||||
|
- galera-pre-yum-packages
|
||||||
|
|
||||||
|
- name: Install percona repo
|
||||||
|
yum:
|
||||||
|
pkg: "{{ galera_percona_xtrabackup_repo.repo }}"
|
||||||
|
state: "{{ galera_percona_xtrabackup_repo.state }}"
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
when: use_percona_upstream | bool
|
||||||
|
tags:
|
||||||
|
- galera-pre-yum-packages
|
||||||
|
|
||||||
|
- name: Install percona yum packages
|
||||||
|
yum:
|
||||||
|
pkg: "{{ item }}"
|
||||||
|
state: latest
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ percona_upstream_packages }}"
|
||||||
|
when: use_percona_upstream | bool
|
||||||
|
tags:
|
||||||
|
- galera-pre-yum-packages
|
||||||
|
|
||||||
|
- name: Install galera yum packages
|
||||||
|
yum:
|
||||||
|
pkg: "{{ item }}"
|
||||||
|
state: latest
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items: "{{ galera_packages }}"
|
||||||
|
tags:
|
||||||
|
- galera-pre-yum-packages
|
||||||
|
|
||||||
|
- name: Enable mysql to start at boot
|
||||||
|
service:
|
||||||
|
name: "mysql"
|
||||||
|
enabled: "yes"
|
||||||
|
tags:
|
||||||
|
- galera-enable
|
||||||
|
|
||||||
|
# NOTE(cloudnull): This is an idempotent shell task is it will only run once
|
||||||
|
# provided the "/etc/mysql/rhel_configured" exists. This tasks automates the
|
||||||
|
# MySQL secure setup which is done automatically in Ubuntu deployments.
|
||||||
|
- name: "Update root user, connections, and grant options"
|
||||||
|
shell: |
|
||||||
|
service mysql start || true
|
||||||
|
# Reset the root password, at this time there is no password set
|
||||||
|
mysqladmin --no-defaults --port=3306 --socket=/var/run/mysqld/mysqld.sock --host=127.0.0.1 --user=root password "{{ galera_root_password }}"
|
||||||
|
# Setup the root user for MySQL
|
||||||
|
mysql -u root -h localhost -e "UPDATE mysql.user SET Password=PASSWORD('$rootpass') WHERE User='root';"
|
||||||
|
mysql -u root -h localhost -e "DELETE FROM mysql.user WHERE user='';"
|
||||||
|
mysql -u root -h localhost -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('%', 'localhost', '127.0.0.1', '::1');"
|
||||||
|
mysql -u root -h localhost -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%';"
|
||||||
|
mysql -u root -h localhost -e "GRANT ALL PRIVILEGES ON *.* TO '{{ galera_root_user }}'@'localhost' IDENTIFIED BY '{{ galera_root_password }}' WITH GRANT OPTION;"
|
||||||
|
mysql -u root -h localhost -e "GRANT ALL PRIVILEGES ON *.* TO '{{ galera_root_user }}'@'127.0.0.1' IDENTIFIED BY '{{ galera_root_password }}' WITH GRANT OPTION;"
|
||||||
|
mysql -u root -h localhost -e "GRANT ALL PRIVILEGES ON *.* TO '{{ galera_root_user }}'@'::1' IDENTIFIED BY '{{ galera_root_password }}' WITH GRANT OPTION;"
|
||||||
|
mysql -u root -h localhost -e "GRANT ALL PRIVILEGES ON *.* TO '{{ galera_root_user }}'@'%' IDENTIFIED BY '{{ galera_root_password }}' WITH GRANT OPTION;"
|
||||||
|
mysql -u root -h localhost -e "FLUSH PRIVILEGES;"
|
||||||
|
# Create a marker file to ensure this script is not run again
|
||||||
|
touch /etc/mysql/rhel_configured
|
||||||
|
service mysql stop
|
||||||
|
args:
|
||||||
|
creates: /etc/mysql/rhel_configured
|
||||||
|
tags:
|
||||||
|
- galera-rhel-config
|
||||||
|
- skip_ansible_lint
|
@ -24,7 +24,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- { path: "/var/lib/mysql", owner: "mysql", mode: "2755" }
|
- { path: "/var/lib/mysql", owner: "mysql", mode: "2755" }
|
||||||
- { path: "/var/log/mysql", owner: "mysql", mode: "2755" }
|
- { path: "/var/log/mysql", owner: "mysql", mode: "2755" }
|
||||||
- { path: "/var/log/mysql_logs/", owner: "mysql", group: "syslog", mode: "2755" }
|
- { path: "/var/log/mysql_logs", owner: "mysql", mode: "2755" }
|
||||||
- { path: "/etc/mysql/conf.d" }
|
- { path: "/etc/mysql/conf.d" }
|
||||||
tags:
|
tags:
|
||||||
- galera-config
|
- galera-config
|
||||||
@ -53,6 +53,7 @@
|
|||||||
config_type: "ini"
|
config_type: "ini"
|
||||||
notify: Restart mysql
|
notify: Restart mysql
|
||||||
tags:
|
tags:
|
||||||
|
- galera-config
|
||||||
- galera-client-user-config
|
- galera-client-user-config
|
||||||
|
|
||||||
# NOTE: (mancdaz) this should not be needed with mariadb-10.1 since its
|
# NOTE: (mancdaz) this should not be needed with mariadb-10.1 since its
|
||||||
@ -64,6 +65,8 @@
|
|||||||
insertafter: '^export HOME=/etc/mysql/'
|
insertafter: '^export HOME=/etc/mysql/'
|
||||||
line: '[ -r /etc/default/mysql ] && . /etc/default/mysql'
|
line: '[ -r /etc/default/mysql ] && . /etc/default/mysql'
|
||||||
backup: yes
|
backup: yes
|
||||||
|
tags:
|
||||||
|
- galera-config
|
||||||
|
|
||||||
# NOTE: (mancdaz) The target will need to change to /etc/default/mariadb
|
# NOTE: (mancdaz) The target will need to change to /etc/default/mariadb
|
||||||
# for mariadb-10.1
|
# for mariadb-10.1
|
||||||
@ -83,13 +86,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- galera-config
|
- galera-config
|
||||||
|
|
||||||
- name: Remove policy-rc
|
|
||||||
file:
|
|
||||||
path: "/usr/sbin/policy-rc.d"
|
|
||||||
state: absent
|
|
||||||
tags:
|
|
||||||
- galera-config
|
|
||||||
|
|
||||||
- include: galera_upgrade_post.yml
|
- include: galera_upgrade_post.yml
|
||||||
when:
|
when:
|
||||||
- galera_upgrade | bool
|
- galera_upgrade | bool
|
||||||
|
@ -13,93 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache
|
- name: Download the percona-xtrabackup package
|
||||||
#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged
|
|
||||||
#in 1.9.x or we move to 2.0 (if tested working)
|
|
||||||
- name: Check apt last update file
|
|
||||||
stat:
|
|
||||||
path: /var/cache/apt
|
|
||||||
register: apt_cache_stat
|
|
||||||
tags:
|
|
||||||
- galera-apt-packages
|
|
||||||
|
|
||||||
- name: Update apt if needed
|
|
||||||
apt:
|
|
||||||
update_cache: yes
|
|
||||||
when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}"
|
|
||||||
tags:
|
|
||||||
- galera-apt-packages
|
|
||||||
|
|
||||||
- name: Install galera pre packages
|
|
||||||
apt:
|
|
||||||
pkg: "{{ item }}"
|
|
||||||
state: latest
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items: "{{ galera_pre_apt_packages }}"
|
|
||||||
tags:
|
|
||||||
- galera-pre-apt-packages
|
|
||||||
|
|
||||||
- name: Add galera apt-keys
|
|
||||||
apt_key:
|
|
||||||
id: "{{ item.hash_id }}"
|
|
||||||
keyserver: "{{ item.keyserver | default(omit) }}"
|
|
||||||
data: "{{ item.data | default(omit) }}"
|
|
||||||
url: "{{ item.url | default(omit) }}"
|
|
||||||
state: "present"
|
|
||||||
register: add_keys
|
|
||||||
until: add_keys|success
|
|
||||||
ignore_errors: True
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items: "{{ galera_gpg_keys }}"
|
|
||||||
tags:
|
|
||||||
- galera-apt-keys
|
|
||||||
|
|
||||||
- name: Add galera apt-keys using fallback keyserver
|
|
||||||
apt_key:
|
|
||||||
id: "{{ item.hash_id }}"
|
|
||||||
keyserver: "{{ item.fallback_keyserver | default(omit) }}"
|
|
||||||
url: "{{ item.fallback_url | default(omit) }}"
|
|
||||||
state: "present"
|
|
||||||
register: add_keys_fallback
|
|
||||||
until: add_keys_fallback|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items: "{{ galera_gpg_keys }}"
|
|
||||||
when: add_keys|failed and (item.fallback_keyserver is defined or item.fallback_url is defined)
|
|
||||||
tags:
|
|
||||||
- galera-apt-keys
|
|
||||||
|
|
||||||
- name: Add galera repo
|
|
||||||
apt_repository:
|
|
||||||
repo: "{{ item.repo }}"
|
|
||||||
state: "{{ item.state }}"
|
|
||||||
register: add_repos
|
|
||||||
until: add_repos|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items:
|
|
||||||
- "{{ galera_apt_repo }}"
|
|
||||||
tags:
|
|
||||||
- galera-repos
|
|
||||||
|
|
||||||
- name: Add percona repo
|
|
||||||
apt_repository:
|
|
||||||
repo: "{{ item.repo }}"
|
|
||||||
state: "{{ item.state }}"
|
|
||||||
register: add_repos
|
|
||||||
until: add_repos|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items:
|
|
||||||
- "{{ galera_apt_percona_xtrabackup_repo }}"
|
|
||||||
tags:
|
|
||||||
- percona-repos
|
|
||||||
|
|
||||||
- name: Download the percona package
|
|
||||||
get_url:
|
get_url:
|
||||||
url: "{{ percona_package_url }}"
|
url: "{{ percona_package_url }}"
|
||||||
dest: "{{ percona_package_path }}"
|
dest: "{{ percona_package_path }}"
|
||||||
@ -110,17 +24,23 @@
|
|||||||
retries: 3
|
retries: 3
|
||||||
delay: 10
|
delay: 10
|
||||||
until: package_download|success
|
until: package_download|success
|
||||||
|
when: not use_percona_upstream | bool
|
||||||
tags:
|
tags:
|
||||||
- percona-apt-packages
|
- percona-apt-packages
|
||||||
|
|
||||||
- name: Prevent galera from starting on install
|
- name: Download the qpress package
|
||||||
copy:
|
get_url:
|
||||||
src: "policy-rc.d"
|
url: "{{ qpress_package_url }}"
|
||||||
dest: "/usr/sbin/policy-rc.d"
|
dest: "{{ qpress_package_path }}"
|
||||||
mode: "0755"
|
sha256sum: "{{ qpress_package_sha256 }}"
|
||||||
backup: yes
|
validate_certs: "{{ qpress_package_download_validate_certs }}"
|
||||||
|
register: package_download
|
||||||
|
retries: 3
|
||||||
|
delay: 10
|
||||||
|
until: package_download|success
|
||||||
|
when: not use_percona_upstream | bool
|
||||||
tags:
|
tags:
|
||||||
- galera-config
|
- percona-apt-packages
|
||||||
|
|
||||||
- name: Drop limits config
|
- name: Drop limits config
|
||||||
template:
|
template:
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
|
|
||||||
- name: Create galera users
|
- name: Create galera users
|
||||||
mysql_user:
|
mysql_user:
|
||||||
|
login_user: "{{ galera_root_user }}"
|
||||||
|
login_password: "{{ galera_root_password }}"
|
||||||
|
login_host: "127.0.0.1"
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
host: "{{ item.host }}"
|
host: "{{ item.host }}"
|
||||||
password: "{{ item.password }}"
|
password: "{{ item.password }}"
|
||||||
|
@ -13,40 +13,17 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
- name: Check major galera install version
|
- include: galera_upgrade_check_apt.yml
|
||||||
command: "dpkg -s {{ galera_mariadb_server_package }}"
|
|
||||||
ignore_errors: true
|
|
||||||
register: installed_galera_specific
|
|
||||||
when:
|
when:
|
||||||
- not galera_upgrade | bool
|
- ansible_pkg_mgr == 'apt'
|
||||||
tags:
|
tags:
|
||||||
- galera-package-deb
|
- install-apt
|
||||||
- galera-apt-packages
|
|
||||||
- galera-upgrade
|
|
||||||
|
|
||||||
- name: Check for any galera install version
|
- include: galera_upgrade_check_yum.yml
|
||||||
shell: |
|
|
||||||
dpkg --get-selections | grep mariadb-galera-server
|
|
||||||
ignore_errors: true
|
|
||||||
register: installed_galera_any
|
|
||||||
when:
|
when:
|
||||||
- not galera_upgrade | bool
|
- ansible_pkg_mgr == 'yum'
|
||||||
- installed_galera_specific.rc != 0
|
|
||||||
tags:
|
tags:
|
||||||
- galera-package-deb
|
- install-apt
|
||||||
- galera-apt-packages
|
|
||||||
- galera-upgrade
|
|
||||||
|
|
||||||
- name: Check if major version of Galera is installed
|
|
||||||
fail:
|
|
||||||
msg: "To install a new major version of mariadb-galera-server set '-e galera_upgrade=true'."
|
|
||||||
when:
|
|
||||||
- not galera_upgrade | bool
|
|
||||||
- installed_galera_specific.rc != 0 and installed_galera_any.rc == 0
|
|
||||||
tags:
|
|
||||||
- galera-package-deb
|
|
||||||
- galera-apt-packages
|
|
||||||
- galera-upgrade
|
|
||||||
|
|
||||||
- include: galera_upgrade_pre.yml
|
- include: galera_upgrade_pre.yml
|
||||||
when:
|
when:
|
||||||
|
51
tasks/galera_upgrade_check_apt.yml
Normal file
51
tasks/galera_upgrade_check_apt.yml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2016, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: Check major galera install version
|
||||||
|
command: "dpkg -s {{ galera_mariadb_apt_server_package }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: installed_galera_specific
|
||||||
|
when:
|
||||||
|
- not galera_upgrade | bool
|
||||||
|
tags:
|
||||||
|
- galera-package-deb
|
||||||
|
- galera-apt-packages
|
||||||
|
- galera-upgrade
|
||||||
|
- skip_ansible_lint
|
||||||
|
|
||||||
|
- name: Check for any galera install version
|
||||||
|
shell: |
|
||||||
|
dpkg --get-selections | grep mariadb-galera-server
|
||||||
|
ignore_errors: true
|
||||||
|
register: installed_galera_any
|
||||||
|
when:
|
||||||
|
- not galera_upgrade | bool
|
||||||
|
- installed_galera_specific.rc != 0
|
||||||
|
tags:
|
||||||
|
- galera-package-deb
|
||||||
|
- galera-apt-packages
|
||||||
|
- galera-upgrade
|
||||||
|
- skip_ansible_lint
|
||||||
|
|
||||||
|
- name: Check if major version of Galera is installed
|
||||||
|
fail:
|
||||||
|
msg: "To install a new major version of mariadb-galera-server set '-e galera_upgrade=true'."
|
||||||
|
when:
|
||||||
|
- not galera_upgrade | bool
|
||||||
|
- installed_galera_specific.rc != 0 and installed_galera_any.rc == 0
|
||||||
|
tags:
|
||||||
|
- galera-package-deb
|
||||||
|
- galera-apt-packages
|
||||||
|
- galera-upgrade
|
51
tasks/galera_upgrade_check_yum.yml
Normal file
51
tasks/galera_upgrade_check_yum.yml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2016, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: Check major galera install version
|
||||||
|
command: "rpm -qi '{{ galera_mariadb_yum_server_package }}'"
|
||||||
|
ignore_errors: true
|
||||||
|
register: installed_galera_specific
|
||||||
|
when:
|
||||||
|
- not galera_upgrade | bool
|
||||||
|
tags:
|
||||||
|
- galera-package-rpm
|
||||||
|
- galera-yum-packages
|
||||||
|
- galera-upgrade
|
||||||
|
- skip_ansible_lint
|
||||||
|
|
||||||
|
- name: Check for any galera install version
|
||||||
|
shell: |
|
||||||
|
rpm -qa | grep -i "{{ galera_mariadb_yum_server_package }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: installed_galera_any
|
||||||
|
when:
|
||||||
|
- not galera_upgrade | bool
|
||||||
|
- installed_galera_specific.rc != 0
|
||||||
|
tags:
|
||||||
|
- galera-package-rpm
|
||||||
|
- galera-yum-packages
|
||||||
|
- galera-upgrade
|
||||||
|
- skip_ansible_lint
|
||||||
|
|
||||||
|
- name: Check if major version of Galera is installed
|
||||||
|
fail:
|
||||||
|
msg: "To install a new major version of MariaDB-Galera-server set '-e galera_upgrade=true'."
|
||||||
|
when:
|
||||||
|
- not galera_upgrade | bool
|
||||||
|
- installed_galera_specific.rc != 0 and installed_galera_any.rc == 0
|
||||||
|
tags:
|
||||||
|
- galera-package-rpm
|
||||||
|
- galera-yum-packages
|
||||||
|
- galera-upgrade
|
@ -65,6 +65,7 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
when:
|
when:
|
||||||
- galera_upgrade | bool
|
- galera_upgrade | bool
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
tags:
|
tags:
|
||||||
- galera-upgrade
|
- galera-upgrade
|
||||||
- galera-apt-packages
|
- galera-apt-packages
|
||||||
@ -75,6 +76,7 @@
|
|||||||
state: absent
|
state: absent
|
||||||
when:
|
when:
|
||||||
- galera_upgrade | bool
|
- galera_upgrade | bool
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
tags:
|
tags:
|
||||||
- galera-upgrade
|
- galera-upgrade
|
||||||
- galera-apt-packages
|
- galera-apt-packages
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
with_first_found:
|
with_first_found:
|
||||||
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
||||||
- "{{ ansible_distribution | lower }}.yml"
|
- "{{ ansible_distribution | lower }}.yml"
|
||||||
|
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_version.split('.')[0] }}.yml"
|
||||||
- "{{ ansible_os_family | lower }}.yml"
|
- "{{ ansible_os_family | lower }}.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
- name: Create test containers
|
- name: Create test containers
|
||||||
hosts: all_containers
|
hosts: all_containers
|
||||||
connection: local
|
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
- name: Destroy test containers
|
- name: Destroy test containers
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
- name: Ensure apt cache is always refreshed
|
- name: Ensure apt cache is always refreshed
|
||||||
apt:
|
apt:
|
||||||
update_cache: yes
|
update_cache: yes
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
- name: Ensure root's new public ssh key is in authorized_keys
|
- name: Ensure root's new public ssh key is in authorized_keys
|
||||||
authorized_key:
|
authorized_key:
|
||||||
user: root
|
user: root
|
||||||
@ -30,20 +32,31 @@
|
|||||||
stat:
|
stat:
|
||||||
path: /etc/nodepool/provider
|
path: /etc/nodepool/provider
|
||||||
register: nodepool
|
register: nodepool
|
||||||
- name: Set the files to copy into the container cache for OpenStack-CI instances
|
- name: Set the files to copy into the container cache for OpenStack-CI instances (rhel)
|
||||||
|
set_fact:
|
||||||
|
lxc_container_cache_files:
|
||||||
|
- { src: '/etc/pip.conf', dest: '/etc/pip.conf' }
|
||||||
|
when:
|
||||||
|
- nodepool.stat.exists | bool
|
||||||
|
- ansible_pkg_mgr == 'yum'
|
||||||
|
- name: Set the files to copy into the container cache for OpenStack-CI instances (deb)
|
||||||
set_fact:
|
set_fact:
|
||||||
lxc_container_cache_files:
|
lxc_container_cache_files:
|
||||||
- { src: '/etc/pip.conf', dest: '/etc/pip.conf' }
|
- { src: '/etc/pip.conf', dest: '/etc/pip.conf' }
|
||||||
- { src: '/etc/apt/apt.conf.d/99unauthenticated', dest: '/etc/apt/apt.conf.d/99unauthenticated' }
|
- { src: '/etc/apt/apt.conf.d/99unauthenticated', dest: '/etc/apt/apt.conf.d/99unauthenticated' }
|
||||||
when: nodepool.stat.exists | bool
|
when:
|
||||||
|
- nodepool.stat.exists | bool
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
- name: Determine the existing Ubuntu repo configuration
|
- name: Determine the existing Ubuntu repo configuration
|
||||||
shell: 'awk "/^deb .*ubuntu\/? {{ ansible_distribution_release }} main/ {print \$2; exit}" /etc/apt/sources.list'
|
shell: 'awk "/^deb .*ubuntu\/? {{ ansible_distribution_release }} main/ {print \$2; exit}" /etc/apt/sources.list'
|
||||||
register: ubuntu_repo
|
register: ubuntu_repo
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
when: ansible_pkg_mgr == 'apt'
|
||||||
- name: Set apt repo facts based on discovered information
|
- name: Set apt repo facts based on discovered information
|
||||||
set_fact:
|
set_fact:
|
||||||
lxc_container_template_main_apt_repo: "{{ ubuntu_repo.stdout }}"
|
lxc_container_template_main_apt_repo: "{{ ubuntu_repo.stdout }}"
|
||||||
lxc_container_template_security_apt_rep: "{{ ubuntu_repo.stdout }}"
|
lxc_container_template_security_apt_rep: "{{ ubuntu_repo.stdout }}"
|
||||||
|
when: ansible_pkg_mgr == 'apt'
|
||||||
roles:
|
roles:
|
||||||
- role: "lxc_hosts"
|
- role: "lxc_hosts"
|
||||||
lxc_net_address: 10.100.100.1
|
lxc_net_address: 10.100.100.1
|
||||||
|
74
vars/redhat-7.yml
Normal file
74
vars/redhat-7.yml
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2016, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Galera GPG Keys
|
||||||
|
galera_gpg_keys:
|
||||||
|
- key_name: 'RPM-GPG-KEY-MariaDB'
|
||||||
|
keyserver: 'https://yum.mariadb.org'
|
||||||
|
fallback_keyserver: 'https://yum.mariadb.org'
|
||||||
|
|
||||||
|
galera_pre_packages:
|
||||||
|
- gnupg2
|
||||||
|
- libaio
|
||||||
|
- libstdc++
|
||||||
|
- libgcc
|
||||||
|
- libgcrypt
|
||||||
|
- MariaDB-client
|
||||||
|
- MariaDB-devel
|
||||||
|
|
||||||
|
# Validate SSL certificates when downloading the galera deb above
|
||||||
|
# May be set to "no" when proxy server is intercepting the certificates.
|
||||||
|
percona_package_download_validate_certs: "yes"
|
||||||
|
|
||||||
|
galera_mariadb_yum_server_package: "MariaDB-Galera-server"
|
||||||
|
|
||||||
|
galera_packages:
|
||||||
|
- which
|
||||||
|
- "{{ galera_mariadb_yum_server_package }}"
|
||||||
|
- MariaDB-shared
|
||||||
|
- percona-xtrabackup
|
||||||
|
- percona-toolkit
|
||||||
|
- rsync
|
||||||
|
- socat
|
||||||
|
|
||||||
|
galera_yum_repo_url: "http://yum.mariadb.org/10.0/centos/7/x86_64"
|
||||||
|
galera_repo:
|
||||||
|
state: "present"
|
||||||
|
name: MariaDB
|
||||||
|
description: "MariaDB Repo"
|
||||||
|
file: MariaDB
|
||||||
|
baseurl: "{{ galera_yum_repo_url }}"
|
||||||
|
gpgkey: "https://yum.mariadb.org/RPM-GPG-KEY-MariaDB"
|
||||||
|
|
||||||
|
galera_percona_xtrabackup_repo:
|
||||||
|
repo: "http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm"
|
||||||
|
state: "present"
|
||||||
|
|
||||||
|
percona_upstream_packages:
|
||||||
|
- qpress
|
||||||
|
- percona-xtrabackup
|
||||||
|
|
||||||
|
percona_package_download_validate_certs: "yes"
|
||||||
|
percona_package_url: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.13/binary/redhat/7/x86_64/percona-xtrabackup-22-2.2.13-1.el7.x86_64.rpm"
|
||||||
|
percona_package_sha256: "030585abb52b24a781641374fe7c4530518b176a10ed4eb75547803b6b1f60e4"
|
||||||
|
percona_package_path: "/opt/{{ percona_package_url | basename }}"
|
||||||
|
|
||||||
|
qpress_package_download_validate_certs: yes
|
||||||
|
qpress_package_url: https://repo.percona.com/centos/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm
|
||||||
|
qpress_package_sha256: "d6b6b7ca3a5ad4baea34975743106ac54ac746b3e6497d59bce55765d604b697"
|
||||||
|
qpress_package_path: "/opt/{{ qpress_package_url | basename }}"
|
||||||
|
|
||||||
|
use_percona_upstream: yes
|
||||||
|
using_mysql_init: yes
|
@ -13,6 +13,11 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
## APT Cache Options
|
||||||
|
cache_timeout: 600
|
||||||
|
|
||||||
|
galera_pinned_packages: [{ package: "*", release: MariaDB, priority: "1001" }]
|
||||||
|
|
||||||
# Galera GPG Keys
|
# Galera GPG Keys
|
||||||
galera_gpg_keys:
|
galera_gpg_keys:
|
||||||
- key_name: 'mariadb'
|
- key_name: 'mariadb'
|
||||||
@ -24,7 +29,7 @@ galera_gpg_keys:
|
|||||||
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
||||||
hash_id: '0x1c4cbdcdcd2efd2a'
|
hash_id: '0x1c4cbdcdcd2efd2a'
|
||||||
|
|
||||||
galera_pre_apt_packages:
|
galera_pre_packages:
|
||||||
- apt-transport-https
|
- apt-transport-https
|
||||||
- debconf-utils
|
- debconf-utils
|
||||||
- libaio1
|
- libaio1
|
||||||
@ -39,30 +44,54 @@ galera_pre_apt_packages:
|
|||||||
# The package name for mariaDB is set as a variable
|
# The package name for mariaDB is set as a variable
|
||||||
# so that it can be used in debconf later in the
|
# so that it can be used in debconf later in the
|
||||||
# "galera_common" role.
|
# "galera_common" role.
|
||||||
galera_mariadb_server_package: "mariadb-galera-server-10.0"
|
galera_mariadb_apt_server_package: "mariadb-galera-server-10.0"
|
||||||
|
|
||||||
# NB This is specifically galera_packages as these packages only get installed
|
# NB This is specifically galera_packages as these packages only get installed
|
||||||
# during the galera play - this is because of the preseed task and the service
|
# during the galera play - this is because of the preseed task and the service
|
||||||
# startup control used when installing mariadb-galera-server and galera.
|
# startup control used when installing mariadb-galera-server and galera.
|
||||||
galera_apt_packages:
|
galera_packages:
|
||||||
- mariadb-client
|
- mariadb-client
|
||||||
- "{{ galera_mariadb_server_package }}"
|
- "{{ galera_mariadb_apt_server_package }}"
|
||||||
- galera-3
|
- galera-3
|
||||||
- qpress
|
|
||||||
- rsync
|
- rsync
|
||||||
- socat
|
- socat
|
||||||
|
|
||||||
galera_debconf_items:
|
galera_debconf_items:
|
||||||
- question: "mysql-server/root_password"
|
- question: "mysql-server/root_password"
|
||||||
name: "{{ galera_mariadb_server_package }}"
|
name: "{{ galera_mariadb_apt_server_package }}"
|
||||||
value: "{{ galera_root_password }}"
|
value: "{{ galera_root_password }}"
|
||||||
vtype: "string"
|
vtype: "string"
|
||||||
- question: "mysql-server/root_password_again"
|
- question: "mysql-server/root_password_again"
|
||||||
name: "{{ galera_mariadb_server_package }}"
|
name: "{{ galera_mariadb_apt_server_package }}"
|
||||||
value: "{{ galera_root_password }}"
|
value: "{{ galera_root_password }}"
|
||||||
vtype: "string"
|
vtype: "string"
|
||||||
|
|
||||||
using_mysql_init: no
|
percona_upstream_packages:
|
||||||
|
- qpress
|
||||||
|
- percona-xtrabackup
|
||||||
|
|
||||||
|
# Validate SSL certificates when downloading the galera deb above
|
||||||
|
# May be set to "no" when proxy server is intercepting the certificates.
|
||||||
|
percona_package_download_validate_certs: "yes"
|
||||||
percona_package_url: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.13/binary/debian/trusty/x86_64/percona-xtrabackup-22_2.2.13-1.trusty_amd64.deb"
|
percona_package_url: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.13/binary/debian/trusty/x86_64/percona-xtrabackup-22_2.2.13-1.trusty_amd64.deb"
|
||||||
percona_package_sha256: "2f58eedefa905583f0650f77bb2b149139c4066c7fb690202124fe5c7ac83e9e"
|
percona_package_sha256: "2f58eedefa905583f0650f77bb2b149139c4066c7fb690202124fe5c7ac83e9e"
|
||||||
|
percona_package_path: "/opt/{{ percona_package_url | basename }}"
|
||||||
|
|
||||||
|
qpress_package_download_validate_certs: yes
|
||||||
|
qpress_package_url: https://repo.percona.com/apt/pool/main/q/qpress/qpress_11-1.trusty_amd64.deb
|
||||||
|
qpress_package_sha256: "21e2f4466a1dffd6281d01d0b29388e2a2f0f9c6ba9538b128c34af61b2a4e12"
|
||||||
|
qpress_package_path: "/opt/{{ qpress_package_url | basename }}"
|
||||||
|
|
||||||
|
# Repositories
|
||||||
|
galera_percona_xtrabackup_repo_url: "https://repo.percona.com/apt"
|
||||||
|
galera_percona_xtrabackup_repo:
|
||||||
|
repo: "deb {{ galera_percona_xtrabackup_repo_url }} {{ ansible_distribution_release }} main"
|
||||||
|
state: "present"
|
||||||
|
|
||||||
|
galera_apt_repo_url: "https://mirror.rackspace.com/mariadb/repo/10.0/ubuntu"
|
||||||
|
galera_repo:
|
||||||
|
repo: "deb {{ galera_apt_repo_url }} {{ ansible_distribution_release }} main"
|
||||||
|
state: "present"
|
||||||
|
|
||||||
|
use_percona_upstream: no
|
||||||
|
using_mysql_init: no
|
||||||
|
@ -13,6 +13,11 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
## APT Cache Options
|
||||||
|
cache_timeout: 600
|
||||||
|
|
||||||
|
galera_pinned_packages: [{ package: "*", release: MariaDB, priority: "1001" }]
|
||||||
|
|
||||||
# Galera GPG Keys
|
# Galera GPG Keys
|
||||||
galera_gpg_keys:
|
galera_gpg_keys:
|
||||||
- key_name: 'mariadb'
|
- key_name: 'mariadb'
|
||||||
@ -24,7 +29,7 @@ galera_gpg_keys:
|
|||||||
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
fallback_keyserver: 'hkp://p80.pool.sks-keyservers.net:80'
|
||||||
hash_id: '0x1c4cbdcdcd2efd2a'
|
hash_id: '0x1c4cbdcdcd2efd2a'
|
||||||
|
|
||||||
galera_pre_apt_packages:
|
galera_pre_packages:
|
||||||
- apt-transport-https
|
- apt-transport-https
|
||||||
- debconf-utils
|
- debconf-utils
|
||||||
- libaio1
|
- libaio1
|
||||||
@ -39,35 +44,57 @@ galera_pre_apt_packages:
|
|||||||
# The package name for mariaDB is set as a variable
|
# The package name for mariaDB is set as a variable
|
||||||
# so that it can be used in debconf later in the
|
# so that it can be used in debconf later in the
|
||||||
# "galera_common" role.
|
# "galera_common" role.
|
||||||
galera_mariadb_server_package: "mariadb-galera-server-10.0"
|
galera_mariadb_apt_server_package: "mariadb-galera-server-10.0"
|
||||||
|
|
||||||
# NB This is specifically galera_packages as these packages only get installed
|
# NB This is specifically galera_packages as these packages only get installed
|
||||||
# during the galera play - this is because of the preseed task and the service
|
# during the galera play - this is because of the preseed task and the service
|
||||||
# startup control used when installing mariadb-galera-server and galera.
|
# startup control used when installing mariadb-galera-server and galera.
|
||||||
galera_apt_packages:
|
galera_packages:
|
||||||
- mariadb-client
|
- mariadb-client
|
||||||
- "{{ galera_mariadb_server_package }}"
|
- "{{ galera_mariadb_apt_server_package }}"
|
||||||
- galera-3
|
- galera-3
|
||||||
- rsync
|
- rsync
|
||||||
- socat
|
- socat
|
||||||
- qpress
|
|
||||||
|
|
||||||
galera_debconf_items:
|
galera_debconf_items:
|
||||||
- question: "mysql-server/root_password"
|
- question: "mysql-server/root_password"
|
||||||
name: "{{ galera_mariadb_server_package }}"
|
name: "{{ galera_mariadb_apt_server_package }}"
|
||||||
value: "{{ galera_root_password }}"
|
value: "{{ galera_root_password }}"
|
||||||
vtype: "string"
|
vtype: "string"
|
||||||
- question: "mysql-server/root_password_again"
|
- question: "mysql-server/root_password_again"
|
||||||
name: "{{ galera_mariadb_server_package }}"
|
name: "{{ galera_mariadb_apt_server_package }}"
|
||||||
value: "{{ galera_root_password }}"
|
value: "{{ galera_root_password }}"
|
||||||
vtype: "string"
|
vtype: "string"
|
||||||
|
|
||||||
using_mysql_init: yes
|
percona_upstream_packages:
|
||||||
|
- qpress
|
||||||
|
- percona-xtrabackup
|
||||||
|
|
||||||
|
# Validate SSL certificates when downloading the galera deb above
|
||||||
|
# May be set to "no" when proxy server is intercepting the certificates.
|
||||||
|
percona_package_download_validate_certs: "yes"
|
||||||
percona_package_url: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.13/binary/debian/vivid/x86_64/percona-xtrabackup-22_2.2.13-1.vivid_amd64.deb"
|
percona_package_url: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.13/binary/debian/vivid/x86_64/percona-xtrabackup-22_2.2.13-1.vivid_amd64.deb"
|
||||||
percona_package_sha256: "3e3b15b2b261da004f7c4419ae427af9ec5707b40be1effe22a0142311c51856"
|
percona_package_sha256: "3e3b15b2b261da004f7c4419ae427af9ec5707b40be1effe22a0142311c51856"
|
||||||
|
percona_package_path: "/opt/{{ percona_package_url | basename }}"
|
||||||
|
|
||||||
|
#There is no package currently provided for Xenial, but vivid uses the
|
||||||
|
# same libraries and installs without issue.
|
||||||
|
qpress_package_download_validate_certs: yes
|
||||||
|
qpress_package_url: https://repo.percona.com/apt/pool/main/q/qpress/qpress_11-1.vivid_amd64.deb
|
||||||
|
qpress_package_sha256: "54c02ae825b5c08bfae0792b23390b1577d7a26cadfb321384377bde31465959"
|
||||||
|
qpress_package_path: "/opt/{{ qpress_package_url | basename }}"
|
||||||
|
|
||||||
|
# Repositories
|
||||||
# TODO: update this to xenial if the repo ever gets created.
|
# TODO: update this to xenial if the repo ever gets created.
|
||||||
galera_apt_percona_xtrabackup_repo:
|
galera_percona_xtrabackup_repo_url: "https://repo.percona.com/apt"
|
||||||
repo: "deb {{ galera_apt_percona_xtrabackup_url }} vivid main"
|
galera_percona_xtrabackup_repo:
|
||||||
|
repo: "deb {{ galera_percona_xtrabackup_repo_url }} {{ ansible_distribution_release }} main"
|
||||||
state: "present"
|
state: "present"
|
||||||
|
|
||||||
|
galera_apt_repo_url: "https://mirror.rackspace.com/mariadb/repo/10.0/ubuntu"
|
||||||
|
galera_repo:
|
||||||
|
repo: "deb {{ galera_apt_repo_url }} {{ ansible_distribution_release }} main"
|
||||||
|
state: "present"
|
||||||
|
|
||||||
|
use_percona_upstream: no
|
||||||
|
using_mysql_init: yes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user