{%- 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 |
{%- from "galera/map.jinja" import master with context %} | |||||
[client] | [client] | ||||
host = localhost | host = localhost | ||||
user = debian-sys-maint | user = debian-sys-maint | ||||
password = {{ pillar['mysql_config']['maintenance_password'] }} | |||||
password = {{ master.maintenance_password }} | |||||
socket = /var/run/mysqld/mysqld.sock | socket = /var/run/mysqld/mysqld.sock | ||||
[mysql_upgrade] | [mysql_upgrade] | ||||
host = localhost | host = localhost | ||||
user = debian-sys-maint | user = debian-sys-maint | ||||
password = {{ pillar['mysql_config']['maintenance_password'] }} | |||||
password = {{ master.maintenance_password }} | |||||
socket = /var/run/mysqld/mysqld.sock | socket = /var/run/mysqld/mysqld.sock | ||||
basedir = /usr | |||||
basedir = /usr |
{%- 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 |
-----BEGIN PGP PUBLIC KEY BLOCK----- | |||||
Version: GnuPG v1 | |||||
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 | |||||
=6f6Z | |||||
-----END PGP PUBLIC KEY BLOCK----- |
deb http://ftp.osuosl.org/pub/mariadb/repo/10.1/ubuntu trusty main |
{%- from "galera/map.jinja" import slave with context %} | {%- from "galera/map.jinja" import slave with context %} | ||||
{%- set service = slave %} | {%- set service = slave %} | ||||
{%- endif %} | {%- 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 | 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 | 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="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/ |
{%- from "galera/map.jinja" import slave with context %} | {%- from "galera/map.jinja" import slave with context %} | ||||
{%- set service = slave %} | {%- set service = slave %} | ||||
{%- endif %} | {%- 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 | 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] | [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/ | |||||
lower_case_table_names=0 | lower_case_table_names=0 | ||||
# 5.6 backwards compatibility | # 5.6 backwards compatibility | ||||
#explicit_defaults_for_timestamp=1 | #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. | # Desired SST donor name. | ||||
#wsrep_sst_donor= | #wsrep_sst_donor= |
#!/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 | |||||
{%- set master = salt['grains.filter_by']({ | {%- set master = salt['grains.filter_by']({ | ||||
'Debian': { | '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', | 'service': 'mysql', | ||||
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', | 'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', | ||||
'log_file': '/var/log/mysql.log', | 'log_file': '/var/log/mysql.log', | ||||
{%- set slave = salt['grains.filter_by']({ | {%- set slave = salt['grains.filter_by']({ | ||||
'Debian': { | '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', | 'service': 'mysql', | ||||
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', | 'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', | ||||
'log_file': '/var/log/mysql.log', | 'log_file': '/var/log/mysql.log', |
- pkg: galera_packages | - pkg: galera_packages | ||||
{%- endif %} | {%- 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' %} | {%- 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: | 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: | 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: | file.managed: | ||||
- name: {{ master.config }} | - name: {{ master.config }} | ||||
- source: salt://galera/files/my.cnf.bootstrap | - source: salt://galera/files/my.cnf.bootstrap | ||||
- mode: 644 | - mode: 644 | ||||
- template: jinja | - 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 | - pkg: galera_packages | ||||
- file: galera_init_script | |||||
galera_bootstrap_start_service: | galera_bootstrap_start_service: | ||||
cmd.run: | |||||
- name: /usr/local/sbin/galera_bootstrap.sh | |||||
service.running: | |||||
- name: mysql | |||||
- enable: True | |||||
- require: | - require: | ||||
- file: galera_bootstrap_temp_config | |||||
- file: galera_run_dir | |||||
- file: galera_bootstrap_script | |||||
- file: galera_bootstrap_config | |||||
galera_bootstrap_set_root_password: | galera_bootstrap_set_root_password: | ||||
cmd.run: | cmd.run: | ||||
- name: mysqladmin password "{{ master.admin.password }}" | - name: mysqladmin password "{{ master.admin.password }}" | ||||
- require: | - 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: | mysql_bootstrap_update_maint_password: | ||||
cmd.run: | cmd.run: | ||||
- require: | - require: | ||||
- cmd: galera_bootstrap_set_root_password | - 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: | 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 %} | {%- endif %} |
- pkg: galera_packages | - pkg: galera_packages | ||||
{%- endif %} | {%- 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: | - require: | ||||
- pkg: galera_packages | |||||
- file: mariadb_key | |||||
- file: mariadb_repo | |||||
{%- endif %} | {%- 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: | 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: | galera_bootstrap_set_root_password: | ||||
cmd.run: | cmd.run: | ||||
- name: mysqladmin password "{{ slave.admin.password }}" | - name: mysqladmin password "{{ slave.admin.password }}" | ||||
- require: | - 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: | mysql_bootstrap_update_maint_password: | ||||
cmd.run: | cmd.run: | ||||
- require: | - require: | ||||
- cmd: galera_bootstrap_set_root_password | - 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 %} | {%- endif %} |