Ansible的MariaDB部署

作者: 小小运维 | 来源:发表于2018-10-20 21:11 被阅读10次

1. 安装Ansible工具

  • 安装Ansible工具
[root@test01 ~]# cat /etc/centos-release
CentOS 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.cfg
gathering = explicit
host_key_checking = False
  • 测试Ansible工具
[root@test01 ~]# ansible mariadb -m ping -o
192.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.yaml

9 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_test
dbuser: ansible_db_user
dbpasswd: 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 mariadb

PLAY [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 ~]#

相关文章

  • Ansible的MariaDB部署

    1. 安装Ansible工具 安装Ansible工具 配置Ansible工具 测试Ansible工具 2. 编写业...

  • ansible 自动化

    ansible 自动化部署 ansible playbook ansible sshpass的部署问题 ans...

  • ansible semaphore的部署

    安装ansible semaphore 依赖 MySQL >= 5.6.4/MariaDB >= 5.3 ansi...

  • ansible

    什么是ansible?ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所...

  • ansible自动化运维

    安装ansible *ansible 各种模块 ansible playbook 实现httpd服务部署 ansi...

  • 三阶段day15-centos部署django项目

    使用centos部署django项目 安装MariaDB 安装命令 安装完成MariaDB,首先启动MariaDB...

  • 集群部署

    MariaDB Galera Cluster 集群部署

  • 01-初步认识Ansible

    Ansible 初步认识Ansible 什么是Ansible Ansible 是一个配置管理和应用部署工具,功能类...

  • 2020-03-16 Ansible软件实践部署

    1. Ansible实践部署拓扑结构 2. Ansible实践部署地址规划 将已经部署好的架构服务器主机作为被管理...

  • Ansible运维自动化

    Ansible 特点 部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。 使用 SSH(Se...

网友评论

    本文标题:Ansible的MariaDB部署

    本文链接:https://www.haomeiwen.com/subject/jzzmzftx.html