zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    Windows OS上安装运行Apache Kafka教程
    CSS3 transition属性
    CSS3新增UI样式
    css3响应式布局
    CSS3弹性盒模型
    CSS3
    移动端开发的那点事儿
    git开源项目协作
    移动端(IOS)iframe监听不到 onscroll 事件
    Javascript高级程序设计读书笔记(第10章 DOM)
  • 原文地址:https://www.cnblogs.com/zhou2019/p/10601053.html
Copyright © 2011-2022 走看看