--- # Copyright 2014, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Set the package install state for distribution packages # Options are 'present' and 'latest' galera_server_package_state: "latest" galera_cluster_members: "{{ groups['galera_all'] }}" galera_server_bootstrap_node: "{{ galera_cluster_members[0] }}" galera_ignore_cluster_state: false galera_upgrade: false galera_force_bootstrap: false galera_wsrep_node_name: "{{ inventory_hostname }}" galera_cluster_name: openstack_galera_cluster # The galera server-id should be set on all cluster nodes to ensure # that replication is handled correctly and the error # "Warning: You should set server-id to a non-0 value if master_host is # set; we will force server id to 2, but this MySQL server will not act # as a slave." is no longer present. # galera_server_id: 0 # These are here to stub out the internal ROLE API. # if these are used they should be set within the # distro specific variable files found in vars/ galera_debconf_items: [] galera_mariadb_service_name: mariadb galera_mariadb_server_package: "{{ _galera_mariadb_server_package }}" # The major version used to select the repo URL path galera_major_version: 10.3 galera_minor_version: 18 # Set the URL for the MariaDB repository galera_repo_host: "downloads.mariadb.com" galera_repo_url: "{{ _galera_repo_url }}" # Set the repo information for the MariaDB repository galera_repo: "{{ _galera_repo }}" # Set the gpg keys needed to be imported # This should be a list of dicts, with each dict # giving a set of arguments to the applicable # package module. The following is an example for # systems using the apt package manager. # galera_gpg_keys: # - id: '0xF1656F24C74CD1D8' # keyserver: 'hkp://keyserver.ubuntu.com:80' # validate_certs: no galera_gpg_keys: "{{ _galera_gpg_keys | default([]) }}" galera_monitoring_user: monitoring galera_monitoring_user_password: "" # WARNING: Set this to open xinetd rules for galera monitoring. # This is REQUIRED to run a working openstack-ansible deployment. # If it's undefined the galera cluster state can't be reported, # and haproxy would fail to do proper load balancing on the cluster. # Because this opens connections to the cluster status, this # should be restricted, which we do in the integrated build. # Please override accordingly to your use case. # This can be replaced with other hostnames, cidr, ips, and ips + wildcards. # #galera_monitoring_allowed_source: "0.0.0.0/0" # Enable or disable the galera monitoring check capability galera_monitoring_check_enabled: true # Set the monitoring port used with the galera monitoring check. galera_monitoring_check_port: 9200 galera_root_user: root # WARNING: This option is deprecated and will be removed in v12.0 galera_gcache_size: 1024M galera_max_heap_table_size: 32M galera_tmp_table_size: 32M galera_file_limits: 65535 galera_wait_timeout: 3600 # Increase this value if large SST transfers cause mysql startup to fail due # to timeout galera_startup_timeout: 1800 ## innodb options galera_innodb_buffer_pool_size: 4096M galera_innodb_log_file_size: 1024M galera_innodb_log_buffer_size: 128M ## wsrep configuration galera_wsrep_address: "{{ ansible_host }}" galera_wsrep_address_port: "{{ galera_wsrep_address }}:3306" galera_wsrep_cluster_address: >- {% set _var = [] -%} {% for cluster_host in galera_cluster_members -%} {% set _addr = hostvars[cluster_host]['galera_wsrep_address'] | default(hostvars[cluster_host]['ansible_host']) -%} {% if _var.append(_addr) %}{% endif -%} {% endfor -%} {# If only 1 cluster member is present output an empty string so the single-node member will re-bootstrap correctly upon restart #} {{ _var | join(',') if galera_cluster_members | length > 1 else '' }} galera_wsrep_node_incoming_address: "{{ galera_wsrep_address }}" ## Cap the maximum number of threads / workers when a user value is unspecified. galera_wsrep_slave_threads_max: 16 galera_wsrep_slave_threads: "{{ [[ansible_processor_vcpus|default(2), 2] | max, galera_wsrep_slave_threads_max] | min }}" galera_wsrep_retry_autocommit: 3 galera_wsrep_debug: 0 galera_wsrep_sst_method: mariabackup galera_wsrep_provider_options: - { option: "gcache.size", value: "{{ galera_gcache_size }}" } galera_wsrep_sst_auth_user: "root" galera_wsrep_sst_auth_password: "{{ galera_root_password }}" # mariabackup parallel/sync threads galera_mariabackup_threads: 4 # Galera slow/unindexed query logging galera_slow_query_logging: 0 galera_unindexed_query_logging: 0 ## Tunable overrides galera_my_cnf_overrides: {} galera_cluster_cnf_overrides: {} galera_debian_cnf_overrides: {} # Set the max connections value for galera. Set this value to override the # computed value which is (100 x vCPUs) with a cap of 1600. If computed, the # lowest value throughout the cluster will be used which is something to note # if deploying galera on different hardware. # galera_max_connections: 500 # This is only applied if the ansible_pkg_mgr is 'apt' galera_server_distro_package_pins: - package: '*' release: MariaDB priority: 1001 # Galera Server SSL functionality. galera_use_ssl: false galera_ssl_cert: /etc/ssl/certs/galera.pem galera_ssl_key: /etc/mysql/ssl/galera.key galera_ssl_ca_cert: /etc/ssl/certs/galera-ca.pem ## These options should be specified in user_variables if necessary, otherwise self-signed certs are used. # galera_user_ssl_cert: /etc/openstack_deploy/self_signed_certs/galera.pem # galera_user_ssl_key: /etc/openstack_deploy/self_signed_certs/galera.key # galera_user_ssl_ca_cert: /etc/openstack_deploy/self_signed_certs/galera-ca.pem ## Set galera_ssl_self_signed_regen to true if you want to generate a new # SSL certificate for Galera when this playbook runs. You can also change # the subject of the self-signed certificate here if you prefer. galera_ssl_self_signed_regen: false galera_ssl_self_signed_subject: "/C=US/ST=Texas/L=San Antonio/O=IT/CN={{ galera_address }}" galera_ssl_ca_self_signed_subject: "/C=US/ST=Texas/L=San Antonio/O=IT" # This option is used for creating the CA and overriding the Galera address on the clients side. # Should be set to either public VIP of VIP FQDN, depending on what is currently used in the env. galera_address: "{{ ansible_host }}" # MariaDB 10.1+ ships with 'PrivateDevices=True' in the systemd unit file. This # provides some additional security, but it causes problems with systemd 219. # While the security enhancements are helpful on bare metal hosts with multiple # services running, they are not as helpful when MariaDB is running in a # container with its own isolated namespaces. # # Related bugs: # https://bugs.launchpad.net/openstack-ansible/+bug/1697531 # https://github.com/lxc/lxc/issues/1623 # https://github.com/systemd/systemd/issues/6121 # # Setting the following variable to 'yes' will disable the PrivateDevices galera_disable_privatedevices: "{{ _galera_disable_privatedevices }}" ## Set default mirror for openSUSE repositories # NOTE(hwoarang): Ensure that the full path to the 'opensuse' directory is used. #galera_server_opensuse_mirror_obs_url: "http://widehat.opensuse.org" # Where the extra package download is executed from. # Options are ['deployment-host', 'target-host'] galera_server_extra_package_downloader: "deployment-host" # The location where the extra packages are downloaded to galera_server_extra_package_path: "/opt/cache/files" # Toggle whether certificate validation should be enabled/disabled galera_server_extra_package_validate_certs: yes