首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建两个集群而不是一个集群的galera puppet代码

创建两个集群而不是一个集群的galera puppet代码
EN

Stack Overflow用户
提问于 2020-05-31 06:21:15
回答 1查看 50关注 0票数 1

我有一个木偶代码,它应该创建一个包含两个节点的galera集群,但实际上它创建了两个集群,每个集群都有一个节点。

这两个节点的名称分别为testbox1和testbox2

以下是我的./hiera/role/testbox.yaml

代码语言:javascript
复制
---
classes:
  - '::galera'

selinux::mode: 'permissive'

yum::repos::enabled:
  - percona-x86_64
yum::repos:
  contrail-3.2.1-mitaka:
    enabled: 0

packages:
  - 'Percona-XtraDB-Cluster-shared-compat-57'
  - 'Percona-Server-selinux-56'

galera::configure_repo: false
galera::package_ensure: 'present'
galera::galera_package_ensure: 'absent'
galera::galera_package_name: 'Percona-XtraDB-Cluster-galera-3'
galera::client_package_name: 'Percona-XtraDB-Cluster-client-57'
galera::mysql_package_name: 'Percona-XtraDB-Cluster-server-57'
galera::bootstrap_command: 'systemctl start mysql@bootstrap.service'


galera::mysql_service_name: 'mysql'
mysql::server_service_name: 'mysql'
galera::service_enabled: true
galera::mysql_restart: true

galera::configure_firewall: false
mysql::server::purge_conf_dir: true
galera::purge_conf_dir: true

galera::grep_binary: '/bin/grep'
galera::mysql_binary: '/usr/bin/mysql'
galera::rundir: '/var/run/mysqld'
galera::socket: '/var/lib/mysql/mysql.sock'

galera::create_root_user: true
galera::create_root_my_cnf: true
galera::create_status_user: true
galera::status_check: true

galera::galera_servers: ['testbox-1', 'testbox-2']
galera::galera_master: 'testbox-1'
galera::status_password: 'bla'
galera::bind_address: '0.0.0.0'
galera::override_options:
  mysqld:
    pxc_strict_mode: 'ENFORCING'
    wsrep_provider: '/usr/lib64/galera3/libgalera_smm.so'
    wsrep_slave_threads: 8
    wsrep_sst_method: 'rsync'
    wsrep_cluster_name: 'grafana-galera-cluster'
    wsrep_node_address: "%{ipaddress}"
    wsrep_node_name: "%{hostname}"
    wsrep_sst_auth: "sstuser:%{hiera('galera::sstuser_password')}"
    binlog_format: 'ROW'
    default_storage_engine: 'InnoDB'
    innodb_locks_unsafe_for_binlog: 1
    innodb_autoinc_lock_mode: 2
    innodb_buffer_pool_size: '40000M'
    innodb_log_file_size: '100M'
    query_cache_size: 0
    query_cache_type: 0
    datadir: '/var/lib/mysql'
    socket: '/var/lib/mysql/mysql.sock'
    log-error: '/var/log/mysqld.log'
    pid-file: '/var/run/mysql/mysql.pid'
    max_connections: '10000'
    max_connect_errors: '10000000'
  mysqld_safe:
    log-error: '/var/log/mysqld.log'

galera::status_user: 'clustercheck'
galera::status_allow: '%'
galera::status_available_when_donor: 0
galera::status_available_when_readonly: -1
galera::status_host: 'localhost'
galera::status_log_on_success: ''
galera::status_log_on_success_operator: '='
galera::status_port: 9200

galera::validate::action: 'select count(1);'
galera::validate::catch: 'ERROR'
galera::validate::delay: 3
galera::validate::inv_catch: undef
galera::validate::retries: 20

我使用的是fraenki/galera模块

这段代码的问题是,我最终在一个集群中使用testbox1,在另一个集群中使用testbox2,而不是将它们都放在同一个集群中,在排除了与jira.percona.com/browse/PXC-2258相关的问题后,我发现puppet代码将创建没有wsrep_cluster_address值的wsrep.cnf,这将覆盖具有正确值的/etc/my.cnf.d/server.cnf。我知道如何通过删除wsrep.cnf手动修复这个问题,但我希望让Puppet在没有我手动修复的情况下做到这一点,但我不知道怎么做。

puppet版本3.8.7 (开源)(我无法升级它)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-31 09:41:27

mysql@bootstrap只需要在一个节点上执行。另一个节点进行正常启动,然后它将从第一个节点开始SST。

对于两个节点,您将很难获得仲裁,并且作为HA系统是不可行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62109336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档