Cleanup mariadb and make compatiable with mesos
There is no reason to have a hostname-unique pidfile in the container as we currently have. This posed problems with kolla-mesos reusing the same script. Since there is no reason for this pidfile to be configurable in path _at_ _all_, we hardcode the path. Additionally, we adjust the file perm change to only update the perms on the folder if it is not already properly set. This also incorperates a kolla-ansible file in the bootstrap process which follows our other container techniques of using the idempotent creation of a volume in the bootstrap process (see nova) TrivialFix Related-Bug: #1538136 Change-Id: I2380529fc7146a9603145cdc31e649cb8841f7dd
This commit is contained in:
parent
42fc119658
commit
7e2ce01431
@ -11,20 +11,18 @@
|
|||||||
always_run: True
|
always_run: True
|
||||||
run_once: True
|
run_once: True
|
||||||
|
|
||||||
# TODO(SamYaple): Improve failed_when check
|
- name: Creating mariadb volume
|
||||||
- name: Checking if a previous cluster exists
|
kolla_docker:
|
||||||
command: docker exec mariadb stat /var/lib/mysql/grastate.dat
|
action: "create_volume"
|
||||||
register: exists
|
common_options: "{{ docker_common_options }}"
|
||||||
changed_when: False
|
name: "mariadb"
|
||||||
failed_when: False
|
register: mariadb_volume
|
||||||
always_run: True
|
|
||||||
run_once: True
|
|
||||||
|
|
||||||
- name: Writing hostname of host with existing cluster files to temp file
|
- name: Writing hostname of host with existing cluster files to temp file
|
||||||
local_action: copy content={{ ansible_hostname }} dest=/tmp/kolla_mariadb_cluster mode=0600
|
local_action: copy content={{ ansible_hostname }} dest=/tmp/kolla_mariadb_cluster mode=0600
|
||||||
changed_when: False
|
changed_when: False
|
||||||
always_run: True
|
always_run: True
|
||||||
when: exists.rc == 0
|
when: not mariadb_volume | changed
|
||||||
|
|
||||||
- name: Registering host from temp file
|
- name: Registering host from temp file
|
||||||
set_fact:
|
set_fact:
|
||||||
@ -44,7 +42,6 @@
|
|||||||
KOLLA_BOOTSTRAP:
|
KOLLA_BOOTSTRAP:
|
||||||
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
DB_ROOT_PASSWORD: "{{ database_password }}"
|
DB_ROOT_PASSWORD: "{{ database_password }}"
|
||||||
DB_PID_FILE: "/var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid"
|
|
||||||
DB_MAX_TIMEOUT: "{{ database_max_timeout }}"
|
DB_MAX_TIMEOUT: "{{ database_max_timeout }}"
|
||||||
image: "{{ mariadb_image_full }}"
|
image: "{{ mariadb_image_full }}"
|
||||||
name: "mariadb"
|
name: "mariadb"
|
||||||
@ -52,12 +49,16 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- "{{ node_config_directory }}/mariadb/:{{ container_config_directory }}/:ro"
|
- "{{ node_config_directory }}/mariadb/:{{ container_config_directory }}/:ro"
|
||||||
- "mariadb:/var/lib/mysql"
|
- "mariadb:/var/lib/mysql"
|
||||||
when: delegate_host == 'None' and inventory_hostname == groups['mariadb'][0]
|
when:
|
||||||
|
- delegate_host == 'None'
|
||||||
|
- inventory_hostname == groups['mariadb'][0]
|
||||||
|
|
||||||
- name: Waiting for MariaDB service to be ready
|
- name: Waiting for MariaDB service to be ready
|
||||||
command: "docker exec mariadb ls /var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid /var/lib/mysql/cluster.exists"
|
command: "docker exec mariadb ls /var/lib/mysql/mariadb.pid"
|
||||||
register: bootstrap_result
|
register: bootstrap_result
|
||||||
when: delegate_host == 'None' and inventory_hostname == groups['mariadb'][0]
|
when:
|
||||||
|
- delegate_host == 'None'
|
||||||
|
- inventory_hostname == groups['mariadb'][0]
|
||||||
until: bootstrap_result | success
|
until: bootstrap_result | success
|
||||||
changed_when: False
|
changed_when: False
|
||||||
retries: 6
|
retries: 6
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] )
|
( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] )
|
||||||
|
|
||||||
- name: Waiting for MariaDB service to be ready
|
- name: Waiting for MariaDB service to be ready
|
||||||
command: "docker exec mariadb ls /var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid"
|
command: "docker exec mariadb ls /var/lib/mysql/mariadb.pid"
|
||||||
register: bootstrap_result
|
register: bootstrap_result
|
||||||
when: delegate_host != 'None' or
|
when: delegate_host != 'None' or
|
||||||
( groups['mariadb'] | length ) == 1 or
|
( groups['mariadb'] | length ) == 1 or
|
||||||
|
@ -26,4 +26,4 @@ wsrep_slave_threads=4
|
|||||||
max_connections=1000
|
max_connections=1000
|
||||||
|
|
||||||
[server]
|
[server]
|
||||||
pid-file=/var/lib/mysql/{{ ansible_hostname }}-galera.pid
|
pid-file=/var/lib/mysql/mariadb.pid
|
||||||
|
@ -4,7 +4,7 @@ function bootstrap_db {
|
|||||||
mysqld_safe --wsrep-new-cluster &
|
mysqld_safe --wsrep-new-cluster &
|
||||||
# Wait for the mariadb server to be "Ready" before starting the security reset with a max timeout
|
# Wait for the mariadb server to be "Ready" before starting the security reset with a max timeout
|
||||||
TIMEOUT=${DB_MAX_TIMEOUT:-60}
|
TIMEOUT=${DB_MAX_TIMEOUT:-60}
|
||||||
while [ ! -f ${DB_PID_FILE} ]; do
|
while [[ ! -f /var/lib/mysql/mariadb.pid ]]; do
|
||||||
if [[ ${TIMEOUT} -gt 0 ]]; then
|
if [[ ${TIMEOUT} -gt 0 ]]; then
|
||||||
let TIMEOUT-=1
|
let TIMEOUT-=1
|
||||||
sleep 1
|
sleep 1
|
||||||
@ -18,7 +18,10 @@ function bootstrap_db {
|
|||||||
mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" shutdown
|
mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" shutdown
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Only update permissions if permissions need to be updated
|
||||||
|
if [[ $(stat -c %U:%G /var/lib/mysql) != "mysql:mysql" ]]; then
|
||||||
sudo chown mysql: /var/lib/mysql
|
sudo chown mysql: /var/lib/mysql
|
||||||
|
fi
|
||||||
|
|
||||||
# This catches all cases of the BOOTSTRAP variable being set, including empty
|
# This catches all cases of the BOOTSTRAP variable being set, including empty
|
||||||
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]] && [[ ! -e /var/lib/mysql/cluster.exists ]]; then
|
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]] && [[ ! -e /var/lib/mysql/cluster.exists ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user