galery.py文件内容

import pexpect
import os
import configparser HOSTNAME_DB1='db1'
HOSTNAME_DB2='db2'
HOSTNAME_DB3='db3' DB1 = '192.168.254.30'
DB2 = '192.168.254.31'
DB3 = '192.168.254.39'
PORT = 22
USERNAME = 'root'
PASSWORD = 'root'
#DB1
config = configparser.ConfigParser()
config.read("/etc/my.cnf.d/server.cnf", encoding="utf-8")
config.set('galera','wsrep_on','ON')
config.set('galera','wsrep_provider','/usr/lib64/galera/libgalera_smm.so')
config.set('galera','wsrep_cluster_address','"gcomm://%s,%s,%s"' % (DB1, DB2, DB3))
config.set('galera','wsrep_node_name','%s' % HOSTNAME_DB1 )
config.set('galera','wsrep_node_address','%s' % DB1)
config.set('galera','binlog_format','row')
config.set('galera','default_storage_engine','InnoDB')
config.set('galera','innodb_autoinc_lock_mode','2')
config.set('galera','wsrep_slave_threads','1')
config.set('galera','innodb_flush_log_at_trx_commit','1')
config.set('galera','innodb_buffer_pool_size','120M')
config.set('galera','wsrep_sst_method','rsync')
config.set('galera','wsrep_causal_reads','ON')
config.write(open('/etc/my.cnf.d/server.cnf','w'))
res = os.system('galera_new_cluster &>/dev/null')
if res == 0:
#cp server.cnf
child1 = pexpect.spawn('scp /etc/my.cnf.d/server.cnf %s@%s:/etc/my.cnf.d/server.cnf' % (USERNAME,DB2)
)
child1.expect('password:')
child1.sendline(PASSWORD)
child1.interact()
child1.close() child3 = pexpect.spawn('scp /etc/my.cnf.d/server.cnf %s@%s:/etc/my.cnf.d/server.cnf' % (USERNAME,DB3)
)
child3.expect('password:')
child3.sendline(PASSWORD)
child3.interact()
child3.close()
#connect DB2
child3 = pexpect.spawn('ssh %s@%s' % (USERNAME, DB2))
child3.expect('password:')
child3.sendline('root')
child3.expect('#')
child3.sendline('sed -i "s/wsrep_node_name = db1/wsrep_node_name = db2/g" /etc/my.cnf.d/server.cnf;se
d -i "s/wsrep_node_address = 192.168.254.30/wsrep_node_address = 192.168.254.31/g" /etc/my.cnf.d/server.c
nf')
child3.expect('#')
child3.sendline('systemctl restart mariadb > /dev/null')
child3.sendline('exit')
child3.interact()
child3.close() #connect DB3
child4 = pexpect.spawn('ssh %s@%s' % (USERNAME, DB3))
child4.expect('password:')
child4.sendline('root')
child4.expect('#')
child4.sendline('sed -i "s/wsrep_node_name = db1/wsrep_node_name = db3/g" /etc/my.cnf.d/server.cnf;se
d -i "s/wsrep_node_address = 192.168.254.30/wsrep_node_address = 192.168.254.39/g" /etc/my.cnf.d/server.c
nf')
child4.expect('#')
child4.sendline('systemctl restart mariadb > /dev/null')
child4.sendline('exit')
child4.interact()
child4.close()
print('galera集群配置完成')
else:
print('galera服务启动故障')

server_db2.conf

[server]

[mysqld]

[galera]
wsrep_on = ON
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://192.168.254.30,192.168.254.31,192.168.254.39"
wsrep_node_name = db2
wsrep_node_address = 192.168.254.31
binlog_format = row
default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2
wsrep_slave_threads = 1
innodb_flush_log_at_trx_commit = 1
innodb_buffer_pool_size = 120M
wsrep_sst_method = rsync
wsrep_causal_reads = ON [embedded] [mariadb] [mariadb-10.3]

python部署galery集群的更多相关文章

  1. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  2. python脚本实现集群检测和管理

    python脚本实现集群检测和管理 场景是这样的:一个生产机房,会有很多的测试机器和生产机器(也就是30台左右吧),由于管理较为混乱导致了哪台机器有人用.哪台机器没人用都不清楚,从而产生了一个想法-- ...

  3. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

  4. 部署TiDB集群

    架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ...

  5. [自动化]基于kolla-ceph的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  6. ceph-deploy离线部署ceph集群及报错解决FAQ

    ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...

  7. [自动化]基于kolla的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  8. 4. 利用MySQL Shell安装部署MGR集群 | 深入浅出MGR

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4 ...

  9. 在 Kubernetes 中部署 Redis 集群

    在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需 ...

随机推荐

  1. JS引擎线程的执行过程的三个阶段(二)

    继续JS引擎线程的执行过程的三个阶段(一) 内容, 如下: 三. 执行阶段 1. 网页的线程 永远只有JS引擎线程在执行JS脚本程序,其他三个线程只负责将满足触发条件的处理函数推进事件队列,等待JS引 ...

  2. [Redux] redux之combineReducers

    combineReducers combineReducer 是将众多的 reducer 合成通过键值映射的对象,并且返回一个 combination 函数传入到 createStore 中 合并后的 ...

  3. c# ?? 和?

    static void Main(string[] args)      {                  double? num1 = null; // ? 说明num1可以为空        ...

  4. Linux学习笔记之Python3的安装以及创建虚拟环境(CentOS)

    安装python3 一.安装需要编译的关联库 yum instal -y zlib zlib-devel (根据自己系统的情况,安装需要的关联库,同样用yum安装即可) yum install ope ...

  5. QT 自定义模态对话框

    新建一个MsgBox类 msgbox.h 代码 #ifndef MSGBOX_H #define MSGBOX_H #include <QDialog> #include <QPus ...

  6. 学JAVA的第二天,静态网站制作,脑阔一点疼

    先从下载apache-tomcat-9.0.17开始 在下边这个网站下载,下边一步步来 下面删除的这些是暂时用不上的,先吧它删除了,因为会拖慢启动速度 下边把ROOT里边除WEB-INF外的全不删除了 ...

  7. 做了面向互联网部署的Dynamics 365 CE更改AD FS的登录页面

    摘要: 微软动态CRM专家罗勇 ,回复306或者20190307可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 默认情况下A ...

  8. Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。

    Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥. #!/usr/bin/env python # -*- coding: utf- -*- import os im ...

  9. linux下可执行bin程序提示not found/no such file or directory/not executable

    我们经常在执行二进制bin程序时,会遇到提示not found/no such file or directory/not executable等错误信息,在什么情况下会出现这种问题呢,我们一起罗列下 ...

  10. geth搭建私有网络

    geth --rpc --unlock "3ae88fe370c39384fc16da2c9e768cf5d2495b48,81063419f13cab5ac090cd8329d8fff9f ...