python部署galery集群
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集群的更多相关文章
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- python脚本实现集群检测和管理
python脚本实现集群检测和管理 场景是这样的:一个生产机房,会有很多的测试机器和生产机器(也就是30台左右吧),由于管理较为混乱导致了哪台机器有人用.哪台机器没人用都不清楚,从而产生了一个想法-- ...
- supervisor的安装部署及集群管理
supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...
- 部署TiDB集群
架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ...
- [自动化]基于kolla-ceph的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
- ceph-deploy离线部署ceph集群及报错解决FAQ
ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...
- [自动化]基于kolla的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
- 4. 利用MySQL Shell安装部署MGR集群 | 深入浅出MGR
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4 ...
- 在 Kubernetes 中部署 Redis 集群
在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需 ...
随机推荐
- HTTP与HTTPS的理解
最近一直也在面试的过程中,可能由于各个方面的问题,导致没有时间抽出更新博客,今天开始陆续更新!!!以后自己的博客,会向React Native,swift ,以及H5延展,成为一个全栈的技术人员.本篇 ...
- .net 用ajaxFileUpload 上传超过20M文件设置
1.在web.config的 <system.web> 节点里面添加 <httpRuntime targetFramework="4.5.2" execu ...
- localhost和127.0.01 区别
笔者最近调试程序时遇到的一个问题,localhost不能访问但127.0.0.1可以访问. 一.原理 我估计大多数人都不会去想localhost到底与127.0.0.1有什么不同,就比如我,有时候用h ...
- es6 常用方法
来自 https://www.cnblogs.com/lhl66/p/9555903.html 侵删 来自 https://www.cnblogs.com/lhl66/p/8862106.html 侵 ...
- 企业信息化-Excel快速生成系统
企业信息化,主要是指对企业生产运营过程所形成的信息数字化,最终形成了数字资产.大型企业为了节约成本,提高协同工作效率,都会定制ERP.办公OA.流程审批等系统做信息化支撑.但是中小企业精力投入到生成中 ...
- Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示
用Grafana Variables变量配置快速切换不同主机的图表数据展示 by:授客 QQ:1033553122 测试环境 需求描述 操作步骤 结果展示 测试环境 influxdb-1.5.2. ...
- Android 通过反射获取DatePicker 中的控件,并改变其颜色
到最后也只是成功改变了中间部分的颜色. private void setDatePickerDividerColor(DatePicker datePicker) { // Divider chang ...
- spring学习总结——装配Bean学习二(JavaConfig装配bean)
通过Java代码装配bean 前言:上面梳理了通过注解来隐式的完成了组件的扫描和自动装配,下面来学习下如何通过显式的配置的装配bean: 使用场景:比如说,你想要将第三方库中的组件装配到你的应用中,在 ...
- Left Jion和where区别
首先,新建两张表A和B,然后插入6条数据到A表,3条数据到B表.语句如下: create table A( ID ,) not null, AName ) null ) create table B( ...
- AD域安装及必要设置
本文主要介绍AD域的安装和程序开发必要的设置. 一.安装AD域 运行dcpromo命令,安装AD域. 步骤: 1.win+R 2.dcpromo 图例: 百度百 ...