ansible配置mysql主从复制
配置主机
1、下载安装所需安装包
[root@server1 ansible]# ls
ansible-2.7.8-1.el7.noarch.rpm
ansible-tower-setup-bundle-3.4.2-1.el7.tar.gz
libtomcrypt-1.17-25.el7.x86_64.rpm
libtommath-0.42.0-5.el7.x86_64.rpm
python2-crypto-2.6.1-13.el7.x86_64.rpm
python2-jmespath-0.9.0-1.el7.noarch.rpm
python-httplib2-0.9.2-0.1.el7.noarch.rpm
python-keyczar-0.71c-2.el7.noarch.rpm
python-paramiko-2.1.1-0.9.el7.noarch.rpm
sshpass-1.06-1.el7.x86_64.rpm
[root@server1 ansible]# yum install -y *
在这里插入图片描述
2、配置
[root@server1 ansible]# cd /etc/ansible/
[root@server1 ansible]# ls
ansible.cfg hosts roles
[root@server1 ansible]# vim hosts
在这里插入图片描述
测试ping模块:先ping——>输入yes,再加-k参数
[root@server1 ansible]# ansible server1 -m ping
The authenticity of host 'server1 (172.25.60.1)' can't be established.
ECDSA key fingerprint is 4a:62:22:df:00:1f:c1:37:c6:ea:b4:8c:ad:75:b3:07.
Are you sure you want to continue connecting (yes/no)? yes
server1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Warning: Permanently added 'server1,172.25.60.1' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).",
"unreachable": true
}
[root@server1 ansible]# ansible server1 -m ping -k
SSH password:
server1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
在这里插入图片描述
[root@server1 ansible]# ansible server2 -m ping
The authenticity of host 'server2 (172.25.60.2)' can't be established.
ECDSA key fingerprint is 91:66:3b:f0:dd:37:39:62:2d:2c:7a:05:bc:e1:e6:d4.
Are you sure you want to continue connecting (yes/no)? yes
server2 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Warning: Permanently added 'server2,172.25.60.2' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).",
"unreachable": true
}
[root@server1 ansible]# ansible server2 -m ping -k
SSH password:
server2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
在这里插入图片描述
设置免密
[root@server1 ansible]# ssh-keygen
在这里插入图片描述
[root@server1 ansible]# ssh-copy-id server1
[root@server1 ansible]# ssh-copy-id server2
在这里插入图片描述
免密连接测试
[root@server1 ansible]# ansible server1 -m ping
[root@server1 ansible]# ansible server2 -m ping
在这里插入图片描述
建立文件目录
[root@server1 ansible]# mkdir -p /etc/ansible/roles/mysql_repl/files
[root@server1 ansible]# mkdir -p /etc/ansible/roles/mysql_repl2/files
[root@server1 ansible]# cd /etc/ansible/
[root@server1 ansible]# ls
ansible.cfg hosts roles
[root@server1 ansible]# vim test.yml
在这里插入图片描述
server2建立目录
[root@server2 ~]# mkdir -p /etc/ansible/roles/mysql_repl/files
[root@server2 ~]# mkdir -p /etc/ansible/roles/mysql_repl2/files
建立mysql_repl执行文件目录和变量目录
[root@server1 ansible]# cd roles/mysql_repl
[root@server1 mysql_repl]# mkdir tasks
[root@server1 mysql_repl]# mkdir vars
[root@server1 vars]# vim main.yml
mysql_version: mysql-5.7.24-1.el7.x86_64.rpm-bundle
mysql_dir: /etc/ansible/roles/mysql_repl/files
在这里插入图片描述
在这里插入图片描述
[root@server1 mysql_repl]# cd /etc/ansible/roles/mysql_repl/files/
[root@server1 files]# cd /etc/
[root@server1 etc]# cat my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[root@server1 etc]# cd -
/etc/ansible/roles/mysql_repl/files
[root@server1 files]# ls
[root@server1 files]# vim my.cnf
在这里插入图片描述
配置执行脚本
[root@server1 files]# cd /etc/ansible/roles/mysql_repl/tasks/
[root@server1 tasks]# vim main.yml
在这里插入图片描述
配置mysql_repl
[root@server1 mysql_repl]# cd /etc/ansible/roles/mysql_repl2
[root@server1 mysql_repl2]# mkdir tasks
[root@server1 mysql_repl2]# mkdir vars
[root@server1 mysql_repl2]# cd files/
[root@server1 files]# vim my.cnf
在这里插入图片描述
[root@server1 files]# cd …
[root@server1 mysql_repl2]# cd vars/
[root@server1 vars]# vim main.yml
-name: copy package
copy: src={{mysql_dir}}/{{mysql_version}}.tar dest={{mysql_dir}}/{{mysql_version}}.tar -C {{ mysql_dir }}/
- name: tar mysql.tar
shell: tar -xvf {{mysql_dir}}/{{mysql_version}}.tar -C {{ mysql_dir }}/
- name: install mysql
yum: name={{mysql_dir}}/mysql-community-client-5.7.24-1.el7.x86_64.rpm,{{mysql_dir}}/mysql-community-common-5.7.24-1.el7.x86_64.rpm,{{mysql_dir}}/mysql-community-libs-5.7.24-1.el7.x86_64.rpm,{{mysql_dir}}/mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm,{{mysql_dir}}/mysql-community-server-5.7.24-1.el7.x86_64.rpm,MySQL-python
- name: cp my.cnf
copy: src={{mysql_dir}}/my.cnf dest=/etc/my.cnf
- name: start mysqld
service:
name: mysqld
state: started
- name: init mysql
shell: mysql -uroot -p`cat /var/log/mysqld.log | grep 'password is generated' | awk '{print $NF}'` --connect-expired-password -e "alter user root@localhost identified by 'Xuhuan@301415';"
- name: repl1
shell: mysql -uroot -pXiaojiujiu@666 --connect-expired-password -e "stop slave;"
- name: repl2
shell: mysql -uroot -pXiaojiujiu@666 --connect-expired-password -e "change master to master_host='172.25.60.1',master_user='rep',master_password='Xuhuan@301415',master_auto_position=1;"
_position=1;"
- name: repl3
shell: mysql -uroot -pXuhuan@301415 --connect-expired-password -e "start slave;"
在这里插入图片描述
[root@server1 ~]# cd /etc/ansible/
[root@server1 ansible]# tree
.
├── ansible.cfg
├── hosts
├── roles
│ ├── mysql_repl
│ │ ├── files
│ │ │ ├── my.cnf
│ │ │ └── mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
│ │ ├── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── vars
│ │ └── main.yml
│ └── mysql_repl2
│ ├── files
│ │ ├── my.cnf
│ │ └── mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
│ ├── tasks
│ │ └── main.yml
│ └── vars
│ └── main.yml
└── test.yml
[root@server1 ansible]# ansible-playbook test.yml
ansible配置mysql主从复制的更多相关文章
- 配置MySQL主从复制报错Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work
配置MySQL主从复制报错 ``` Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave ha ...
- 配置MySQL主从复制和读写分离
实验环境 序号 主机名 IP地址 备注 1 mysql-master 192.168.204.201 MySQL主库 2 mysql-slave 192.168.204.202 MySQL从库 3 a ...
- centos 配置mysql主从复制
mysql+centos7+主从复制 MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公 ...
- docker上配置mysql主从复制
1.在docker上启动2台mysql容器:(这里3306为主,3307为从) docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 - ...
- linux配置mysql主从复制
1.准备工作,2台服务器都安装最好一个版本的mysql 主:192.168.100.1 从:192.168.100.2 a.修改主数据库/etc/my.cnf,mysqld下添加.修改之后重启. [m ...
- Linux下配置MySQL主从复制
一.环境准备 本次准备两台Linux主机,操作系统都为CentOS6.8, 都安装了相同版本的MySQL.(MySQL5.7). 主从服务器的防火墙都开启了3306端口. 相关信息如下: [主服务器] ...
- Ansible 管理MySQL主从复制
mysql_replication - 管理MySQL复制 1.3版新功能 概要 要求(在执行模块的主机上) 选项 例子 笔记 状态 支持 概要 管理MySQL服务器复制,从属,主状态获取和更改主控主 ...
- Mysql学习总结(33)——阿里云centos配置MySQL主从复制
1.安装jdk1.8 首先确定没有安装过jdk 2.yum –y list java*查询系统自带的jdk安装包情况. 3.安装jdk1.8 4. 验证安装结果. 安装mysql 1. rpm -Uv ...
- docker起容器配置MySQL主从复制
https://www.jianshu.com/p/0439206e1f28
随机推荐
- Eclipse添加Qt插件
此文件仅为步骤操作作一个记录,以便以后方便查阅. 1.操作大体参考这个网站:http://blog.csdn.net/defonds/article/details/5013412 2.我的运行环境: ...
- POJ1458 Common Subsequence —— DP 最长公共子序列(LCS)
题目链接:http://poj.org/problem?id=1458 Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Tot ...
- YTU 2928: 取不重复的子串。
2928: 取不重复的子串. 时间限制: 1 Sec 内存限制: 128 MB 提交: 5 解决: 5 题目描述 输入字母构成的字符串(不大于30字符)从中读取3个不重复的字符,求所有取法,取出的 ...
- 谈一谈以太坊虚拟机EVM的缺陷与不足
首先,EVM的设计初衷是什么?它为什么被设计成目前我们看的样子呢?根据以太坊官方提供的设计原理说明,EVM的设计目标主要针对以下方面: 简单性(Simplicity) 确定性(Determinism) ...
- codeforces 688E E. The Values You Can Make(dp)
题目链接: E. The Values You Can Make time limit per test 2 seconds memory limit per test 256 megabytes i ...
- Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等-uncheck
ylbtech-Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等 1.返回顶部 1. Java 实例 - 测试两个字符串区域是否相等 Java ...
- Ruby - 创建自己的GEM
Log 1 创建自己的gem 背景:好奇gem包的用法,首先搞清楚什么是gem包.那我们就先来创建一个自己的gem包. 时间:2014-3-8 环境:Ubuntu + Ruby 1.9.3 记录:Ro ...
- Fiddler对https抓包时,提示"HTTPS decryption is disabled."原因及破解
Fiddler对https抓包时,提示"HTTPS decryption is disabled." 原因:没有启用 https 解密. 破解: ----------------- ...
- bzoj 1407: [Noi2002]Savage【扩展欧几里得+中国剩余定理】
首先答案不会很大,所以枚举答案m,于是把问题转为了判定: 关于如何判定: 首先题目中虽然没说但是数据是按照初始洞穴编号排的序,所以并不用自己重新再排 假设当前答案为m,相遇时间为x,野人i和j,那么可 ...
- USACO Training刷题记录 By cellur925
Section 1.1 Your Ride Is Here 貌似没啥可说 Greedy Gift Givers 上来就想stl map映射,有两个坑:如果送给别人的人数为0,那么需要特判一下,防止整数 ...