ansible-doc和命令模块

一、ansible-doc命令

  • 格式为 ansible 主机名 -m 模块 -a "模块参数"

  • 查看模块参数

[devops@master ansible]$ ansible-doc yum

# 搜索EXAMPLE,可以找到一些案例

  • 查看模块的参数
[devops@master ansible]$ ansible-doc -s yum

  • -k 提示输入ssh密码,而不是通过密钥登录的

二、命令模块

1、shell模块

  • 最常用的命令模块,命令都能被识别到

  • 还有一些高级的特性

  • chdir 选项可以切换一个目录

  • creates=/opt/file.txt touch tmp.txt 如果这个文件存在,后面命令不执行

  • removes 当文件不存在的时候,命令不执行

[devops@master ansible]$ ansible all -m shell -a "ls /mnt"
node2 | CHANGED | rc=0 >>
hgfs

node1 | CHANGED | rc=0 >>
hgfs

2、command模块

  • 有一些特殊符号不能被识别

  • > 和 | 和 & 这些符合不能被识别到

[devops@master ansible]$ ansible all -m command -a "ls /root"
node1 | CHANGED | rc=0 >>
anaconda-ks.cfg

node2 | CHANGED | rc=0 >>
anaconda-ks.cfg

3、raw模块

  • 不支持shell的高级特性,但是和shell模块一样的使用

4、script模块

  • 读取的是这个脚本的命令,并不是传输这个文件到其他的节点上面,而且不需要+x权限,只是读取这些命令而已

  • 它是将主控节点的脚本放在被控节点上面运行,但是不会被传输过去

# 就能在其他的被控节点上面运行这些命令了

[devops@master ansible]$ cat touch.sh 
ls /tmp
[devops@master ansible]$ ansible all -m script -a "touch.sh"

posted @ 2025-09-05 16:26  乔的港口  阅读(12)  评论(0)    收藏  举报