环境说一下

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. Android开发系列(二十四):Notification的功能与使用方法

    关于消息的提示有两种:一种是Toast,一种就是Notification.前者维持的时间比較短暂.后者维持的时间比較长. 并且我们寻常手机的应用比方网易.贴吧等等都有非常多的推送消息,就是用Notif ...

  2. Codeforces 91C Ski Base 加边求欧拉回路数量

    题目链接:点击打开链接 题意: 给出n个点m条无向边的图 開始图里没有边.每次加一条边,然后输出图里欧拉回路的条数. 思路: We will count the number of ski bases ...

  3. js 里面的 function 与 Function

    function 是 js 的标识符 Function 是 js 里面的一个 构造函数 1.new function 与 new Function 的区别 new 运算符在 js 里面是 创建一个自定 ...

  4. HDOJ 题目5289 Assignment(RMQ,技巧)

    Assignment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  5. 布局技巧1:创建可重用的UI组件(include标签)

    Android平台提供了大量的UI构件,你可以将这些小的视觉块(构件)搭建在一起,呈现给用户复杂且有用的画面.然而,应用程序有时需要一些高级的视觉组件.为了满足这一需求,并且能高效的实现,你可以把多个 ...

  6. Codesys——PLCopen基本运动控制功能块的使用方法总结

    MC_Halt 在MC_MoveVelocity模式下,用MC_Halt停止其轴,当前轴的状态由 ContinuousMotion(当前转速)--->DiscreteMotion(速度不为0)- ...

  7. 使用git命令 (git reset --hard HEAD) 回退版本信息

    Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100 ...

  8. SQL server用到的SQL语句备份下

    这是触发器用于关联条件的 -------------1-------------- set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo ALTER trigger ...

  9. 【POJ 1275】 Cashier Employment

    [题目链接] 点击打开链接 [算法] 设Ti为第i小时有多少个出纳员开始工作,Vi表示第i小时有多少个来应聘的出纳员 那么,有 : 1. 0 <= Ti <= Vi 2. Ti + Ti- ...

  10. 为什么要使用XHTML?

    XHTML 是什么? XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language). XHTML 的目标是取代 HTML. XHTML 与 HTML ...