关于Ansible的模块 ⑦

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


在继《关于Ansible的模块 ①》《关于Ansible的模块 ②》《关于Ansible的模块 ③》《关于Ansible的模块 ④》《关于ansible的模块 ⑤》《关于ansible的模块 ⑥》之后,继续学习Ansible常用模块之通用模块。

command模块

ansible的默认模块是command,可以使用-m command指定使用command模块也可以直接省略。

command在远程节点上执行命令和shell模块类似,但不支持$HOME、"<"、">"、"|"、";"、"&"等操作。

1. 常用参数

参数默认值含义
cmdnull要运行的命令
chdirnull在运行命令之前,先进入该目录
createsnull如文件存在,则不运行此步骤
removesnull如文件存在,则运行此步骤
argvnull以list而非string模式传递命令
free_formnullshell模块接受一个自由形式的命令作为字符串来运行
stdinnull将命令的stdin直接设置为指定的值
stdin_add_newlinetrue是否向标准输入数据追加换行符
strip_empty_endstrue在结果中去除 stdout/stderr 末尾的空行。
warn是否启用任务告警

2. 使用示例

2.1 简单执行命令

ansible all -m command -a "free -h"
ansible all -a "free -h"   #省略-m参数默认就使用command模块

2.2 command模块与shell模块一样支持执行命令前更换目录

ansible all -m command  -a "chdir=/tmp  cat shell.txt"

2.3 不支持">"等符号

ansible all -m command -a 'echo "this is command test">/tmp/cmd.txt'

script模块

script模块可以帮助在远程主机上执行ansible主机本地的脚本,脚本不需要拷贝到远程主机上。

1. 常用参数

参数默认值含义
cmdnull要运行的命令
chdirnull在运行命令之前,先进入该目录
createsnull如远程主机上某文件存在,则不执行该步骤
removesnull如远程主机上某文件不存在,则不执行该步骤
decrypttrue控制使用vault自动解密源文件。
executablenull调用脚本的可执行文件的名称或路径。
free_formnull本地脚本文件的路径,后跟可选参数。

2. 使用示例

2.1 执行远程主机脚本

 ansible all -m script -a 'chdir=/tmp test.sh'

2.2 如果远程主机上存在文件/tmp/1.txt,则不执行/tmp/test.sh

ansible all -m script -a 'creates=/tmp/1.txt /tmp/test.sh'

反之,如果远程主机上不存在/tmp/1.txt,就会执行脚本/tmp/test.sh:

2.3 如果远程主机上不存在文件文件/tmp/1.txt,则不执行/tmp/test.sh

ansible all -m script -a 'removes=/tmp/1.txt /tmp/test.sh'

反之,如果远程主机上存在/tmp/1.txt,就会执行脚本/tmp/test.sh:

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值