ansible创建mariadb主从
时间: 2023-10-30 16:05:45 浏览: 174
使用Ansible创建MariaDB主从配置,可以按照以下步骤进行操作:
1. 在Ansible控制节点上,创建一个名为`mariadb.yml`的Playbook文件,并添加以下内容:
```
- name: Configure MariaDB master
hosts: master
roles:
- mariadb
- name: Configure MariaDB slave
hosts: slave
roles:
- mariadb
```
2. 在Ansible控制节点上,创建一个名为`roles/mariadb/tasks/main.yml`的任务文件,并添加以下内容:
```
- name: Install MariaDB server
yum:
name: mariadb-server
state: present
- name: Start and enable MariaDB service
service:
name: mariadb
state: started
enabled: yes
- name: Configure MariaDB master
template:
src: master.cnf.j2
dest: /etc/my.cnf.d/master.cnf
notify: restart mariadb
- name: Configure MariaDB slave
template:
src: slave.cnf.j2
dest: /etc/my.cnf.d/slave.cnf
notify: restart mariadb
- name: Start MariaDB replication on the slave
shell: |
mysql -e "CHANGE MASTER TO MASTER_HOST='{{ master_host }}', MASTER_USER='{{ replication_user }}', MASTER_PASSWORD='{{ replication_password }}'; START SLAVE;"
when: "'slave' in inventory_hostname"
```
3. 在Ansible控制节点上,创建一个名为`roles/mariadb/templates/master.cnf.j2`的模板文件,并添加以下内容:
```
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
```
4. 在Ansible控制节点上,创建一个名为`roles/mariadb/templates/slave.cnf.j2`的模板文件,并添加以下内容:
```
[mysqld]
server-id = 2
```
5. 在Ansible控制节点上,创建一个名为`inventory.ini`的清单文件,并添加以下内容:
```
[master]
master_hostname ansible_host=<master_ip>
[slave]
slave_hostname ansible_host=<slave_ip>
```
请将`<master_ip>`和`<slave_ip>`替换为实际的主机IP地址。
6. 在Ansible控制节点上,运行以下命令以执行Playbook并创建MariaDB主从配置:
```
ansible-playbook -i inventory.ini mariadb.yml
```
现在,您已成功使用Ansible创建了MariaDB的主从配置。
阅读全文