@@ -1,18 +0,0 @@ | |||
{%- from "galera/map.jinja" import slave with context -%} | |||
#!/bin/bash | |||
service {{ slave.service }} start | |||
counter=70 | |||
while [ $counter -gt 0 ] | |||
do | |||
service {{ slave.service }} status | |||
if [[ $? -eq 0 ]]; then | |||
exit 0 | |||
fi | |||
counter=$(( $counter - 1 )) | |||
sleep 2 | |||
done | |||
exit 1 |
@@ -1,12 +1,13 @@ | |||
{%- from "galera/map.jinja" import master with context %} | |||
[client] | |||
host = localhost | |||
user = debian-sys-maint | |||
password = {{ pillar['mysql_config']['maintenance_password'] }} | |||
password = {{ master.maintenance_password }} | |||
socket = /var/run/mysqld/mysqld.sock | |||
[mysql_upgrade] | |||
host = localhost | |||
user = debian-sys-maint | |||
password = {{ pillar['mysql_config']['maintenance_password'] }} | |||
password = {{ master.maintenance_password }} | |||
socket = /var/run/mysqld/mysqld.sock | |||
basedir = /usr | |||
basedir = /usr |
@@ -0,0 +1,13 @@ | |||
{%- from "galera/map.jinja" import slave with context %} | |||
[client] | |||
host = localhost | |||
user = debian-sys-maint | |||
password = {{ slave.maintenance_password }} | |||
socket = /var/run/mysqld/mysqld.sock | |||
[mysql_upgrade] | |||
host = localhost | |||
user = debian-sys-maint | |||
password = {{ slave.maintenance_password }} | |||
socket = /var/run/mysqld/mysqld.sock | |||
basedir = /usr |
@@ -0,0 +1,340 @@ | |||
-----BEGIN PGP PUBLIC KEY BLOCK----- | |||
Version: GnuPG v1 | |||
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 | |||
=6f6Z | |||
-----END PGP PUBLIC KEY BLOCK----- |
@@ -0,0 +1 @@ | |||
deb http://ftp.osuosl.org/pub/mariadb/repo/10.1/ubuntu trusty main |
@@ -9,181 +9,208 @@ | |||
{%- from "galera/map.jinja" import slave with context %} | |||
{%- set service = slave %} | |||
{%- endif %} | |||
[MYSQLD] | |||
user=mysql | |||
basedir=/usr/ | |||
datadir=/var/lib/mysql | |||
socket={{ service.socket }} | |||
pid_file=mysqld.pid | |||
port=3306 | |||
log_error={{ service.log_file }} | |||
log_warnings=2 | |||
#log_output=FILE | |||
### INNODB OPTIONS | |||
innodb_buffer_pool_size=9211M | |||
innodb_flush_log_at_trx_commit=2 | |||
innodb_file_per_table=1 | |||
innodb_data_file_path = ibdata1:100M:autoextend | |||
## You may want to tune the below depending on number of cores and disk sub | |||
innodb_read_io_threads=4 | |||
innodb_write_io_threads=4 | |||
innodb_io_capacity=200 | |||
innodb_doublewrite=1 | |||
innodb_log_file_size=1024M | |||
innodb_log_buffer_size=96M | |||
innodb_buffer_pool_instances=8 | |||
innodb_log_files_in_group=2 | |||
innodb_thread_concurrency=64 | |||
#innodb_file_format=barracuda | |||
innodb_flush_method = O_DIRECT | |||
innodb_autoinc_lock_mode=2 | |||
## avoid statistics update when doing e.g show tables | |||
innodb_stats_on_metadata=0 | |||
default_storage_engine=innodb | |||
bind-address={{ service.bind.address }} | |||
# CHARACTER SET | |||
#collation_server = utf8_unicode_ci | |||
#init_connect='SET NAMES utf8' | |||
#{% set host1 = salt['pillar.get']('galera:master:members:host1') -%} | |||
# MariaDB database server configuration file. | |||
# | |||
# You can copy this file to one of: | |||
# - "/etc/mysql/my.cnf" to set global options, | |||
# - "~/.my.cnf" to set user-specific options. | |||
# | |||
# One can use all long options that the program supports. | |||
# Run program with --help to get a list of available options and with | |||
# --print-defaults to see which it would actually understand and use. | |||
# | |||
# For explanations see | |||
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html | |||
# This will be passed to all mysql clients | |||
# It has been reported that passwords should be enclosed with ticks/quotes | |||
# escpecially if they contain "#" chars... | |||
# Remember to edit /etc/mysql/debian.cnf when changing the socket location. | |||
[client] | |||
port = 3306 | |||
socket = /var/run/mysqld/mysqld.sock | |||
#character_set_server = utf8 | |||
# Here is entries for some specific programs | |||
# The following values assume you have at least 32M ram | |||
# This was formally known as [safe_mysqld]. Both versions are currently parsed. | |||
[mysqld_safe] | |||
socket = /var/run/mysqld/mysqld.sock | |||
nice = 0 | |||
[mysqld] | |||
# | |||
# * Basic Settings | |||
# | |||
user = mysql | |||
pid-file = /var/run/mysqld/mysqld.pid | |||
socket = /var/run/mysqld/mysqld.sock | |||
port = 3306 | |||
basedir = /usr | |||
datadir = /var/lib/mysql | |||
tmpdir = /tmp | |||
lc_messages_dir = /usr/share/mysql | |||
lc_messages = en_US | |||
skip-external-locking | |||
character_set_server = utf8 | |||
# REPLICATION SPECIFIC | |||
#server_id must be unique across all mysql servers participating in replication. | |||
#server_id=SERVERID | |||
skip-host-cache | |||
skip-name-resolve | |||
# | |||
# Instead of skip-networking the default is now to listen only on | |||
# localhost which is more compatible and is not less secure. | |||
# | |||
# * Fine Tuning | |||
# | |||
max_connections = 2000 | |||
connect_timeout = 5 | |||
wait_timeout = 600 | |||
max_allowed_packet = 16M | |||
thread_cache_size = 128 | |||
sort_buffer_size = 4M | |||
bulk_insert_buffer_size = 16M | |||
tmp_table_size = 320M | |||
max_heap_table_size = 320M | |||
# | |||
# * MyISAM | |||
# | |||
# This replaces the startup script and checks MyISAM tables if needed | |||
# the first time they are touched. On error, make copy and try a repair. | |||
myisam_recover = BACKUP | |||
key_buffer_size = 64K | |||
#open-files-limit = 2000 | |||
table_open_cache = 400 | |||
myisam_sort_buffer_size = 512M | |||
concurrent_insert = 2 | |||
read_buffer_size = 2M | |||
read_rnd_buffer_size = 1M | |||
# | |||
# * Query Cache Configuration | |||
# | |||
# Cache only tiny result sets, so we can fit more in the query cache. | |||
query_cache_limit = 128K | |||
query_cache_size = 0 | |||
# for more write intensive setups, set to DEMAND or OFF | |||
#query_cache_type = DEMAND | |||
# | |||
# * Logging and Replication | |||
# | |||
# Both location gets rotated by the cronjob. | |||
# Be aware that this log type is a performance killer. | |||
# As of 5.1 you can enable the log at runtime! | |||
#general_log_file = /var/log/mysql/mysql.log | |||
#general_log = 1 | |||
# | |||
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. | |||
# | |||
# we do want to know about network errors and such | |||
log_warnings = 2 | |||
# | |||
# Enable the slow query log to see queries with especially long duration | |||
slow_query_log=1 | |||
slow_query_log_file = /var/log/mysql/mariadb-slow.log | |||
long_query_time = 5 | |||
#log_slow_rate_limit = 1000 | |||
log_slow_verbosity = query_plan | |||
#log-queries-not-using-indexes | |||
#log_slow_admin_statements | |||
# | |||
# The following can be used as easy to replay backup logs or for replication. | |||
# note: if you are setting up a replication slave, see README.Debian about | |||
# other settings you may need to change. | |||
#server-id = 1 | |||
#report_host = master1 | |||
#auto_increment_increment = 2 | |||
#auto_increment_offset = 1 | |||
log_bin = /var/log/mysql/mariadb-bin | |||
log_bin_index = /var/log/mysql/mariadb-bin.index | |||
# not fab for performance, but safer | |||
#sync_binlog = 1 | |||
expire_logs_days = 10 | |||
max_binlog_size = 100M | |||
# slaves | |||
#relay_log = /var/log/mysql/relay-bin | |||
#relay_log_index = /var/log/mysql/relay-bin.index | |||
#relay_log_info_file = /var/log/mysql/relay-bin.info | |||
#log_slave_updates | |||
#read_only | |||
# | |||
# If applications support it, this stricter sql_mode prevents some | |||
# mistakes like inserting invalid dates etc. | |||
#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL | |||
# | |||
# * InnoDB | |||
# | |||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. | |||
# Read the manual for more InnoDB related options. There are many! | |||
default_storage_engine = InnoDB | |||
# you can't just change log file size, requires special procedure | |||
#innodb_log_file_size = 50M | |||
innodb_buffer_pool_size = 12G | |||
innodb_log_buffer_size = 8M | |||
innodb_file_per_table = 1 | |||
innodb_open_files = 400 | |||
innodb_io_capacity = 4000 | |||
innodb_flush_method = O_DIRECT | |||
# | |||
# * Security Features | |||
# | |||
# Read the manual, too, if you want chroot! | |||
# chroot = /var/lib/mysql/ | |||
# | |||
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". | |||
# | |||
# ssl-ca=/etc/mysql/cacert.pem | |||
# ssl-cert=/etc/mysql/server-cert.pem | |||
# ssl-key=/etc/mysql/server-key.pem | |||
# | |||
# * Galera-related settings | |||
# | |||
[galera] | |||
wsrep_on=ON | |||
wsrep_provider=/usr/lib/galera/libgalera_smm.so | |||
binlog_format=ROW | |||
#log_slave_updates=1 | |||
#log_bin=binlog | |||
#relay_log=relay-bin | |||
#expire_logs_days=7 | |||
#gtid_mode=ON | |||
#enforce_gtid_consistency=1 | |||
# OTHER THINGS, BUFFERS ETC | |||
key_buffer_size = 24M | |||
tmp_table_size = 64M | |||
max_heap_table_size = 64M | |||
max_allowed_packet = 512M | |||
#sort_buffer_size = 256K | |||
#read_buffer_size = 256K | |||
#read_rnd_buffer_size = 512K | |||
#myisam_sort_buffer_size = 8M | |||
skip_name_resolve | |||
memlock=0 | |||
sysdate_is_now=1 | |||
max_connections={{ service.get('max_connections', 20000) }} | |||
thread_cache_size=512 | |||
query_cache_type = 0 | |||
query_cache_size = 0 | |||
table_open_cache=1024 | |||
lower_case_table_names=0 | |||
# 5.6 backwards compatibility | |||
#explicit_defaults_for_timestamp=1 | |||
## | |||
## WSREP options | |||
## | |||
# Full path to wsrep provider library or 'none' | |||
wsrep_provider={{ service.wsrep_provider }} | |||
wsrep_node_address={{ service.bind.address }} | |||
# Provider specific configuration options | |||
default_storage_engine=InnoDB | |||
innodb_autoinc_lock_mode={{ service.get('innodb_autoinc_lock_mode', 2) }} | |||
innodb_doublewrite=1 | |||
query_cache_size=0 | |||
bind-address={{ service.bind.address }} | |||
#wsrep_cluster_address=gcomm:// | |||
wsrep_cluster_address=gcomm://{% for member in service.members %}{{ member.host}}{% if not loop.last %},{% endif %}{% endfor %}?pc.wait_prim=no | |||
wsrep_provider_options="gcache.size=8192M" | |||
#wsrep_provider_options="pc.bootstrap=true" | |||
# Mandatory settings | |||
#wsrep_provider= | |||
#wsrep_cluster_address= | |||
#binlog_format=row | |||
#default_storage_engine=InnoDB | |||
#innodb_autoinc_lock_mode=2 | |||
#bind-address=0.0.0.0 | |||
# | |||
# Optional setting | |||
#wsrep_slave_threads=1 | |||
innodb_flush_log_at_trx_commit={{ service.get('innodb_flush_log_at_trx_commit', 2) }} | |||
# Note Warning: Setting innodb_flush_log_at_trx_commit to 2 improves performance, it also introduces certain dangers. | |||
# Operating system crashes or power outages can erase the last second of transaction. Although normally you can recover this data from another node, | |||
# it can still be lost entirely in the event that the cluster goes down at the same time, (e.g. a data center power outage). | |||
character_set_server = utf8 | |||
[mysqldump] | |||
quick | |||
quote-names | |||
max_allowed_packet = 16M | |||
# Logical cluster name. Should be the same for all nodes. | |||
wsrep_cluster_name="my_wsrep_cluster" | |||
# Group communication system handle | |||
#wsrep_cluster_address=gcomm://10.0.0.3:4567,10.0.0.4:4567,10.0.0.2:4567 | |||
wsrep_cluster_address=gcomm://{% for member in service.members %}{{ member.host}}{% if not loop.last %},{% endif %}{% endfor %} | |||
# Human_readable node name (non-unique). Hostname by default. | |||
wsrep_node_name={{ service.bind.address }} | |||
# Address for incoming client connections. Autodetect by default. | |||
#wsrep_node_incoming_address= | |||
# How many threads will process writesets from other nodes | |||
wsrep_slave_threads=8 | |||
# DBUG options for wsrep provider | |||
#wsrep_dbug_option | |||
# Generate fake primary keys for non-PK tables (required for multi-master | |||
# and parallel applying operation) | |||
wsrep_certify_nonPK=1 | |||
# Location of the directory with data files. Needed for non-mysqldump | |||
# state snapshot transfers. Defaults to mysql_real_data_home. | |||
#wsrep_data_home_dir= | |||
# Maximum number of rows in write set | |||
wsrep_max_ws_rows=131072 | |||
# Maximum size of write set | |||
wsrep_max_ws_size=1073741824 | |||
# to enable debug level logging, set this to 1 | |||
wsrep_debug=0 | |||
# convert locking sessions into transactions | |||
wsrep_convert_LOCK_to_trx=0 | |||
# how many times to retry deadlocked autocommits | |||
wsrep_retry_autocommit=1 | |||
# change auto_increment_increment and auto_increment_offset automatically | |||
wsrep_auto_increment_control=1 | |||
# replicate myisam | |||
wsrep_replicate_myisam=1 | |||
# retry autoinc insert, which failed for duplicate key error | |||
wsrep_drupal_282555_workaround=0 | |||
# enable "strictly synchronous" semantics for read operations | |||
wsrep_causal_reads=0 | |||
# Command to call when node status or cluster membership changes. | |||
# Will be passed all or some of the following options: | |||
# --status - new status of this node | |||
# --uuid - UUID of the cluster | |||
# --primary - whether the component is primary or not ("yes"/"no") | |||
# --members - comma-separated list of members | |||
# --index - index of this node in the list | |||
#wsrep_notify_cmd= | |||
## | |||
## WSREP State Transfer options | |||
## | |||
# State Snapshot Transfer method | |||
# ClusterControl currently DOES NOT support wsrep_sst_method=mysqldump | |||
wsrep_sst_method=xtrabackup | |||
# Address on THIS node to receive SST at. DON'T SET IT TO DONOR ADDRESS!!! | |||
# (SST method dependent. Defaults to the first IP of the first interface) | |||
#wsrep_sst_receive_address= | |||
# SST authentication string. This will be used to send SST to joining nodes. | |||
# Depends on SST method. For mysqldump method it is root:<root password> | |||
wsrep_sst_auth={{ service.admin.user }}:{{ service.admin.password }} | |||
[mysql] | |||
#no-auto-rehash # faster start of mysql but no tab completition | |||
# Desired SST donor name. | |||
#wsrep_sst_donor= | |||
[isamchk] | |||
key_buffer = 16M | |||
# Protocol version to use | |||
# wsrep_protocol_version= | |||
[MYSQL] | |||
socket={{ service.socket }} | |||
#default_character_set=utf8 | |||
[client] | |||
socket={{ service.socket }} | |||
default_character_set=utf8 | |||
[mysqldump] | |||
max_allowed_packet = 512M | |||
socket={{ service.socket }} | |||
default_character_set=utf8 | |||
[MYSQLD_SAFE] | |||
pid_file=mysqld.pid | |||
log_error={{ service.log_file }} | |||
basedir=/usr/ | |||
datadir=/var/lib/mysql | |||
# | |||
# * IMPORTANT: Additional settings that can override those from this file! | |||
# The files must end with '.cnf', otherwise they'll be ignored. | |||
# | |||
!includedir /etc/mysql/conf.d/ |
@@ -9,94 +9,200 @@ | |||
{%- from "galera/map.jinja" import slave with context %} | |||
{%- set service = slave %} | |||
{%- endif %} | |||
[MYSQLD] | |||
user=mysql | |||
basedir=/usr/ | |||
datadir=/var/lib/mysql | |||
socket={{ service.socket }} | |||
pid_file=mysqld.pid | |||
port=3306 | |||
log_error={{ service.log_file }} | |||
log_warnings=2 | |||
#log_output=FILE | |||
### INNODB OPTIONS | |||
innodb_buffer_pool_size=9211M | |||
innodb_flush_log_at_trx_commit=2 | |||
innodb_file_per_table=1 | |||
innodb_data_file_path = ibdata1:100M:autoextend | |||
## You may want to tune the below depending on number of cores and disk sub | |||
innodb_read_io_threads=4 | |||
innodb_write_io_threads=4 | |||
innodb_io_capacity=200 | |||
innodb_doublewrite=1 | |||
innodb_log_file_size=1024M | |||
innodb_log_buffer_size=96M | |||
innodb_buffer_pool_instances=8 | |||
innodb_log_files_in_group=2 | |||
innodb_thread_concurrency=64 | |||
#innodb_file_format=barracuda | |||
innodb_flush_method = O_DIRECT | |||
innodb_autoinc_lock_mode=2 | |||
## avoid statistics update when doing e.g show tables | |||
innodb_stats_on_metadata=0 | |||
default_storage_engine=innodb | |||
# MariaDB database server configuration file. | |||
# | |||
# You can copy this file to one of: | |||
# - "/etc/mysql/my.cnf" to set global options, | |||
# - "~/.my.cnf" to set user-specific options. | |||
# | |||
# One can use all long options that the program supports. | |||
# Run program with --help to get a list of available options and with | |||
# --print-defaults to see which it would actually understand and use. | |||
# | |||
# For explanations see | |||
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html | |||
bind-address={{ service.bind.address }} | |||
# This will be passed to all mysql clients | |||
# It has been reported that passwords should be enclosed with ticks/quotes | |||
# escpecially if they contain "#" chars... | |||
# Remember to edit /etc/mysql/debian.cnf when changing the socket location. | |||
[client] | |||
port = 3306 | |||
socket = /var/run/mysqld/mysqld.sock | |||
#character_set_server = utf8 | |||
# CHARACTER SET | |||
#collation_server = utf8_unicode_ci | |||
#init_connect='SET NAMES utf8' | |||
# Here is entries for some specific programs | |||
# The following values assume you have at least 32M ram | |||
# This was formally known as [safe_mysqld]. Both versions are currently parsed. | |||
[mysqld_safe] | |||
socket = /var/run/mysqld/mysqld.sock | |||
nice = 0 | |||
[mysqld] | |||
# | |||
# * Basic Settings | |||
# | |||
user = mysql | |||
pid-file = /var/run/mysqld/mysqld.pid | |||
socket = /var/run/mysqld/mysqld.sock | |||
port = 3306 | |||
basedir = /usr | |||
datadir = /var/lib/mysql | |||
tmpdir = /tmp | |||
lc_messages_dir = /usr/share/mysql | |||
lc_messages = en_US | |||
skip-external-locking | |||
character_set_server = utf8 | |||
skip-host-cache | |||
skip-name-resolve | |||
# | |||
# Instead of skip-networking the default is now to listen only on | |||
# localhost which is more compatible and is not less secure. | |||
# | |||
# * Fine Tuning | |||
# | |||
max_connections = {{ service.get('max_connections', 20000) }} | |||
connect_timeout = 5 | |||
wait_timeout = 600 | |||
max_allowed_packet = 16M | |||
thread_cache_size = 128 | |||
sort_buffer_size = 4M | |||
bulk_insert_buffer_size = 16M | |||
tmp_table_size = 320M | |||
max_heap_table_size = 320M | |||
# | |||
# * MyISAM | |||
# | |||
# This replaces the startup script and checks MyISAM tables if needed | |||
# the first time they are touched. On error, make copy and try a repair. | |||
myisam_recover = BACKUP | |||
key_buffer_size = 64K | |||
#open-files-limit = 2000 | |||
table_open_cache = 400 | |||
myisam_sort_buffer_size = 512M | |||
concurrent_insert = 2 | |||
read_buffer_size = 2M | |||
read_rnd_buffer_size = 1M | |||
# | |||
# * Query Cache Configuration | |||
# | |||
# Cache only tiny result sets, so we can fit more in the query cache. | |||
query_cache_limit = 128K | |||
query_cache_size = 0 | |||
# for more write intensive setups, set to DEMAND or OFF | |||
#query_cache_type = DEMAND | |||
# | |||
# * Logging and Replication | |||
# | |||
# Both location gets rotated by the cronjob. | |||
# Be aware that this log type is a performance killer. | |||
# As of 5.1 you can enable the log at runtime! | |||
#general_log_file = /var/log/mysql/mysql.log | |||
#general_log = 1 | |||
# | |||
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. | |||
# | |||
# we do want to know about network errors and such | |||
log_warnings = 2 | |||
# | |||
# Enable the slow query log to see queries with especially long duration | |||
slow_query_log=1 | |||
slow_query_log_file = /var/log/mysql/mariadb-slow.log | |||
long_query_time = 5 | |||
#log_slow_rate_limit = 1000 | |||
log_slow_verbosity = query_plan | |||
# REPLICATION SPECIFIC | |||
#server_id must be unique across all mysql servers participating in replication. | |||
#server_id=SERVERID | |||
binlog_format=ROW | |||
#log_slave_updates=1 | |||
#log_bin=binlog | |||
#relay_log=relay-bin | |||
#expire_logs_days=7 | |||
#gtid_mode=ON | |||
#enforce_gtid_consistency=1 | |||
# OTHER THINGS, BUFFERS ETC | |||
key_buffer_size = 24M | |||
tmp_table_size = 64M | |||
max_heap_table_size = 64M | |||
max_allowed_packet = 512M | |||
#sort_buffer_size = 256K | |||
#read_buffer_size = 256K | |||
#read_rnd_buffer_size = 512K | |||
#myisam_sort_buffer_size = 8M | |||
skip_name_resolve | |||
memlock=0 | |||
sysdate_is_now=1 | |||
max_connections={{ service.get('max_connections', 20000) }} | |||
thread_cache_size=512 | |||
query_cache_type = 0 | |||
query_cache_size = 0 | |||
table_open_cache=1024 | |||
lower_case_table_names=0 | |||
# 5.6 backwards compatibility | |||
#explicit_defaults_for_timestamp=1 | |||
#log-queries-not-using-indexes | |||
#log_slow_admin_statements | |||
# | |||
# The following can be used as easy to replay backup logs or for replication. | |||
# note: if you are setting up a replication slave, see README.Debian about | |||
# other settings you may need to change. | |||
#server-id = 1 | |||
#report_host = master1 | |||
#auto_increment_increment = 2 | |||
#auto_increment_offset = 1 | |||
log_bin = /var/log/mysql/mariadb-bin | |||
log_bin_index = /var/log/mysql/mariadb-bin.index | |||
# not fab for performance, but safer | |||
#sync_binlog = 1 | |||
expire_logs_days = 10 | |||
max_binlog_size = 100M | |||
# slaves | |||
#relay_log = /var/log/mysql/relay-bin | |||
#relay_log_index = /var/log/mysql/relay-bin.index | |||
#relay_log_info_file = /var/log/mysql/relay-bin.info | |||
#log_slave_updates | |||
#read_only | |||
# | |||
# If applications support it, this stricter sql_mode prevents some | |||
# mistakes like inserting invalid dates etc. | |||
#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL | |||
# | |||
# * InnoDB | |||
# | |||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. | |||
# Read the manual for more InnoDB related options. There are many! | |||
default_storage_engine = InnoDB | |||
# you can't just change log file size, requires special procedure | |||
#innodb_log_file_size = 50M | |||
innodb_buffer_pool_size = 12G | |||
innodb_log_buffer_size = 8M | |||
innodb_file_per_table = 1 | |||
innodb_open_files = 4000 | |||
innodb_io_capacity = 400 | |||
innodb_flush_method = O_DIRECT | |||
# | |||
# * Security Features | |||
# | |||
# Read the manual, too, if you want chroot! | |||
# chroot = /var/lib/mysql/ | |||
# | |||
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". | |||
# | |||
# ssl-ca=/etc/mysql/cacert.pem | |||
# ssl-cert=/etc/mysql/server-cert.pem | |||
# ssl-key=/etc/mysql/server-key.pem | |||
# Desired SST donor name. | |||
#wsrep_sst_donor= | |||
# | |||
# * Galera-related settings | |||
# | |||
[galera] | |||
wsrep_on=ON | |||
wsrep_provider=/usr/lib/galera/libgalera_smm.so | |||
binlog_format=ROW | |||
default_storage_engine=InnoDB | |||
innodb_autoinc_lock_mode={{ service.get('innodb_autoinc_lock_mode', 2) }} | |||
innodb_doublewrite=1 | |||
query_cache_size=0 | |||
bind-address={{ service.bind.address }} | |||
wsrep_cluster_address=gcomm:// | |||
wsrep_provider_options="gcache.size=8192M" | |||
#wsrep_provider_options="pc.bootstrap=true" | |||
# | |||
# Optional setting | |||
#wsrep_slave_threads=1 | |||
innodb_flush_log_at_trx_commit={{ service.get('innodb_flush_log_at_trx_commit', 2) }} | |||
# Note Warning: Setting innodb_flush_log_at_trx_commit to 2 improves performance, it also introduces certain dangers. | |||
# Operating system crashes or power outages can erase the last second of transaction. Although normally you can recover this data from another node, | |||
# it can still be lost entirely in the event that the cluster goes down at the same time, (e.g. a data center power outage). | |||
character_set_server = utf8 | |||
# Protocol version to use | |||
# wsrep_protocol_version= | |||
[MYSQL] | |||
socket={{ service.socket }} | |||
#default_character_set=utf8 | |||
[client] | |||
socket={{ service.socket }} | |||
default_character_set=utf8 | |||
[mysqldump] | |||
max_allowed_packet = 512M | |||
socket={{ service.socket }} | |||
default_character_set=utf8 | |||
[MYSQLD_SAFE] | |||
pid_file=mysqld.pid | |||
log_error={{ service.log_file }} | |||
basedir=/usr/ | |||
datadir=/var/lib/mysql | |||
quick | |||
quote-names | |||
max_allowed_packet = 16M | |||
[mysql] | |||
#no-auto-rehash # faster start of mysql but no tab completition | |||
[isamchk] | |||
key_buffer = 16M | |||
# | |||
# * IMPORTANT: Additional settings that can override those from this file! | |||
# The files must end with '.cnf', otherwise they'll be ignored. | |||
# | |||
!includedir /etc/mysql/conf.d/ | |||
@@ -78,93 +78,7 @@ table_open_cache=1024 | |||
lower_case_table_names=0 | |||
# 5.6 backwards compatibility | |||
#explicit_defaults_for_timestamp=1 | |||
## | |||
## WSREP options | |||
## | |||
# Full path to wsrep provider library or 'none' | |||
wsrep_provider={{ service.wsrep_provider }} | |||
wsrep_node_address={{ service.bind.address }} | |||
# Provider specific configuration options | |||
wsrep_provider_options="gcache.size=8192M" | |||
# Logical cluster name. Should be the same for all nodes. | |||
wsrep_cluster_name="my_wsrep_cluster" | |||
# Group communication system handle | |||
wsrep_cluster_address=gcomm:// | |||
# Human_readable node name (non-unique). Hostname by default. | |||
wsrep_node_name={{ service.bind.address }} | |||
# Address for incoming client connections. Autodetect by default. | |||
#wsrep_node_incoming_address= | |||
# How many threads will process writesets from other nodes | |||
wsrep_slave_threads=8 | |||
# DBUG options for wsrep provider | |||
#wsrep_dbug_option | |||
# Generate fake primary keys for non-PK tables (required for multi-master | |||
# and parallel applying operation) | |||
wsrep_certify_nonPK=1 | |||
# Location of the directory with data files. Needed for non-mysqldump | |||
# state snapshot transfers. Defaults to mysql_real_data_home. | |||
#wsrep_data_home_dir= | |||
# Maximum number of rows in write set | |||
wsrep_max_ws_rows=131072 | |||
# Maximum size of write set | |||
wsrep_max_ws_size=1073741824 | |||
# to enable debug level logging, set this to 1 | |||
wsrep_debug=0 | |||
# convert locking sessions into transactions | |||
wsrep_convert_LOCK_to_trx=0 | |||
# how many times to retry deadlocked autocommits | |||
wsrep_retry_autocommit=1 | |||
# change auto_increment_increment and auto_increment_offset automatically | |||
wsrep_auto_increment_control=1 | |||
# replicate myisam | |||
wsrep_replicate_myisam=1 | |||
# retry autoinc insert, which failed for duplicate key error | |||
wsrep_drupal_282555_workaround=0 | |||
# enable "strictly synchronous" semantics for read operations | |||
wsrep_causal_reads=0 | |||
# Command to call when node status or cluster membership changes. | |||
# Will be passed all or some of the following options: | |||
# --status - new status of this node | |||
# --uuid - UUID of the cluster | |||
# --primary - whether the component is primary or not ("yes"/"no") | |||
# --members - comma-separated list of members | |||
# --index - index of this node in the list | |||
#wsrep_notify_cmd= | |||
## | |||
## WSREP State Transfer options | |||
## | |||
# State Snapshot Transfer method | |||
# ClusterControl currently DOES NOT support wsrep_sst_method=mysqldump | |||
wsrep_sst_method=xtrabackup | |||
# Address on THIS node to receive SST at. DON'T SET IT TO DONOR ADDRESS!!! | |||
# (SST method dependent. Defaults to the first IP of the first interface) | |||
#wsrep_sst_receive_address= | |||
# SST authentication string. This will be used to send SST to joining nodes. | |||
# Depends on SST method. For mysqldump method it is root:<root password> | |||
wsrep_sst_auth={{ service.admin.user }}:{{ service.admin.password }} | |||
# | |||
# Desired SST donor name. | |||
#wsrep_sst_donor= |
@@ -1,206 +0,0 @@ | |||
#!/bin/bash | |||
# | |||
### BEGIN INIT INFO | |||
# Provides: mysql | |||
# Required-Start: $remote_fs $syslog | |||
# Required-Stop: $remote_fs $syslog | |||
# Should-Start: $network $named $time | |||
# Should-Stop: $network $named $time | |||
# Default-Start: 2 3 4 5 | |||
# Default-Stop: 0 1 6 | |||
# Short-Description: Start and stop the mysql database server daemon | |||
# Description: Controls the main MySQL database server daemon "mysqld" | |||
# and its wrapper script "mysqld_safe". | |||
### END INIT INFO | |||
# | |||
set -e | |||
set -u | |||
${DEBIAN_SCRIPT_DEBUG:+ set -v -x} | |||
test -x /usr/sbin/mysqld || exit 0 | |||
. /lib/lsb/init-functions | |||
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0) | |||
CONF=/etc/mysql/my.cnf | |||
# MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" | |||
# priority can be overriden and "-s" adds output to stderr | |||
ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i" | |||
# Safeguard (relative paths, core dumps..) | |||
cd / | |||
umask 077 | |||
# mysqladmin likes to read /root/.my.cnf. This is usually not what I want | |||
# as many admins e.g. only store a password without a username there and | |||
# so break my scripts. | |||
export HOME=/etc/mysql/ | |||
## Fetch a particular option from mysql's invocation. | |||
# | |||
# Usage: void mysqld_get_param option | |||
mysqld_get_param() { | |||
/usr/sbin/mysqld --print-defaults \ | |||
| tr " " "\n" \ | |||
| grep -- "--$1" \ | |||
| tail -n 1 \ | |||
| cut -d= -f2 | |||
} | |||
# Determine parameters once per script invocation | |||
datadir=`mysqld_get_param datadir` | |||
[ -z "$datadir" ] && datadir="/var/lib/mysql" | |||
pidfile=`mysqld_get_param pid_file` | |||
#[ -z "$pidfile" ] && pidfile="$datadir/$(hostname).pid" | |||
#JPavlik tcp cloud fix for init script | |||
pidfile="/var/lib/mysql/mysqld.pid" | |||
## Do some sanity checks before even trying to start mysqld. | |||
sanity_checks() { | |||
# check for config file | |||
if [ ! -r /etc/mysql/my.cnf ]; then | |||
log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | |||
echo "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER | |||
fi | |||
# check for diskspace shortage | |||
if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then | |||
log_failure_msg "$0: ERROR: The partition with $datadir is too full!" | |||
echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER | |||
exit 1 | |||
fi | |||
} | |||
## Checks if there is a server running and if so if it is accessible. | |||
# | |||
# check_alive insists on a pingable server | |||
# check_dead also fails if there is a lost mysqld in the process list | |||
# | |||
# Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn] | |||
mysqld_status() { | |||
# ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? )) | |||
ps_alive=0 | |||
if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi | |||
if [ "$1" = "check_alive" -a $ps_alive = 1 ] || | |||
[ "$1" = "check_dead" -a $ps_alive = 0 ]; then | |||
return 0 # EXIT_SUCCESS | |||
else | |||
if [ "$2" = "warn" ]; then | |||
# echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug | |||
echo -e "$ps_alive processes alive\n" | $ERR_LOGGER -p daemon.debug | |||
fi | |||
return 1 # EXIT_FAILURE | |||
fi | |||
} | |||
# | |||
# main() | |||
# | |||
cmd=${1:-''} | |||
[ $# -ge 1 ] && shift | |||
other_args="$*" | |||
case "$cmd" in | |||
'start') | |||
sanity_checks; | |||
# Start daemon | |||
log_daemon_msg "Starting MySQL database server" "mysqld" | |||
if mysqld_status check_alive nowarn; then | |||
log_progress_msg "already running" | |||
log_end_msg 0 | |||
else | |||
# Could be removed during boot | |||
test -e /var/run/mysqld || install -m 755 -o mysql -g root -d /var/run/mysqld | |||
# Check for additional wsrep options | |||
WSREP_OPTS=${WSREP_OPTS:-""} | |||
WSREP_PROVIDER=${WSREP_PROVIDER:-""} | |||
WSREP_CLUSTER_ADDRESS=${WSREP_CLUSTER_ADDRESS:-""} | |||
test -n "$WSREP_PROVIDER" && \ | |||
WSREP_OPTS="$WSREP_OPTS --wsrep_provider=$WSREP_PROVIDER" | |||
test -n "$WSREP_CLUSTER_ADDRESS" && \ | |||
WSREP_OPTS="$WSREP_OPTS --wsrep_cluster_address=$WSREP_CLUSTER_ADDRESS" | |||
# Start MySQL!. | |||
/usr/bin/mysqld_safe $WSREP_OPTS $other_args > /dev/null 2>&1 & | |||
# 6s was reported in #352070 to be too few when using ndbcluster | |||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do | |||
sleep 1 | |||
if mysqld_status check_alive nowarn ; then break; fi | |||
log_progress_msg "." | |||
done | |||
if mysqld_status check_alive warn; then | |||
log_end_msg 0 | |||
# Now start mysqlcheck or whatever the admin wants. | |||
# output=$(/etc/mysql/debian-start) | |||
# [ -n "$output" ] && log_action_msg "$output" | |||
else | |||
log_end_msg 1 | |||
log_failure_msg "Please take a look at the syslog" | |||
fi | |||
fi | |||
;; | |||
'stop') | |||
# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible | |||
# at least for cron, we can rely on it here, too. (although we have | |||
# to specify it explicit as e.g. sudo environments points to the normal | |||
# users home and not /root) | |||
log_daemon_msg "Stopping MySQL database server" "mysqld" | |||
if ! mysqld_status check_dead nowarn; then | |||
log_daemon_msg "Killing MySQL database server by signal" "mysqld" | |||
pid=$(cat $pidfile || echo 0) | |||
if [ $pid -eq 0 ]; then | |||
log_failure_msg "Failed to get MySQL server pid" | |||
exit 1 | |||
fi | |||
kill -15 $pid | |||
server_down= | |||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do | |||
log_progress_msg "." | |||
sleep 1 | |||
if mysqld_status check_dead nowarn; then server_down=1; break; fi | |||
done | |||
fi | |||
if ! mysqld_status check_dead warn; then | |||
log_end_msg 1 | |||
log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.1/README.Debian.gz!" | |||
exit -1 | |||
else | |||
log_end_msg 0 | |||
fi | |||
;; | |||
'restart') | |||
set +e; $SELF stop; set -e | |||
$SELF start $other_args | |||
;; | |||
'reload'|'force-reload') | |||
log_daemon_msg "Reloading MySQL database server" "mysqld" | |||
$MYADMIN reload | |||
log_end_msg 0 | |||
;; | |||
'status') | |||
if mysqld_status check_alive nowarn; then | |||
# log_action_msg "$($MYADMIN version)" | |||
log_action_msg "MySQL is running (PID: $(cat $pidfile))" | |||
else | |||
log_action_msg "MySQL is stopped." | |||
exit 3 | |||
fi | |||
;; | |||
*) | |||
echo "Usage: $SELF start|stop|restart|reload|force-reload|status" | |||
exit 1 | |||
;; | |||
esac | |||
@@ -1,7 +1,7 @@ | |||
{%- set master = salt['grains.filter_by']({ | |||
'Debian': { | |||
'pkgs': ['mysql-server-wsrep', 'galera', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup-21', 'socat'], | |||
'pkgs': ['mariadb-server-10.1', 'galera-3', 'libmariadbclient18', 'libmysqlclient18', 'mariadb-client-10.1', 'mariadb-client-core-10.1', 'mariadb-common', 'mariadb-server-core-10.1', 'mysql-common', 'python-mysqldb'], | |||
'service': 'mysql', | |||
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', | |||
'log_file': '/var/log/mysql.log', | |||
@@ -21,7 +21,7 @@ | |||
{%- set slave = salt['grains.filter_by']({ | |||
'Debian': { | |||
'pkgs': ['mysql-server-wsrep', 'galera', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup-21', 'socat'], | |||
'pkgs': ['mariadb-server-10.1', 'galera-3', 'libmariadbclient18', 'libmysqlclient18', 'mariadb-client-10.1', 'mariadb-client-core-10.1', 'mariadb-common', 'mariadb-server-core-10.1', 'mysql-common', 'python-mysqldb'], | |||
'service': 'mysql', | |||
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', | |||
'log_file': '/var/log/mysql.log', |
@@ -21,71 +21,90 @@ xtrabackup_repo_fix: | |||
- pkg: galera_packages | |||
{%- endif %} | |||
galera_packages: | |||
pkg.installed: | |||
- names: {{ master.pkgs }} | |||
- refresh: true | |||
galera_log_dir: | |||
file.directory: | |||
- name: /var/log/mysql | |||
- makedirs: true | |||
- mode: 755 | |||
- require: | |||
- pkg: galera_packages | |||
{%- if grains.os_family == 'Debian' %} | |||
galera_run_dir: | |||
file.directory: | |||
- name: /var/run/mysqld | |||
- makedirs: true | |||
- mode: 755 | |||
- user: mysql | |||
- group: root | |||
- require: | |||
- pkg: galera_packages | |||
{%- endif %} | |||
galera_init_script: | |||
mariadb_repo: | |||
file.managed: | |||
- name: /etc/init.d/mysql | |||
- source: salt://galera/files/mysql | |||
- mode: 755 | |||
- require: | |||
- pkg: galera_packages | |||
- name: /etc/apt/sources.list.d/mariadb_10-1.list | |||
- source: salt://galera/files/mariadb.list | |||
galera_bootstrap_script: | |||
mariadb_key: | |||
file.managed: | |||
- name: /usr/local/sbin/galera_bootstrap.sh | |||
- mode: 755 | |||
- source: salt://galera/files/bootstrap.sh | |||
- template: jinja | |||
- name: /root/mariadb.key | |||
- source: salt://galera/files/mariadb.key | |||
- mode: 660 | |||
- unless: 'apt-key list | grep mariadb' | |||
{%- if salt['cmd.run']('test -e /var/lib/mysql/.galera_bootstrap; echo $?') != '0' %} | |||
install_mariadb_key: | |||
cmd.run: | |||
- name: 'cat /root/mariadb.key | apt-key add -' | |||
- require: | |||
- file: mariadb_key | |||
- file: mariadb_repo | |||
{%- endif %} | |||
galera_bootstrap_temp_config: | |||
mariadb_etc_dir: | |||
file.directory: | |||
- name: /etc/mysql | |||
- makedirs: true | |||
- mode: 755 | |||
mariadb-common-pkgs: | |||
pkg.installed: | |||
- names: | |||
- mariadb-common | |||
galera_bootstrap_config: | |||
file.managed: | |||
- name: {{ master.config }} | |||
- source: salt://galera/files/my.cnf.bootstrap | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- require: | |||
- pkg: mariadb-common-pkgs | |||
- file: mariadb_etc_dir | |||
- unless: 'mysql --user="root" --password="{{ salt['pillar.get']('galera:master:admin:password') }}" --database="mysql" --execute="show status" | grep wsrep_cluster_size | grep -E "2|3"' | |||
galera_debian_config: | |||
file.managed: | |||
- name: /etc/mysql/debian.cnf | |||
- source: salt://galera/files/debian.cnf | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- pkg: mariadb-common-pkgs | |||
galera_packages: | |||
pkg.installed: | |||
- names: {{ master.pkgs }} | |||
- refresh: true | |||
- require: | |||
- cmd: install_mariadb_key | |||
- file: galera_bootstrap_config | |||
- file: galera_debian_config | |||
galera_log_dir: | |||
file.directory: | |||
- name: /var/log/mysql | |||
- makedirs: true | |||
- mode: 755 | |||
- require: | |||
- pkg: galera_packages | |||
- file: galera_init_script | |||
galera_bootstrap_start_service: | |||
cmd.run: | |||
- name: /usr/local/sbin/galera_bootstrap.sh | |||
service.running: | |||
- name: mysql | |||
- enable: True | |||
- require: | |||
- file: galera_bootstrap_temp_config | |||
- file: galera_run_dir | |||
- file: galera_bootstrap_script | |||
- file: galera_bootstrap_config | |||
galera_bootstrap_set_root_password: | |||
cmd.run: | |||
- name: mysqladmin password "{{ master.admin.password }}" | |||
- require: | |||
- cmd: galera_bootstrap_start_service | |||
- service: galera_bootstrap_start_service | |||
- unless: 'mysql --user="root" --password="{{ salt['pillar.get']('galera:master:admin:password') }}" --database="mysql" --execute="show tables"' | |||
mysql_bootstrap_update_maint_password: | |||
cmd.run: | |||
@@ -93,51 +112,21 @@ mysql_bootstrap_update_maint_password: | |||
- require: | |||
- cmd: galera_bootstrap_set_root_password | |||
galera_bootstrap_stop_service: | |||
service.dead: | |||
- name: {{ master.service }} | |||
- require: | |||
- cmd: mysql_bootstrap_update_maint_password | |||
galera_bootstrap_init_config: | |||
file.managed: | |||
- name: {{ master.config }} | |||
- source: salt://galera/files/my.cnf.init | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- service: galera_bootstrap_stop_service | |||
galera_bootstrap_start_service_final: | |||
cmd.run: | |||
- name: /usr/local/sbin/galera_bootstrap.sh | |||
- require: | |||
- file: galera_bootstrap_init_config | |||
- file: galera_bootstrap_script | |||
galera_bootstrap_finish_flag: | |||
file.touch: | |||
- name: /var/lib/mysql/.galera_bootstrap | |||
- require: | |||
- cmd: galera_bootstrap_start_service_final | |||
- watch_in: | |||
- file: galera_config | |||
{%- endif %} | |||
galera_restart_bootstrap: | |||
service.running: | |||
- name: mysql | |||
- enable: True | |||
- watch: | |||
- file: galera_normal_config | |||
galera_config: | |||
galera_normal_config: | |||
file.managed: | |||
- name: {{ master.config }} | |||
- source: salt://galera/files/my.cnf | |||
- mode: 644 | |||
- template: jinja | |||
- require_in: | |||
- service: galera_service | |||
galera_service: | |||
service.running: | |||
- name: {{ master.service }} | |||
- enable: true | |||
- reload: true | |||
- name: /etc/mysql/my.cnf | |||
- source: salt://galera/files/my.cnf | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- pkg: galera_packages | |||
- onlyif: 'mysql --user="root" --password="{{ salt['pillar.get']('galera:master:admin:password') }}" --database="mysql" --execute="show status" | grep wsrep_cluster_size | grep -E "2|3"' | |||
{%- endif %} |
@@ -21,71 +21,85 @@ xtrabackup_repo_fix: | |||
- pkg: galera_packages | |||
{%- endif %} | |||
galera_packages: | |||
pkg.installed: | |||
- names: {{ slave.pkgs }} | |||
- refresh: true | |||
{%- if grains.os_family == 'Debian' %} | |||
mariadb_repo: | |||
file.managed: | |||
- name: /etc/apt/sources.list.d/mariadb_10-1.list | |||
- source: salt://galera/files/mariadb.list | |||
galera_log_dir: | |||
file.directory: | |||
- name: /var/log/mysql | |||
- makedirs: true | |||
- mode: 755 | |||
- require: | |||
- pkg: galera_packages | |||
mariadb_key: | |||
file.managed: | |||
- name: /root/mariadb.key | |||
- source: salt://galera/files/mariadb.key | |||
- mode: 660 | |||
{%- if grains.os_family == 'Debian' %} | |||
galera_run_dir: | |||
file.directory: | |||
- name: /var/run/mysqld | |||
- makedirs: true | |||
- mode: 755 | |||
- user: mysql | |||
- group: root | |||
install_mariadb_key: | |||
cmd.run: | |||
- name: 'cat /root/mariadb.key | apt-key add -' | |||
- require: | |||
- pkg: galera_packages | |||
- file: mariadb_key | |||
- file: mariadb_repo | |||
{%- endif %} | |||
galera_init_script: | |||
file.managed: | |||
- name: /etc/init.d/mysql | |||
- source: salt://galera/files/mysql | |||
- mode: 755 | |||
- require: | |||
- pkg: galera_packages | |||
mariadb_etc_dir: | |||
file.directory: | |||
- name: /etc/mysql | |||
- makedirs: true | |||
- mode: 755 | |||
galera_bootstrap_script: | |||
mariadb-common-pkgs: | |||
pkg.installed: | |||
- names: | |||
- mariadb-common | |||
galera_config: | |||
file.managed: | |||
- name: /usr/local/sbin/galera_bootstrap.sh | |||
- mode: 755 | |||
- source: salt://galera/files/bootstrap.sh | |||
- template: jinja | |||
- name: /etc/mysql/my.cnf | |||
- source: salt://galera/files/my.cnf | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- pkg: mariadb-common-pkgs | |||
galera_debian_config: | |||
file.managed: | |||
- name: /etc/mysql/debian.cnf | |||
- source: salt://galera/files/debian.cnf_slave | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- pkg: mariadb-common-pkgs | |||
{%- if salt['cmd.run']('test -e /var/lib/mysql/.galera_bootstrap; echo $?') != '0' %} | |||
galera_packages: | |||
pkg.installed: | |||
- names: {{ slave.pkgs }} | |||
- refresh: true | |||
- require: | |||
- cmd: install_mariadb_key | |||
- file: galera_config | |||
- file: galera_debian_config | |||
galera_bootstrap_temp_config: | |||
file.managed: | |||
- name: {{ slave.config }} | |||
- source: salt://galera/files/my.cnf.bootstrap | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- pkg: galera_packages | |||
- file: galera_init_script | |||
galera_log_dir: | |||
file.directory: | |||
- name: /var/log/mysql | |||
- makedirs: true | |||
- mode: 755 | |||
- require: | |||
- pkg: galera_packages | |||
galera_bootstrap_start_service: | |||
cmd.run: | |||
- name: /usr/local/sbin/galera_bootstrap.sh | |||
- require: | |||
- file: galera_bootstrap_temp_config | |||
- file: galera_run_dir | |||
- file: galera_bootstrap_script | |||
galera_start_service: | |||
service.running: | |||
- name: mysql | |||
- enable: True | |||
- require: | |||
- file: galera_config | |||
galera_bootstrap_set_root_password: | |||
cmd.run: | |||
- name: mysqladmin password "{{ slave.admin.password }}" | |||
- require: | |||
- cmd: galera_bootstrap_start_service | |||
- service: galera_start_service | |||
- unless: 'mysql --user="root" --password="{{ salt['pillar.get']('galera:slave:admin:password') }}" --database="mysql" --execute="show tables"' | |||
mysql_bootstrap_update_maint_password: | |||
cmd.run: | |||
@@ -93,51 +107,4 @@ mysql_bootstrap_update_maint_password: | |||
- require: | |||
- cmd: galera_bootstrap_set_root_password | |||
galera_bootstrap_stop_service: | |||
service.dead: | |||
- name: {{ slave.service }} | |||
- require: | |||
- cmd: mysql_bootstrap_update_maint_password | |||
galera_bootstrap_init_config: | |||
file.managed: | |||
- name: {{ slave.config }} | |||
- source: salt://galera/files/my.cnf | |||
- mode: 644 | |||
- template: jinja | |||
- require: | |||
- service: galera_bootstrap_stop_service | |||
galera_bootstrap_start_service_final: | |||
cmd.run: | |||
- name: /usr/local/sbin/galera_bootstrap.sh | |||
- require: | |||
- file: galera_bootstrap_init_config | |||
- file: galera_bootstrap_script | |||
galera_bootstrap_finish_flag: | |||
file.touch: | |||
- name: /var/lib/mysql/.galera_bootstrap | |||
- require: | |||
- cmd: galera_bootstrap_start_service_final | |||
- watch_in: | |||
- file: galera_config | |||
{%- endif %} | |||
galera_config: | |||
file.managed: | |||
- name: {{ slave.config }} | |||
- source: salt://galera/files/my.cnf | |||
- mode: 644 | |||
- template: jinja | |||
- require_in: | |||
- service: galera_service | |||
galera_service: | |||
service.running: | |||
- name: {{ slave.service }} | |||
- enable: true | |||
- reload: true | |||
{%- endif %} |