ansible角色部署mysql主从
生活随笔
收集整理的這篇文章主要介紹了
ansible角色部署mysql主从
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
linux ansible角色部署mysql主從
ansible主機(jī)創(chuàng)建角色 重新定義主機(jī)清單
[root@ansible ~]# cd /etc/ansible/ [root@ansible ansible]# ls ansible.cfg apache.yml haproxy.yml hosts httpd.yml mysql.yml php.yml roles [root@ansible ansible]# vim hosts [webservers] node1 node2[haproxy] node3[mysql] node4 node5[mysql_master] node4[mysql_slave] node5 [root@ansible roles]# ansible-galaxy init mysqlzc - Role mysqlzc was created successfully [root@ansible roles]# ls apache haproxy httpd mysql mysqlzc php [root@ansible roles]# cd mysqlzc/ [root@ansible mysqlzc]# ls defaults files handlers meta README.md tasks templates tests varsansible主機(jī)配置mysqlzc角色
[root@ansible ansible]# cd roles/mysqlzc/ [root@ansible mysqlzc]# ls defaults files handlers meta README.md tasks templates tests vars [root@ansible mysqlzc]# vim tasks/main.yml --- # tasks file for mysqlzc - name: stop firewalldservice: name: firewalldstate: stoppedenabled: no- name: stop selinuxlineinfile: path: /etc/selinux/configregexp: '^SELINUX='line: SELINUX=disabled- name: stop selinux1shell: cmd: setenforce 0- name: install mariadbyum: name: - mariadb-server- mariadbstate: present- name: cp configtemplate: src: mastermy.cnf.j2dest: /etc/my.cnfwhen: inventory_hostname in {{ groups.mysql_master }}- name: cp configtemplate:src: slavemy.cnf.j2dest: /etc/my.cnfwhen: inventory_hostname in {{ groups.mysql_slave }}- name: state mariadbservice: name: mariadbstate: restartedenabled: yes- name: grant for rootshell: cmd: mysql -uroot -e "grant all privileges on *.* to root@'%' identified by 'redhat;'"- name: mastershell: cmd: mysql -uroot -e "grant replication slave on *.* to 'user'@'slave' identified by 'redhat';"when: inventory_hostname in {{ groups.mysql_master }}- name: slaveshell: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 slaveshell:cmd: mysql -uroot -e "start slave"when: inventory_hostname in {{ groups.mysql_slave }}編寫配置文件模板
[root@ansible mysqlzc]# vim templates/mastermy.cnf.j2 [mysqld] log_bin=mysql-bin server_id=10 [root@ansible mysqlzc]# vim templates/slavemy.cnf.j2 [mysqld] log_bin=mysql-bin server_id=20創(chuàng)建mysqlzc劇本并執(zhí)行
[root@ansible ansible]# vim mysqlzc.yml --- - name: mysqlzchosts: mysqlroles:- mysqlzc [root@ansible ansible]# ansible-playbook mysqlzc.ymlPLAY [mysqlzc] ***************************************************************************TASK [Gathering Facts] ******************************************************************* ok: [node5] ok: [node4]TASK [mysqlzc : stop firewalld] ********************************************************** ok: [node4] ok: [node5]TASK [mysqlzc : stop selinux] ************************************************************ ok: [node5] ok: [node4]TASK [mysqlzc : stop selinux1] *********************************************************** changed: [node5] changed: [node4]TASK [mysqlzc : install mariadb] ********************************************************* ok: [node5] ok: [node4]TASK [mysqlzc : cp config] *************************************************************** [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_master }} [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_master }} skipping: [node5] ok: [node4]TASK [mysqlzc : cp config] *************************************************************** [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_slave }} [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_slave }} skipping: [node4] ok: [node5]TASK [mysqlzc : state mariadb] *********************************************************** changed: [node5] changed: [node4]TASK [mysqlzc : grant for root] ********************************************************** changed: [node4] changed: [node5]TASK [mysqlzc : master] ****************************************************************** [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_master }} [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_master }} skipping: [node5] changed: [node4]TASK [mysqlzc : slave] ******************************************************************* [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_slave }} [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_slave }} skipping: [node4] changed: [node5]TASK [mysqlzc : start slave] ************************************************************* [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_slave }} [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: inventory_hostname in {{ groups.mysql_slave }} skipping: [node4] changed: [node5]PLAY RECAP ******************************************************************************* node4 : ok=9 changed=4 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0 node5 : ok=10 changed=5 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0查看mysql主從狀態(tài)
[root@node5 ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 15 Server version: 10.3.28-MariaDB-log MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show slave status\G *************************** 1. row ***************************Slave_IO_State: Connecting to masterMaster_Host: masterMaster_User: userMaster_Port: 3306Connect_Retry: 60Master_Log_File: Read_Master_Log_Pos: 4Relay_Log_File: node5-relay-bin.000001Relay_Log_Pos: 4Relay_Master_Log_File: Slave_IO_Running: ConnectingSlave_SQL_Running: Yes總結(jié)
以上是生活随笔為你收集整理的ansible角色部署mysql主从的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: easyui后台界面如何添加选项卡(Ta
- 下一篇: Building VirtualBox