关于ansbile工具的shell、command、script、raw模块的区别和使用场景

之前一直误解为shell和command一样是执行远程命令的,最近看了一下官方帮助文档才发现,犯了低级错误,其实每个模块都有自己的应用常用;简单说明一下ansible几个常用模块的区别,以便自己总结。

1.模块命令详细信息查询

ansible-doc 模块名称

2.command模块 [执行远程命令]

ansible client -m command -a "uname -n" -s

3.script模块 [在远程主机执行主控端的shell/python脚本]

ansible client -m script -a "/soft/ntpdate.py" -s

4.shell模块 [执行远程主机的shell/python脚本]

ansible client -m shell -a "/soft/file.py" -s

5.raw模块 [类似于command模块、支持管道传递]

ansible client -m raw -a "ifconfig eth0|sed -n 2p|awk ‘{print \$2}‘" -s
时间: 2024-10-26 04:45:56

关于ansbile工具的shell、command、script、raw模块的区别和使用场景的相关文章

ansible之command和raw模块

command模块 command模块为ansible默认模块,不指定-m参数时,使用的就是command模块: comand模块比较简单,常见的命令都可以使用,但其命令的执行不是通过shell执行的,所以,像这些 "<", ">", "|", and "&"操作都不可以,运行中的命令不支持变量使用以及不支持管道: 示例:显示当前用户 [[email protected] ~]# ansible all -

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环)

简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环) http://www.cnblogs.com/M18-BlankBox/p/5881700.html

I.MX6 Android shutdown shell command

/******************************************************************************* * I.MX6 Android shutdown shell command * 说明: * 想在I.MX6上执行shell关机命令,不过效果貌似不是很好,开关键多按两下又亮了. * * 2016-7-25 深圳 南山平山村 曾剑锋 ****************************************************

使用jq工具在Shell命令行处理JSON数据

因为最近要处理一些 JSON 数据格式,一大早经过一番搜索后,最终找到了 jq 这个很棒的工具.jq 允许你直接在命令行下对 JSON 进行操作,包括分片.过滤.转换等等. 首先在mac下安装jq,使用brew install jq就可以了,前提是安装了homebrew,如果在linux ubuntu下,应该可以使用sudo apt-get install jq安装. 让我们通过几个例子来说明 jq 的功能: 一.输出格式化,漂亮的打印效果 如果我们用文本编辑器打开 JSON,有时候可能看起来会

Makefile,Shell command,Shell Language 之间的联系

1. Makefile 首先要知道Makefile 是什么东西,Makefile 是一个指令文件,里面存储着自定义的命令(可以借助已有的命令创造而来)在不同的系统下对Makefile 的区别不一样,Linux/Unix系统中系统会先搜寻默认目录以及环境变量中路径中是否有Makefile 或 makefile(此类文件没有扩展名)但在Windows下是nmake Makefile文件中语法或用法: # 一些简单声明,变量的声明等 指令:for example  ----->       clean

LogStash启动报错:&lt;Redis::CommandError: ERR unknown command &#39;script&#39;&gt;与batch_count 的 配置

环境条件: 系统版本:centos 6.8 logstash版本:6.3.2 redis版本:2.4 logstash  input配置: input { redis { host => "172.16.73.33" #redis ip port => "52611" #redis 端口 password =>"123456" #redis 密码 db => 9 # 指定redis 库编号 data_type =>

shell传递参数 单双引号区别

shell传递参数 $0 对应的是当前 Shell 脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1.$2.$3……则分别对应着第 N 个位置的参数值,如图 所示. 举例子说明: 在上面例子中,echo内容在" "(双引号)中,如果 '  '(单引号)中.看下运行结果 其中,被赋值的变量按照脚本内容一模一样打印出来了.对比单引号和双引号可参考博文:linux shell中的单引号与双引号的区别(看完就不会有引号的疑

shell 脚本运行日志通用模块

目标 实现记录SHELL执行的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,脚本调用函数 源码 通用函数脚本program_log_new.sh function init_log() { sqlplus -S test/[email protected] <<EOF insert into program_log values($id,$day,'$1', sysdate,null,'S',null); commit exit EOF } function modify