创建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参数的更多相关文章

  1. Java 调用 shell 脚本详解

    这一年的项目中,有大量的场景需要Java 进程调用 Linux的bash shell 脚本实现相关功能. 从之前的项目中拷贝的相关模块和网上的例子来看,有个别的“陷阱”造成调用shell 脚本在某些特 ...

  2. java调用shell脚本小demo

    复制指定文件cpp.sh: [root@localhost soft]# vim cpp.sh#!/bin/bash name="$1"\cp /home/soft/test/${ ...

  3. [转载]JAVA调用Shell脚本

    FROM:http://blog.csdn.net/jj12345jj198999/article/details/11891701 在实际项目中,JAVA有时候需要调用C写出来的东西,除了JNI以外 ...

  4. java调用shell脚本,并获得结果集的例子

    /** * 运行shell脚本 * @param shell 需要运行的shell脚本 */ public static void execShell(String shell){ try { Run ...

  5. java调用shell脚本

    /** * 运行shell脚本 * @param shell 需要运行的shell脚本 */ public static void execShell(String shell){ try { Run ...

  6. java调用shell脚本执行操作

    //定时清空 日志 String shellString = "sh /home/jyapp/delete_log.sh"; Process process = Runtime.g ...

  7. Java 执行Shell脚本指令

    一.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRu ...

  8. java基础/java调用shell命令和脚本

    一.项目需求: 从某一机构获取证书,证书机构提供小工具,执行.sh脚本即可启动服务,本地调用该服务即可获取证书. 问题:linux服务器启动该服务,不能关闭.一旦关闭,服务即停止. 解决方案:java ...

  9. java程序利用ansible修改redis服务参数

    第一步,java调用shell paraname和paravalue是传给playbook的变量. try { String cmd5 = "sudo ansible-playbook /s ...

随机推荐

  1. html常见标签及用法整理

    <!DOCTYPE html> <!--#浏览器的兼容模式--> <html lang="en"> <head> <!--he ...

  2. 022-OpenStack 中虚拟机hostname问题

    第一种: openstack中直接使用 hostnamectl 修改主机名,主机名在内核中的信息会被立即修改,但是当系统重启之后,主机名又重新变成原来的主机名称了.openstack主机名由cloud ...

  3. Codeforces 920 反图联通块 线段树质因数暴力

    A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...

  4. es相关查询接口

    1.查看指定es中所有的索引 GET http://IP:9200/_cat/indices?v 2.修改指定索引的相关配置信息 PUT http://IP:9200/index_name/_sett ...

  5. Flask【第6篇】:Flask中的信号

    补充的flask实例化参数以及信号 一.实例化补充 instance_path和instance_relative_config是配合来用的.这两个参数是用来找配置文件的,当用app.config.f ...

  6. ZROI 19.07.30 简单图论/kk

    1.最短路 NOI2019 D2T1 我被这题送Fe了/lb 只有zz才会写二维线段树,比如我. 实际上你只需要矩形取min就可以. kd-tree可以随便过,最慢的点\(0.1s\). 另外一种简单 ...

  7. React Native 之TouchableOpacity组件

    使用TouchableOpacity组件 实现单击事件只需要声明onPress属性即可,其他同理,实现onPressIn,onPressOut,onLongPress constructor(prop ...

  8. asp.net上传超大文件

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  9. Internet History, Technology, and Security(week5)——Technology: Internets and Packets

    前言: 之前都在学习Internet的历史,从这周开始,进入到了Internet技术的学习. Layer1: Link Introduction / The Link Layer 80年代之前,主流网 ...

  10. [CSP-S模拟测试]:寿司(暴力)

    题目描述 小$c$是一名$oier$.最近,他发现他的数据结构好像学傻了.因为他在刷题时碰到了一道傻逼数据结构题,强行使用了平衡树来解决,卡着时间$AC$.为此,他被狠狠地嘲讽了一番.于是,小$c$找 ...