ansible在远程执行本地脚本

原创 2015年11月18日 11:16:11
<span style="font-family: Arial, Helvetica, sans-serif;">#!/usr/bin/python</span>
import ansible.runner
import sys,os

#print len(sys.argv)
if len(sys.argv) != 3:
        print "usage: ansible-script <host-pattern> [scriptname and parms]"
        exit(1)
group_name=sys.argv[1]
script_name=sys.argv[2]

if not os.path.exists(script_name.split()[0]):
        print "%s:no such file" % (script_name.split()[0])
        exit(1)
results = ansible.runner.Runner(
pattern=group_name, forks=5,
module_name='script', module_args=script_name,
).run()

exit_code=0

#print results
#print results['contacted'].items()
if not results['contacted'].items() :
        print "No hosts found"
        sys.exit(1)
print "RESULTS ***********"
for (hostname, result) in results['contacted'].items():
#       print result
#       print "%s >>> %s" % (hostname, result['stdout'])
        if result['rc'] != 0:
                exit_code = result['rc']
                status =  "failed"
                print '\033[1;31;40m' #change frontcolor to red
                print "%s >>> %s \n%s" % (hostname,status,result['stdout'])
        else:
                status =  "success"
                print '\033[1;32;40m' #change frontcolor to green
                print "%s >>> %s \n%s" % (hostname,status,result['stdout'])
print '\033[0m'  #change frontcolor to default
sys.exit(exit_code)


使用方法:比如保存文件为ansible-script,运行命令为

 ansible-script <host-pattern> [scriptname and parms]

exp:  ansible-script testgroup test.sh



关于ansible远程执行的环境变量问题(login shell & nonlogin shelll)

问题 ansible调用playbook远程mvn执行打包时发现执行出错,找不到JAVA_HOME。 我们的exporter JAVA_HOME=/usr/java/jdk1.8.0写在/etc/...

使用ansible远程命令报错:Neither the JAVA_HOME 。。。

通过ansible远程命令报Java环境变量错误

Ansible--通过SSH与远程服务器连接

自动部署应用时是没有人工干预的,这种情况如果要输入密码才能拷贝文件至远程服务器,就不能实现自动部署的功能了...

FreeBSD环境下ansible的安装以及免密码连接远程主机

环境:FreeBSD系统,python2.7 本地机:172.20.254.181, 远程机:172.20.254.182. 1、在本地机上安装pip     curl -O https://r...

一个SSH批量远程执行脚本

  • 2017年12月07日 15:30
  • 3KB
  • 下载

远程执行命令脚本,可传密码

  • 2014年03月17日 08:48
  • 511B
  • 下载

使用Rserve远程执行R脚本

注1:关于Rserve网上有很多资料可以参考,详细情况可以参考“参考资料”部分,本文只是简单介绍一下Rserve,主要目的是记录一下Java远程执行R脚本文件的方法。注2:这里提到的远程执行R脚本文件...

利用putty在windows上通过脚本在远程Linux机器执行指令

一、前言     借用百度百科关于putty的描述:PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类U...
  • acaiwlj
  • acaiwlj
  • 2015年11月25日 15:31
  • 4903

TASKCTL中不使用代理,通过ssh免密连接执行远程脚本配置(SSH插件扩展)

使用TASKCTL调度服务时,如果需要跨用户或者跨服务器调度可以通过安装taskctl的代理来实现,但有时需要执行作业的服务器上仅仅只有几个脚本,此时再部署代理,就显得有点得不偿失了。我们知道TASK...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ansible在远程执行本地脚本
举报原因:
原因补充:

(最多只允许输入30个字)