ansible部署mysql一主一从,ansiblemysql一从


1.首先安装ansible,倒腾了好几天离线安装,结果都是安失败。最终选择yum
以下操作都是在10的机器上的,9的机器唯一进行的操作就是创建相同的路径放置.tar文件(在9的机器上 mkdir /etc/ansible/roles/mysql_repl/files,并在files文件夹放置安装文件)

yum install ansible

2.查找安装的ansible

find / -name ansible

安装在/etc/ansible
3.进入ansible目录,查看安装好的目录结构

cd /etc/ansible


4.由于之前已经安装过mysql,对于自动化部署的过程也就清晰了(先手动-ansible部署-写代码)
目录结构

roles
—mysql_repl
——files
————mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
——handles
——tasks
————main.yml
——templates
——vars
————main.yml
ansible.cfg
hosts(存放机器的ip)
test.yml(主入口)
5.编辑hosts

最后一行加上

[mysql_slave]
192.168.236.9 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=xuqin1993
[mysql_master]
192.168.236.10 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=xuqin1993

6.编辑test.yml

- hosts: mysql_master
  roles:
    - role: mysql_repl

- hosts: mysql_slave
  roles:
    - role: mysql_repl

7.在/etc/ansible/roles/mysql_repl/files下放mysql的.tar文件
8.在/etc/ansible/roles/mysql_repl/tasks的main.yml编辑

- name: tar mysql.tar
  shell: tar -xvf {{mysql_dir}}/{{mysql_version}}.tar -C {{ mysql_dir }}/
- name: install community
  shell: rpm -ivh {{mysql_dir}}/mysql-community-common-5.7.23-1.el7.x86_64.rpm
- name: install libs
  shell: rpm -ivh {{mysql_dir}}/mysql-community-libs-5.7.23-1.el7.x86_64.rpm
- name: install libs-compat
  shell: rpm -ivh {{mysql_dir}}/mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm
- name: install client
  shell: rpm -ivh {{mysql_dir}}/mysql-community-client-5.7.23-1.el7.x86_64.rpm
- name: install service
  shell: rpm -ivh {{mysql_dir}}/mysql-community-server-5.7.23-1.el7.x86_64.rpm  --force --nodeps
- name: start mysqld
  service:
    name: mysqld
    state: started

9./etc/ansible/roles/mysql_repl/vars下的main.yml

mysql_version: mysql-5.7.23-1.el7.x86_64.rpm-bundle
mysql_dir: /etc/ansible/roles/mysql_repl/files

10.执行ansible-playbook test.yml
11.成功结果

补充:不删除centos 7默认是mariadb数据库,安装libs会报错,先手动删除两台机器的mariadb(版本不一样,无法统一执行)

相关内容

    暂无相关文章