Ansible 利用playbook批量部署mariadb
环境说一下
192.168.30.21 ansible
192.168.30.25 client1
192.168.30.26 client2
这里我的ansible环境已经部署好了,所以没有重复写到这里,如果不知道怎么部署ansible的小伙伴可以看我上篇随笔(这里不演示了 )
1.被管理端都需要配置yum源
配置本地yum仓库就可以
2.配置数据库角色
[root@ansible ~]# mkdir -pv /etc/ansible/roles/mariadb/{files,tasks,handlers}
mkdir: 已创建目录 "/etc/ansible/roles/mariadb"
mkdir: 已创建目录 "/etc/ansible/roles/mariadb/files"
mkdir: 已创建目录 "/etc/ansible/roles/mariadb/tasks"
mkdir: 已创建目录 "/etc/ansible/roles/mariadb/handlers"
[root@ansible ~]# cd /etc/ansible/
[root@ansible ansible]# vim /etc/ansible/mariadb.yml
- hosts: cloud
remote_user: root
roles:
- mariadb
[root@ansible ansible]# cd /etc/ansible/roles/mariadb/
[root@ansible mariadb]# ls
files handlers tasks
[root@ansible mariadb]# cd tasks/
[root@ansible tasks]# vim main.yml
- name: install mariadb
yum: name=mariadb-server state=present
- name: move config file
shell: "[ -e /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak"
- name: provide a new config file
copy: src=my.cnf dest=/etc/my.cnf
- name: reload mariadb
shell: systemctl restart mariadb
- name: create database testdb
shell: mysql -u root -e "create database aaa;grant all privileges on aaa.* to 'cloud'@'192.168.30.%' identified by 'test123';flush privileges;"
notify:
- restart mariadb
[root@ansible tasks]# cd ../
[root@ansible mariadb]# ls
files handlers tasks
[root@ansible mariadb]# cd handlers/
[root@ansible handlers]# vim main.yml
- name: restart mariadb
service: name=mariadb state=restarted
[root@ansible handlers]# cd ../files/
[root@ansible files]# cp /etc/my.cnf /etc/ansible/roles/mariadb/files/
[root@ansible files]# ls
my.cnf
[root@ansible files]# cd /etc/ansible/
[root@ansible ansible]# ls
ansible.cfg hosts mariadb.yml nginx.retry nginx.yaml roles zabbix-agent.yml
[root@ansible ansible]# cd
预执行;查看有没有报错
[root@ansible ~]# ansible-playbook -C /etc/ansible/mariadb.yml
[root@ansible ~]# ansible-playbook /etc/ansible/mariadb.yml
PLAY [cloud] **********************************************************************************************
TASK [Gathering Facts] ************************************************************************************
ok: [192.168.30.26]
ok: [192.168.30.25]
TASK [mariadb : install mariadb] **************************************************************************
ok: [192.168.30.25]
ok: [192.168.30.26]
TASK [mariadb : move config file] *************************************************************************
changed: [192.168.30.25]
changed: [192.168.30.26]
TASK [mariadb : provide a new config file] ****************************************************************
changed: [192.168.30.25]
changed: [192.168.30.26]
TASK [mariadb : reload mariadb] ***************************************************************************
changed: [192.168.30.26]
changed: [192.168.30.25]
TASK [mariadb : create database testdb] *******************************************************************
changed: [192.168.30.25]
changed: [192.168.30.26]
RUNNING HANDLER [mariadb : restart mariadb] ***************************************************************
changed: [192.168.30.25]
changed: [192.168.30.26]
PLAY RECAP ************************************************************************************************
192.168.30.25 : ok=7 changed=5 unreachable=0 failed=0
192.168.30.26 : ok=7 changed=5 unreachable=0 failed=0
- ansible端验证
[root@ansible ~]# ansible cloud -m shell -a 'mysql -u root -e "show databases;"'
192.168.30.26 | SUCCESS | rc=0 >>
Database
information_schema
aaa
mysql
performance_schema
192.168.30.25 | SUCCESS | rc=0 >>
Database
information_schema
aaa
mysql
performance_schema
client端验证
[root@client1 ~]# mysql
MariaDB [(none)]> show grants for cloud@'192.168.30.%';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for cloud@192.168.30.% |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'cloud'@'192.168.30.%' IDENTIFIED BY PASSWORD '*676243218923905CF94CB52A3C9D3EB30CE8E20D' |
| GRANT ALL PRIVILEGES ON `aaa`.* TO 'cloud'@'192.168.30.%' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
修改mariadb的密码(脚本完成之后没有设置密码,这里我是单独设置的密码)
[root@client1 ~]# mysql
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=password('123456789') where user='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> \q
[root@client1 ~]# mysql -u root -p123456789
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Ansible 利用playbook批量部署mariadb的更多相关文章
- Ansible 利用playbook批量部署Nginx
我这里直接部署的,环境已经搭建好,如果不知道的小伙伴可以看上一遍ansible搭建,都写好了,这里是根据前面环境部署的 192.168.30.21 ansible 192.168.30.25 ...
- ansible结合playbook批量部署war包项目上线
批量部署jenkins.war包实现上线 用于测试war包上线 [root~localhost]~#vim /etc/ansible/test.yml - hosts: test vars: ...
- 使用Playbook批量部署多台LAMP环境
1. 安装ansible yum install epel-release -y yum install ansible -y Playbook是一个不同于使用ansible命令行执行方式的模式,功能 ...
- Ansible基于playbook批量修改主机名实战
Ansible基于playbook批量修改主机名 安装Ansible,相信这里也不用多说,大家都知道 说一下环境:这里的主机名是修改之后的,我先把其他两台的主机名改为别的 192.168.30.21 ...
- 利用ansible批量部署zabbix-agent
应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...
- 利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群
首先在华为云上购买搭建ceph集群所需云主机: 然后购买ceph所需存储磁盘 将购买的磁盘挂载到用来搭建ceph的云主机上 在跳板机上安装ansible 查看ansible版本,检验ansible是否 ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- Ansible批量部署工具
Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...
- ansible批量部署(一)
自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...
随机推荐
- C++之:友元类
一.文章来由 上一篇写了友元函数,这一次写一个姊妹篇,继续深入探究一下友元类. 二.定义 友元类的全部成员函数都是还有一个类的友元函数.都能够訪问还有一个类中的隐藏信息(包含私有成员和保护成员). 当 ...
- 洛谷 P1312 [ NOIP 2011 ] Mayan游戏 —— 搜索+模拟
题目:https://www.luogu.org/problemnew/show/P1312 还是不擅长这种题,所以参考了一下TJ: 其实也很好搜,按字典序,先搜右移,再搜左移: 不交换相同颜色的两个 ...
- bzoj1977 [BeiJing2010组队]次小生成树 Tree——严格次小生成树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1977 因为严格,所以要记录到 LCA 的一个次小值: 很快写好,然后改掉一堆错误后终于过了样 ...
- 基于spark和flink的电商数据分析项目
目录 业务需求 业务数据源 用户访问Session分析 Session聚合统计 Session分层抽样 Top10热门品类 Top10活跃Session 页面单跳转化率分析 各区域热门商品统计分析 广 ...
- eclipse.ini启动参数配置的解析及方法
原文地址 - http://www.uzzf.com/news/18444.html 1.先了解下JVM内存管理机制,JVM内存分为堆内存和非堆内存 2.JVM内存限制 首先JVM内存限制于实际的最大 ...
- 【WIP】Rails Client Side Document
创建: 2017/09/15 更新: 2019/04/14 删除其他语言的表述 更新: 2017/10/14 标题加上[WIP] 引入JavaScrpit/CSS manifesto n. 货单 ...
- codevs3370 选学霸(背包dp,并查集)
3372 选学霸 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相 ...
- [Swift通天遁地]八、媒体与动画-(9)快速实现复合、Label、延续、延时、重复、缓冲、弹性动画
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Vue.js经典开源项目汇总-前端参考资源
Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...
- js判断客户端是手机端还是PC端
封装函数: function isPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", ...