环境说一下

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. [JavaEE] Data Validation

    When we create Entity and Respority, we also need to do validations to protect our data. In Java, va ...

  2. 【Android 开发实例】时间管理APP开发之数据库设计

    当然也能够先写界面什么的.可是,总认为先把数据库后台写好在写界面比較放心. 对于数据库的设计,我一開始没什么概念.甚至不知道怎样下手,一開始想着设计成几个表?有哪些字段? 最后用了两天时间,还是一无所 ...

  3. PHP移动互联网开发笔记(3)——运算符

    原文地址:http://www.php100.com/html/php/rumen/2014/0326/6704.html 一.PHP的运算符 PHP中有丰富的运算符集,它们中大部分直接来自于C语言. ...

  4. UVa 11475 - Extend to Palindrome

    題目:給你一個字符串,在後面拼接一部分使得它變成回文串,使得串最短.輸出這個回文串. 分析:KMP,dp.這裡利用KMP算法將串和它的轉置匹配,看結束時匹配的長度就可以. 因為串比较長.使用KMP比较 ...

  5. Android 应用按返回键异常退出的问题

    开发过程中遇到按返回键异常退出的问题,log显示为空指针异常,进一步产看是由于onActivityResult得到的Intent为空. 按返回键复写代码例如以下: @Override public v ...

  6. hdu3488Tour KM算法

    //给一个有向图, //找出若干环,使得这些环覆盖全部点且每一个点仅仅能在一个环中 //问所得的全部环的全部边权值之和的最小值为多少 //对于每一个点仅仅有一个入度和一个出度.那么将每一个点拆成 // ...

  7. iconfont 不居中的问题

    引用 阿里的 iconfont 发现跟我的文字不居中 页面中实际展示的时候,发现 iconfont 字体飘起来了 原因是:iconfont 的基线跟 文字 的基线不同导致的. 解决办法:给 iconf ...

  8. java使用poi读取doc和docx文件(maven自动导入依赖包)

    java使用poi读取doc和docx文件(maven自动导入依赖包) 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝 ...

  9. 转 美制电线标准AWG与公制、英制单位对照

    在以太网和xDSL接入网设计中,经常会碰到诸如24AWG.26AWG等等表示电缆直径的方法.其实AWG(American Wire Gauge)是美制电线标准的简称,AWG值是导线厚度(以英寸计)的函 ...

  10. hdoj--1205--吃糖果(规律)

     吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub ...