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远程命令报错: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远程连接执行shell脚本

有时候项目会要求远程登录到主机进行相应的ca

Java执行shell脚本关闭远程数据库

本实例为用Java执行shell脚本启动或关闭远程Mysql数据库,需求原因:游戏服务器合服后,为了节省内存消耗,需要关闭合服后的服务器不必要的数据库(一台服务器主机存在多个MySql数据库),以提高...

Linux下非交互式远程执行命令脚本(比ssh更好的方式)

背景 openssh在每台机器上都有,ssh与scp就像程序员的伴侣。 然而当要管理的机器规模越来越大时,ssh登陆到目标机器进行管理就变得不现实了。 虽然可以直接在ssh后面接命令的方式,进行...
  • ssx205
  • ssx205
  • 2013-06-04 20:35
  • 1143

利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)

最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此分享给大家,如有不足之处,欢迎大家指正 准备工作: 安装python 2.6.5: yum -y inst...

用python脚本执行ssh远程登录多台机器

Kids Return: [Python ]一个用ssh 来远程登录 多台机器并执行命令的脚本 [Python ]一个用ssh 来远程登录 多台机器并执行命令的脚本 .... 阅读器无法显示某些...

Java通过SSH2协议执行远程Shell脚本

Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)   2008-11-11 19:49:28|  分类: Ssh |字号 订阅 该工具Jar...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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