JAVA调用shell脚本利用ansible修改多节点上的redis参数
创建hosts文件
创建ansible-playbook执行时所用到的hosts文件,例如 /etc/redis/hosts
利用shell命令根据传入的host名和地址写入hosts文件:
#sethosts.sh echo [$] >>/etc/redis/hosts
count=
while [ $# -ge ];do
sudo echo $ >>/etc/redis/hosts
let count=count+
shift
done
调用命令:
sh sethosts.sh webservers 10.11.12.13 10.11.12.14
hosts文件:
[webservers]
10.11.12.13
10.11.12.14
playbook编写
编写设置redis参数的playbook,host以变量传入,就是上一步写入的host名:
#setRedisParam.yml
---
- hosts: "{{hostname}}"
vars:
http_port:
max_clients:
remote_user: root
tasks:
- redis:
command: config
name: "{{paraname}}"
value: "{{paravalue}}" - name: redis config rewrite
command: /home/admin/redis-4.0./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
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;
}
JAVA调用shell脚本利用ansible修改多节点上的redis参数的更多相关文章
- Java 调用 shell 脚本详解
这一年的项目中,有大量的场景需要Java 进程调用 Linux的bash shell 脚本实现相关功能. 从之前的项目中拷贝的相关模块和网上的例子来看,有个别的“陷阱”造成调用shell 脚本在某些特 ...
- java调用shell脚本小demo
复制指定文件cpp.sh: [root@localhost soft]# vim cpp.sh#!/bin/bash name="$1"\cp /home/soft/test/${ ...
- [转载]JAVA调用Shell脚本
FROM:http://blog.csdn.net/jj12345jj198999/article/details/11891701 在实际项目中,JAVA有时候需要调用C写出来的东西,除了JNI以外 ...
- java调用shell脚本,并获得结果集的例子
/** * 运行shell脚本 * @param shell 需要运行的shell脚本 */ public static void execShell(String shell){ try { Run ...
- java调用shell脚本
/** * 运行shell脚本 * @param shell 需要运行的shell脚本 */ public static void execShell(String shell){ try { Run ...
- java调用shell脚本执行操作
//定时清空 日志 String shellString = "sh /home/jyapp/delete_log.sh"; Process process = Runtime.g ...
- Java 执行Shell脚本指令
一.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRu ...
- java基础/java调用shell命令和脚本
一.项目需求: 从某一机构获取证书,证书机构提供小工具,执行.sh脚本即可启动服务,本地调用该服务即可获取证书. 问题:linux服务器启动该服务,不能关闭.一旦关闭,服务即停止. 解决方案:java ...
- java程序利用ansible修改redis服务参数
第一步,java调用shell paraname和paravalue是传给playbook的变量. try { String cmd5 = "sudo ansible-playbook /s ...
随机推荐
- Centos 7 Mysql 最大连接数超了问题解决
错误:Can not connect to MySQL server. Too many connections -mysql 1040错误 这是因为对 Mysql 进行访问,未释放的连接数已经达到 ...
- linux c++下遍历文件
https://blog.csdn.net/u013617144/article/details/44807333
- DevExpress v19.1新版亮点——WinForms篇(三)
行业领先的.NET界面控件DevExpress v19.1终于正式发布,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WinForms v19.1中新增的一些控 ...
- Python---进阶---捕获异常
一.编写一个计算减法的方法,当第一个数小于第二个数时,抛出“被减数不能小于减数”的异常 ------------------------------------------------- def ji ...
- es6的...用法
...将一个数组转为用符号分隔的参数序列 1.console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 2. var args = [0, 1, 2]; f.apply ...
- Ubuntu操作
1. 从windows 拷贝文件到Ubuntu: scp /c/Users/init/Downloads/pycharm-community-2019.3.tar.gz alice@192 ...
- php array_values()函数 语法
php array_values()函数 语法 作用:返回数组的所有值(非键名)富瑞华大理石平台 语法:array_values(array) 参数: 参数 描述 array 必需.规定数组. ...
- pages
pages pages 接受一个数组,每一项都是一个字符串,指定 SWAN App 都有哪些页面.每一项代表页面的[路径 + 文件名],数组第一项代表 SWAN 初始页面. SWAN 中新增或减少页面 ...
- 【bzoj1096】[ZJOI2007]仓库建设
*题目描述: L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天,L公司的总 ...
- R which
setwd("E:/courses/molecular biology/homework1st") genes <- read.table('genes.txt',sep = ...