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

本文共 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

你可能感兴趣的文章
一周第三次课
查看>>
日常运维(一)
查看>>
SAP数据中心概述
查看>>
Druid数据库连接池就这么简单
查看>>
比特币现金BCH 硬分叉,能否突破$1500?
查看>>
Python最假的库:Faker
查看>>
IDE 插件新版本发布,开发效率 “biu” 起来了
查看>>
基于OAS设计可扩展OpenAPI
查看>>
Java多线程与高并发:java.util.concurrent包
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石
查看>>
Redis 基础、高级特性与性能调优
查看>>
BZT52C15S资料
查看>>
Laravel Telescope入门教程(上)
查看>>
Linux配置ip 及网络问题排查
查看>>
程序员到底有多累,多辛苦?上百万程序员‘知乎上’吐槽
查看>>
C++ Primer 笔记——理解std::move
查看>>
AndroidStudio用Cmake方式编译NDK代码(cmake配置.a库)
查看>>
Kafka入门
查看>>
【Infragistics教程】Sketch Prototypes的可用性研究和用户视频
查看>>
移植Modbus到STM32F103(4):串口数据长度和校验的支持
查看>>