环境说一下

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. 【剑指offer】合并两有序单链表

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25739727 九度OJ上AC,採用归并的思想递归实现. 题目描写叙述: 输入两个单调递增的 ...

  2. Hadoop生态系统学习路线

    主要介绍Hadoop家族产品,经常使用的项目包含Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa.新添加 ...

  3. border-image 和 border-color 不能同时使用问题

    遇到如下问题: UI 给的设计,某部分,上边框为 图片,下边框为灰色横线. 看到这个的第一反应是,上边框用 border-image ,为了只让上边框显示图片,所以只给上边框宽度为所需宽度,我的图是 ...

  4. leetCode 60.Permutation Sequence (排列序列) 解题思路和方法

    The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  5. 让mongodb执行js文件

    环境: Linux js代码: 循环删除表中的数据: clear-mongodb-dialog.js print('=========BEGIN=========='); for(var i of [ ...

  6. B1277 [HNOI2002]Tinux系统 树形dp

    这个题bzoj上没有图,luogu上样例有问题...其实这个题代码不难,但是思考起来还是有一定难度的,其实这些题的重点都在于思考.我就不写了,洛谷上唯一的题解写的挺好,大家可以看一看. 题干: 在do ...

  7. (函数即服务)Faas的现状与未来

    刚看到jolestar一位从法律转行程序员的前辈写了一篇Faas现状与未来的文章,里面很多观点都很有启发,或许正如他说的那样,由于Faas能较好的解决资源利用率和开发效率问题,2018年Faas将变得 ...

  8. Olddriver’s books

    Olddriver 的书多的吓人,什么算法导论,组合数学英 文版(orz)......他把 n 本书都放在身后的桌子上, 每本书有一定的面积,并且书可以覆盖,求 n 本书覆盖桌面 的面积 输入格式: ...

  9. java网络编程UDP

    图片来自网络 [发送端] import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSoc ...

  10. Appium Appium 链接夜神模拟器

    在此之前,已经安装Appium,参考第一部分在 Windows7 搭建 Appium (一) https://testerhome.com/topics/8004 第一步安装Android开发环境 下 ...