创建角色
[root@server ansible]# cd roles/
[root@server roles]# ansible-galaxy init mariadb
- Role mariadb was created successfully
编写角色playbook
[root@server mariadb]# cat tasks/main.yml
---
# tasks file for mariadb
- name: mount cdrom
mount:
src: /dev/cdrom
path: /mnt
fstype: iso9660
state: mounted
- name: clear repo
shell:
cmd: rm -rf /etc/yum.repos.d/*
- name: set repo1
yum_repository:
file: server
name: aa
description: aa1
baseurl: file:///mnt/BaseOS
enabled: yes
gpgcheck: no
- name: set repo2
yum_repository:
file: server
name: bb
description: bb1
baseurl: file:///mnt/AppStream
enabled: yes
gpgcheck: no
- name: install mariadb
yum:
name:
- mariadb
- mariadb-server
state: present
- name: cp config
template:
src: mastermy.cnf.j2
dest: /etc/my.cnf
when: inventory_hostname in {
{ groups.mysql_master }}
- name: cp config
template:
src: slavemy.cnf.j2
dest: /etc/my.cnf
when: inventory_hostname in {
{ groups.mysql_slave }}
- name: start mariadb
service:
name: mariadb
state: restarted
enabled: yes
- name: grant root
shell:
cmd: mysql -uroot -e "grant all privileges on *.* to root@'%' identified by 'redhat';"
- name: master
shell:
cmd: mysql -uroot -e "grant replication slave on *.* to 'user'@'slave' identified by 'redhat';"
when: inventory_hostname in {
{ groups.mysql_master }}
- name: slave
shell:
cmd: mysql -uroot -e "change master to master_host='master',master_user='user',master_password='redhat';"
when: inventory_hostname in {
{ groups.mysql_slave }}
- name: start slave
shell:
cmd: mysql -uroot -e "start slave;"
when: inventory_hostnam