72a1dfb4d7
Create a new variable called galera_cluster_members which is a list of the hosts that make up the galera cluster. Set the default value to groups['galera_all'] which is the group used by openstack-ansible to refer to the members of the cluster. Replace all other references to groups['galera_all'] with the new variable. This allows other consumers of this role to use their own group naming scheme. Add a new task to verify that current host is a member of galera_cluster_members. Add the var galera_client_drop_config_file=true to the role dependency galera_client, this is required because the default value for that var in the galera_client role is based on membership of the galera_all group. Modify the functional testing to override galera_cluster_members, this aims to prevent the return of any hard-coded role references. Change-Id: I59af07217114a001cbebaa95a651919d53c9ec21
94 lines
2.7 KiB
Django/Jinja
94 lines
2.7 KiB
Django/Jinja
{%- set all_calculated_max_connections = [] %}
|
|
{%- for galera_node in galera_cluster_members %}
|
|
{%- if all_calculated_max_connections.append(hostvars[galera_node]['ansible_processor_vcpus'] | default(2) * 100) %}
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
{%- set calculated_max_connections = all_calculated_max_connections|sort %}
|
|
|
|
# {{ ansible_managed }}
|
|
|
|
[client]
|
|
port = 3306
|
|
socket = /var/run/mysqld/mysqld.sock
|
|
|
|
|
|
[mysqld_safe]
|
|
socket = /var/run/mysqld/mysqld.sock
|
|
nice = 0
|
|
log_error = /var/log/mysql_logs/galera_server_error.log
|
|
|
|
|
|
[mysql]
|
|
default-character-set = utf8
|
|
|
|
|
|
[mysqld]
|
|
user = mysql
|
|
collation-server = utf8_unicode_ci
|
|
init-connect = 'SET NAMES utf8'
|
|
character-set-server = utf8
|
|
datadir = /var/lib/mysql
|
|
{% if galera_server_id is defined %}
|
|
server-id = {{ galera_server_id }}
|
|
{% endif %}
|
|
|
|
# LOGGING #
|
|
log-queries-not-using-indexes = {{ galera_unindexed_query_logging }}
|
|
slow-query-log = {{ galera_slow_query_logging }}
|
|
slow-query-log-file = /var/log/mysql_logs/mysql-slow.log
|
|
log_error = /var/log/mysql_logs/galera_server_error.log
|
|
log-bin = /var/lib/mysql/mariadb-bin
|
|
log-bin-index = /var/lib/mysql/mariadb-bin.index
|
|
expire-logs-days = 7
|
|
log_slave_updates = 1
|
|
|
|
# SAFETY #
|
|
max-allowed-packet = 16M
|
|
max-connect-errors = 1000000
|
|
|
|
# NOTE: The number of max connections is defined by ( host_vcpus * 100 ). This value
|
|
# is the lowest integer based on the ansible facts gathered from every galera node.
|
|
# Computing the connections value using the lowest denominator maintains cluster integrity
|
|
# by not attempting to over commit to a less capable machine.
|
|
# These are the computed max_connections based on cluster data {{ calculated_max_connections }}
|
|
max_connections = {{ galera_max_connections | default(calculated_max_connections[0]) }}
|
|
|
|
wait_timeout = {{ galera_wait_timeout }}
|
|
|
|
# CACHES AND LIMITS #
|
|
tmp-table-size = {{ galera_max_heap_table_size }}
|
|
max-heap-table-size = {{ galera_tmp_table_size }}
|
|
query-cache-type = 0
|
|
query-cache-size = 0M
|
|
thread-cache-size = 50
|
|
open-files-limit = {{ galera_file_limits }}
|
|
table-definition-cache = 4096
|
|
table-open-cache = 10240
|
|
|
|
# INNODB #
|
|
innodb-flush-method = O_DIRECT
|
|
innodb-log-file-size = {{ galera_innodb_log_file_size }}
|
|
innodb-flush-log-at-trx-commit = 1
|
|
innodb-file-per-table = 1
|
|
innodb-buffer-pool-size = {{ galera_innodb_buffer_pool_size }}
|
|
|
|
# Depending on number of cores and disk sub
|
|
innodb-read-io-threads = 4
|
|
innodb-write-io-threads = 4
|
|
innodb-doublewrite = 1
|
|
innodb-log-buffer-size = {{ galera_innodb_log_buffer_size }}
|
|
innodb-buffer-pool-instances = 8
|
|
innodb-log-files-in-group = 2
|
|
innodb-thread-concurrency = 64
|
|
|
|
# avoid statistics update when doing e.g show tables
|
|
innodb_stats_on_metadata = 0
|
|
|
|
[mysqldump]
|
|
quick
|
|
quote-names
|
|
max_allowed_packet = 16M
|
|
|
|
|
|
!includedir /etc/mysql/conf.d/
|