python—mariadb自动部署主从
- import configparser
- import os
- def config_mariadb_yum():
- exists = os.path.exists('/etc/yum.repos.d/mariadb.repo')
- if exists:
- print('mariadb.repo文件已经存在')
- yum_install_mariadb()
- else:
- config = configparser.ConfigParser()
- config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8')
- config.add_section('mariadb')
- config.set('mariadb', 'name', 'MariaDB')
- config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/')
- config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB')
- config.set('mariadb', 'gpgcheck', '1')
- config.write(open("/etc/yum.repos.d/mariadb.repo", "w"))
- yum_install_mariadb()
- def yum_install_mariadb():
- res1 = os.system('yum install MariaDB -y > /dev/null 2&>1')
- if res1 == 0:
- config = configparser.ConfigParser()
- config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8')
- config.set('server','server_id','1')
- config.set('server','log-bin','mysql-bin')
- config.write(open("/etc/my.cnf.d/server.cnf", "w"))
- res2 = os.system('service mariadb restart')
- if res2 == 0:
- os.system('mysql_secure_installation')
- os.system('''mysql -uroot -proot -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'"''')
- os.system("mysql -uroot -proot -e 'show master status'")
- def main():
- config_mariadb_yum()
- if __name__ == '__main__':
- main()
- slave
- import configparser
- import os
- master_ip = input('master_ip:').strip()
- log_file = input('log_file:').strip()
- pos = input('pos:').strip()
- def config_mariadb_yum():
- exists = os.path.exists('/etc/yum.repos.d/mariadb.repo')
- if exists:
- print('mariadb.repo文件已经存在')
- yum_install_mariadb()
- else:
- config = configparser.ConfigParser()
- config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8')
- config.add_section('mariadb')
- config.set('mariadb', 'name', 'MariaDB')
- config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/')
- config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB')
- config.set('mariadb', 'gpgcheck', '1')
- config.write(open("/etc/yum.repos.d/mariadb.repo", "w"))
- yum_install_mariadb()
- def yum_install_mariadb():
- res1 = os.system('yum install MariaDB -y > /dev/null 2&>1')
- if res1 == 0:
- config = configparser.ConfigParser()
- config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8')
- config.set('server','server_id','2')
- config.write(open("/etc/my.cnf.d/server.cnf", "w"))
- res2 = os.system('service mariadb restart')
- if res2 == 0:
- os.system('mysql_secure_installation')
- os.system('''mysql -uroot -proot -e "CHANGE MASTER TO MASTER_HOST='%s', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s"''' % (master_ip,log_file,pos))
- os.system("mysql -uroot -proot -e 'start slave;'")
- def main():
- config_mariadb_yum()
- if __name__ == '__main__':
- main()
python—mariadb自动部署主从的更多相关文章
- python 实现自动部署测试环境
预设条件 产品运行在Linux CentOS6 X64上 python3,Djanggo,Cherrypy安装好手动安装过程 登录服务器 检查是否有以前的版本的产品在运行,有,停掉 如果有原来的代码包 ...
- Python Fabric远程自动部署简介
Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...
- 最新JetBrainsPyCharm自动部署Python(Django,tornado等)项目至远程服务器
每次开发Python项目时,对于所有Python开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP ...
- nginx tomcat 自动部署python脚本【转】
#!/usr/bin/env python #--coding:utf8-- import sys,subprocess,os,datetime,paramiko,re local_path='/ho ...
- 使用Docker构建持续集成与自动部署的Docker集群
为什么使用Docker " 从我个人使用的角度讲的话 部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...
- 使用Ansible进行项目的自动部署(Tomcat、Weblogic)
原文:https://github.com/x113773/testall/issues/4 问题:Weblogic/Tomcat 通过JAVA直接远程调用或者调用本地Shell还是通过Ansible ...
- 使用Jenkins自动部署博客
title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...
- jenkins+supervisor实现django项目的自动部署(ubuntu)
没有安装supervisor的话首先安装supervisor, apt install upservisor 安装supervisor大概率会出现问题,不推荐,最好是用pip 安装, 注意python ...
- 持续集成之Jenkins自动部署war包到远程服务器
一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载-------- ...
随机推荐
- hibernate之小白一
关于hibernate框架,以下是我自己的见解,每个人的理解各不同,希望各位读者根据自己的需要来查询自己想要的.以下我来给你们分享我学习hibernate的一些理论和实践: 首先我们来了解一下hibe ...
- 算法学习之剑指offer(五)
题目1 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. public class Solution ...
- 微信小程序与用户交互
微信小程序与用户交互 一.显示消息提示框 wx.showToast({属性名:属性值}) 自定义一个提示框,时间到了会自动关闭 wx.showToast({ title:"成功", ...
- 一次看懂 Https 证书认证
TLS 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安 ...
- Spring Boot2 系列教程(十五)定义系统启动任务的两种方式
在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( ...
- Jackson替换fastjson
为什么要替换fastjson 工程里大量使用了fastjson作为序列化和反序列化框架,甚至ORM在处理部分字段也依赖fastjson进行序列化和反序列化.那么作为大量使用的基础框架,为什么还要进行替 ...
- 3M隔音耳罩拆分、清洗教程
简介 3M隔音耳罩用起来真爽,十分适合喜欢安静的人.再者,被动和别人同住(学校.厂里宿舍.公司宿舍).公共场合时使用,效果刚刚的.题外话:有些人的素质……%¥%(*¥*! 3M隔音耳罩平时戴着也没觉得 ...
- .NET Core 3.0之深入源码理解ObjectPool(二)
写在前面 前文主要介绍了ObjectPool的一些理论基础,本文主要从源码角度理解Microsoft.Extensions.ObjectPool是如何实现的.下图为其三大核心组件图: 核心组件 Obj ...
- VirtualBox NAT Network配置
VirtualBox NAT Network配置(OSX上的) VirtualBox的5种连接方式 NAT :虚拟机之间不能互通 NAT网络 :本文对象 桥接 :一般情况下虚拟机无法设置静态IP,并且 ...
- 使用Apache common 的csv工具包处理csv文件
1.向csv文件中追加数据 //向文件中追加数据 BufferedWriter csvBufferedWriter = new BufferedWriter(new OutputStreamWrite ...