关于Ansible模块 ⑥

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


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

shell模块,在远程节点上通过/bin/sh执行命令。如果一个操作可以通过yum、copy实现,那么建议不要使用shell、command这样通用的命令模块。因为通用的命令模块不会根据具体操作的特点进行状态判断,所以当没有必要重新再执行的时候,它还是会重新执行一遍。

shell模块支持$HOME、、"<"、">"、"|"、";"、"&"等操作。

1. 常用参数

参数 默认值 含义
cmd null 指定要运行的命令
chdir null 在运行命令之前,先进入该目录
creates null 如文件存在,则不会运行该步骤
removes null 如文件不存在,则不会运行该步骤
executable null 更改用于执行命令的shell,需要指定可执行文件的绝对路径
free_form null shell模块接受一个自由形式的命令作为字符串来运行
stdin null 将命令的stdin直接设置为指定的值
stdin_add_newline 是否向标准输入数据追加换行符
warn 是否启用任务告警

2. 使用示例

2.1 查看远程主机文件是否存在

ansible all -m shell -a "ls /tmp|grep test.sh"

2.2 查看文件内容:

ansible all -m shell -a "cat /tmp/test.sh"

2.3 查看远程主机IP

ansible all -m shell -a "ifconfig ens32|awk -F \"[ ]+\" 'NR==2{print \$3}'"

2.4 创建一个文件并写入内容

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

2.5 执行远程主机指定脚本

ansible all -m shell -a "/tmp/test.sh"

2.6 执行命令前更换目录

ansible all -m shell -a 'chdir=/tmp echo "this is shell test">shell.txt'

未完待续......

感谢您的阅读与分享!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 16:24:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 16:24:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 16:24:03       87 阅读
  4. Python语言-面向对象

    2024-04-12 16:24:03       96 阅读

热门阅读

  1. SQL SERVER 备份

    2024-04-12 16:24:03       32 阅读
  2. stmmac_dvr_probe解析

    2024-04-12 16:24:03       39 阅读
  3. Go 之缓冲通道限制协程并发数目

    2024-04-12 16:24:03       34 阅读
  4. C语言什么是寄存器变量?如何实现?

    2024-04-12 16:24:03       39 阅读
  5. 36岁程序员,10年前错过了阿里,我一点都不后悔

    2024-04-12 16:24:03       38 阅读
  6. 【蓝桥杯日常】

    2024-04-12 16:24:03       36 阅读
  7. Composer安装与配置详解

    2024-04-12 16:24:03       35 阅读
  8. 蓝桥杯省B组复习(小白篇)

    2024-04-12 16:24:03       40 阅读
  9. C++ 的内存安全与效率

    2024-04-12 16:24:03       42 阅读
  10. 力扣经典150题第十八题:整数转罗马数字

    2024-04-12 16:24:03       45 阅读