ansible部署mysql主从
1、创建用户并编写task任务
[root@ansible ansible]# vim hosts
[mysql]
node4
node5
[mysql_master]
node4
[mysql_slave]
node5
[root@ansible ansible]# cd roles/
[root@ansible roles]# ansible-galaxy init mysqld
- Role mysqld was created successfully
[root@ansible ansible]# cd mysqld/
[root@ansible mysqld]# vim tasks/main.yml
---
# tasks file for mysqld
- name: mount
mount:
src: /dev/cdrom
path: /mnt
fstype: iso9660
state: mounted
- name: clean repo
shell:
cmd: rm -rf /etc/yum.repos.d/*
- name: set repo
yum_repository:
file: local_yum
name: axi
description: aa
baseurl: file:///mnt/BaseOS
enabled: yes
gpgcheck: no
- name: set repo1
yum_repository:
file: local_yum
name: axi
description: bb
baseurl: file:///mnt/AppStream
enabled: yes
gpgcheck: no
- name: stop firewalld
service:
name: firewalld
state: stopped
enabled: no
- name: set selinux
lineinfile:
path: /etc/selinux/config
regexp: '^SELINUX='
line: SELINUX=disabled
- name: install pkgs
yum:
name:
- mariadb-server
- mariadb
state: present
- name: copy config1
template:
src: master_my.cnf.j2
dest: /etc/my.cnf
when: inventory_hostname in {
{ groups.mysql_master }}
- name: copy config2
template:
src: slave_my.cnf.j2
dest: /etc/my.cnf
when: inventory_hostname in {
{ groups.mysql_slave }}
- name: restart mysql
service:
name: mariadb
state: restarted
enabled: yes
- name: grant mysql
shell:
cmd: mysql -uroot -e "grant all privileges on *.* to root@'%' identified by '123.com';"
- name: master data
shell:
cmd: mysql -uroot -e "grant replication slave on *.* to 'user'@'slave' identified by '123.com';"
when: inventory_hostname