博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA调用shell脚本利用ansible修改多节点上的redis参数
阅读量:6085 次
发布时间:2019-06-20

本文共 1293 字,大约阅读时间需要 4 分钟。

创建hosts文件

创建ansible-playbook执行时所用到的hosts文件,例如 /etc/redis/hosts 

利用shell命令根据传入的host名和地址写入hosts文件:

#sethosts.shecho [$1] >>/etc/redis/hostscount=2while [ $# -ge 2 ];do    sudo echo $2 >>/etc/redis/hosts    let count=count+1    shiftdone

调用命令:

sh sethosts.sh webservers 10.11.12.13 10.11.12.14

hosts文件:

[webservers]10.11.12.1310.11.12.14

playbook编写

编写设置redis参数的playbook,host以变量传入,就是上一步写入的host名:

#setRedisParam.yml ---- hosts: "{
{hostname}}" vars: http_port: 80 max_clients: 200 remote_user: root tasks: - redis: command: config name: "{
{paraname}}" value: "{
{paravalue}}" - name: redis config rewrite command: /home/admin/redis-4.0.7/src/redis-cli config rewrite

调用playbook的脚本:

#setvar.sh ansible-playbook -i /etc/redis/hosts /setRedisParam.yml --extra-vars "hostname=$1 paraname=$2 paravalue=$3"

调用命令:

sh setvar.sh webservers maxclients 777

java关键代码

利用org.apache.commons.cli.CommandLine进行命令调用

String cmd = "sh";        ExecResult resultAnsibleHosts = shellExecCommand.exec(cmd, setHostsArgs);        ExecResult resultAnsible = shellExecCommand.exec(cmd, ansibleArgs);        if(!resultHosts.isSuccess() ||!resultAnsibleHosts.isSuccess() || !resultAnsible.isSuccess()){            return null;        }

 

转载于:https://www.cnblogs.com/jugglee/p/8658368.html

你可能感兴趣的文章
codeforces Gym 100187A A. Potion of Immortality
查看>>
2016校招内推 -- 腾讯SNG前端 -- 面试经历
查看>>
HDU 4125 Moles 段树+KMP
查看>>
Apache2.2+Tomcat7.0整合配置详解
查看>>
Android程序的入口点
查看>>
嵌套怀疑条件运算符和一个逗号,大神寻求答案(自愿解决)
查看>>
50、Toast自定义布局
查看>>
STM32F4 Timer simplified block diagram
查看>>
python安装
查看>>
poj 1979 Red and Black(dfs水题)
查看>>
javascript与java编码互转
查看>>
【C++】类的特殊成员变量+初始化列表
查看>>
pip安装使用详解
查看>>
数学 - Codeforces Round #319 (Div. 1)A. Vasya and Petya's Game
查看>>
ExtJs--02--MessageBox相关弹出窗口alert,prompt,confirm采用
查看>>
滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(9月7日~9月13日)...
查看>>
NSDictionary 键值对查找
查看>>
初步boost之pool图书馆学习笔记
查看>>
QR代码简单
查看>>
Linux内核启动流程分析(一)【转】
查看>>