数据库
首页 > 数据库> > 工具: Ansible Playbook 安装 Mysql 并配置主从复制

工具: Ansible Playbook 安装 Mysql 并配置主从复制

作者:互联网

准备工作

主机信息

IP 名称 角色
192.168.114.133 node1 master
192.168.114.134 node2 slave
192.168.114.135 node3 slave

安装ansible

Ansible 是一个自动化运维管理的工具, 可以支持同时管理多台节点,ansible playbook 支持 编写 yml 格式的配置,来管理多个主机节点。

ansible软件 不需要每个节点都安装, 只需要指定其中一个节点作为管理节点即可,在此示例中,我们选择 node1 作为我们的管理节点来安装ansible

自动化安装脚本
配置文件 config.ini
[ssh_password]
halou

[mysql]
192.168.114.133 master
192.168.114.134 slave
192.168.114.135 slave
脚本 auto_install_ansible.sh
#!/bin/bash

#auto insall ansible
#自动化安装ansible软件


CUR_PATH=$(readlink -f $(dirname $0))

#打印日志
function result_echo
{
    if [ $? -eq 0 ]; then 
        echo "$1" | tee -a $CUR_PATH/log.log
    else
        echo "$2" | tee -a $CUR_PATH/log.log
        exit 1
    fi
}

HOST_LIST=`sed -n '/\[mysql\]/,/\[.*\]/p' ./config.ini | grep -v "\[.*\]" | grep -v ^$ | grep -v ^# | awk '{print $1}'`
SSH_PASSWORD=`sed -n '/\[ssh_password\]/,/\[.*\]/p' ./config.ini | grep -v "\[.*\]" | grep -v ^$ | grep -v ^# `

yum repolist | grep epel &> /dev/null

if [ $? -ne 0 ];then
    yum install epel-release -y
    yum makecache
fi

yum install sshpass ansible -y

#生成秘钥,并发送给各个节点执行
echo -e "y\n" | ssh-keygen -t rsa -q -N "" -f ~/.ssh/id_rsa


for host in $HOST_LIST;do
    sshpass -p$SSH_PASSWORD ssh-copy-id -o StrictHostKeyChecking=no root@$host &> /dev/null
    ssh -o StrictHostKeyChecking=no root@$host 'ls -al' &> /dev/null

    result_echo "Ok... No password login is success" "Failed...Use no password login failed, please check!!!"
    
done	



安装 mariadb

使用ansible-playbook 编写安装脚本 yaml

注意事项

参考资料:

https://github.com/ansible/ansible-examples/blob/master/mongodb/playbooks/testsharding.yml 【ansible 安装mongodb示例】

https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html 【ansible 变量引用】

https://www.cnblogs.com/haloujava/p/16561883.html 【一键安装Mysql并配置主从复制】

标签:主从复制,shell,name,ansible,Ansible,master,Playbook,mysql,role
来源: https://www.cnblogs.com/haloujava/p/16633245.html