环境说一下

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

  1. 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的更多相关文章

  1. Ansible 利用playbook批量部署Nginx

    我这里直接部署的,环境已经搭建好,如果不知道的小伙伴可以看上一遍ansible搭建,都写好了,这里是根据前面环境部署的 192.168.30.21     ansible 192.168.30.25  ...

  2. ansible结合playbook批量部署war包项目上线

    批量部署jenkins.war包实现上线 用于测试war包上线 [root~localhost]~#vim /etc/ansible/test.yml - hosts: test vars:     ...

  3. 使用Playbook批量部署多台LAMP环境

    1. 安装ansible yum install epel-release -y yum install ansible -y Playbook是一个不同于使用ansible命令行执行方式的模式,功能 ...

  4. Ansible基于playbook批量修改主机名实战

    Ansible基于playbook批量修改主机名 安装Ansible,相信这里也不用多说,大家都知道 说一下环境:这里的主机名是修改之后的,我先把其他两台的主机名改为别的 192.168.30.21 ...

  5. 利用ansible批量部署zabbix-agent

    应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...

  6. 利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群

    首先在华为云上购买搭建ceph集群所需云主机: 然后购买ceph所需存储磁盘 将购买的磁盘挂载到用来搭建ceph的云主机上 在跳板机上安装ansible 查看ansible版本,检验ansible是否 ...

  7. Ansible playbook 批量修改服务器密码 先普通后root用户

    fsckzy   Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...

  8. Ansible批量部署工具

    Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...

  9. ansible批量部署(一)

    自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...

随机推荐

  1. [Javascript] JavaScript赋值时的传值与传址

    JavaScript中有两种不同数据类型的值,分别是基本数据类型与引用数据类型 基本数据类型包含5类,分别是:Number.String.Boolean.Null.Undefined 引用数据类型包含 ...

  2. Nodejs创建HTTPS服务器

    Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...

  3. ACdream区域赛指导赛之手速赛系列(7)

    A -Dragon Maze Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) Submi ...

  4. XPath Nodes

    教程 https://www.w3schools.com/xml/xpath_nodes.asp 节点之间的关系 Parent,Children,Siblings,Ancestors,Descenda ...

  5. go语言笔记——defer作用DB资源等free或实现调试

    defer 和追踪 关键字 defer 允许我们推迟到函数返回之前(或任意位置执行 return 语句之后)一刻才执行某个语句或函数(为什么要在返回之后才执行这些语句?因为 return 语句同样可以 ...

  6. 常用进制的转换、进制数的and与or或xor异或运算

    [十进制转换成其他进制]例:将25转换为二进制数 解: 25÷2=12 余数1  12÷2=6   余数0  6÷2=3     余数0  3÷2=1     余数1  1÷2=0     余数1 所 ...

  7. error: undefined reference to 'property_set (转载)

    转自:http://blog.csdn.net/u011589606/article/details/23474241 in the cpp file, please include #include ...

  8. PCB SQL SERVER 邮箱配置与发邮件

    一.开启SQL SERVER发邮件功能 --开启发邮件功能 reconfigure with override go reconfigure with override go 二.邮箱配置 1.代码创 ...

  9. PCB 使用第3方网站做为外链图片资源

    计划将Web版SI9000阻抗计算工具放外网了,由于个人网站带宽太小原因, 准备将静态的图片资源放在第三方网站,今天找了好几个图床网站,把阻抗模型图上传到图床网站,这样一来就能解决带宽的问题了,今天折 ...

  10. oracle基础学习---------1

    1.SQL执行时间的开关 set timing on --->开         set timing off--->关 2.创建数据表.以已存在的表创建(也就是复制一个表.但表内没有数据 ...