继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Ansible的MariaDB部署

慕神8447489
关注TA
已关注
手记 1303
粉丝 174
获赞 957

1. 安装Ansible工具

  • 安装Ansible工具

[root@test01 ~]# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core)
[root@test01 ~]# yum install ansible -y
  • 配置Ansible工具

[root@test01 ~]# cat /etc/ansible/hosts [mariadb]192.168.1.31[mariadb:vars]
ansible_ssh_pass='123456'
# 修改两个参数[root@test01 ~]# vim /etc/ansible/ansible.cfggathering = explicithost_key_checking = False
  • 测试Ansible工具

[root@test01 ~]# ansible mariadb -m ping -o192.168.1.31 | SUCCESS => {"changed": false, "ping": "pong"}

2. 编写业务roles

  • 创建目录结构

[root@test01 ~]# mkdir -p /etc/ansible/roles/mariadb/{mkdir,tasks,handlers,templates,files,vars,defaults,meta}[root@test01 ~]# tree /etc/ansible/roles//etc/ansible/roles/
└── mariadb
    ├── defaults
    ├── files
    │   └── test.sql
    ├── handlers
    │   └── main.yaml
    ├── meta
    ├── mkdir
    ├── tasks
    │   └── main.yaml
    ├── templates
    └── vars
        └── main.yaml9 directories, 4 files
[root@test01 ~]#
  • 各个目录的内容

[root@test01 ~]# cat /etc/ansible/site.yaml ---
 - hosts: mariadb   roles: 
    - { role: mariadb, tags: mariadb }
...
[root@test01 ~]# cat /etc/ansible/roles/mariadb/tasks/main.yaml ---
- name: Install MariaDB Package  yum: name={{ item }} state=present  with_items:
   - mariadb-server
   - mariadb
   - MySQL-python

- name: Start MariaDB Service  service: name=mariadb state=started enabled=yes

- name: Copy MariaDB Dump.sql  copy: src=test.sql dest=/tmp/ansible_test.sql

- name: Import MariaDB Databases  mysql_db: name={{ dbname }} state=import target=/tmp/ansible_test.sql  notify: 
   - remove ansible_test.sql

- name: Create MariaDB User  mysql_user: name={{ dbuser }} password={{ dbpasswd }} priv={{ dbname }}.*:ALL host='%' state=present  #mysql_user: name={{ dbuser }} password={{ dbpasswd }} priv=*.*:ALL host='%' state=present#- name: Restart MariaDB Service#  template: src=my.cnf.j2 dest=/etc/my.cnf#  notify: restart mariadb#   - restart mariadb...
[root@test01 ~]# cat /etc/ansible/roles/mariadb/handlers/main.yaml ---
- name: restart mariadb  service: name=mariadb state=restarted

- name: remove ansible_test.sql  file: path=/tmp/ansible_test.sql state=absent
...
[root@test01 ~]# cat /etc/ansible/roles/mariadb/vars/main.yaml ---dbname: ansible_db_testdbuser: ansible_db_userdbpasswd: ansible_db_password 
...

数据库备份命令:
mysqldump -u ansible_db_user -h 192.168.1.31 -pansible_db_password ansible_db_test > test.sql

3. 部署测试

[root@test01 ~]# ansible-playbook /etc/ansible/site.yaml --tags mariadbPLAY [mariadb] ************************************************************************************************************************************************************************************

TASK [mariadb : Install MariaDB Package] **********************************************************************************************************************************************************changed: [192.168.1.31] => (item=[u'mariadb-server', u'mariadb', u'MySQL-python'])

TASK [mariadb : Start MariaDB Service] ************************************************************************************************************************************************************changed: [192.168.1.31]

TASK [mariadb : Copy MariaDB Dump.sql] ************************************************************************************************************************************************************changed: [192.168.1.31]

TASK [mariadb : Import MariaDB Databases] *********************************************************************************************************************************************************changed: [192.168.1.31]

TASK [mariadb : Create MariaDB User] **************************************************************************************************************************************************************changed: [192.168.1.31]

RUNNING HANDLER [mariadb : remove ansible_test.sql] ***********************************************************************************************************************************************changed: [192.168.1.31]

PLAY RECAP ****************************************************************************************************************************************************************************************192.168.1.31               : ok=6    changed=6    unreachable=0    failed=0   [root@test01 ~]#



作者:小小运维
链接:https://www.jianshu.com/p/ab72e45aa531


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP