1.5.3:script 模块
script模块用于在远程主机上执行Ansible服务器上的脚本(无需执行权限)。
script 模块同样不具有幂等性,所以在编写执行脚本时要注意做好幂等。
官方文档:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/script_module.html#ansible-collections-ansible-builtin-script-module
1.5.3.1:常用模块参数
参数 | 说明 |
---|---|
FREE_FORM | FREE_FORM不是一个特定的参数,是free form的字符串,表示可执行的命令。 |
chdir | 在执行命令前切换到指定的目录。 |
creates | 条件判断,指定一个文件名称(支持glob模式),如果文件存在,则不执行指定的操作(只有在指定文件不存在的情况下才进行本次操作)。 |
removes | 条件判断,指定一个文件名称(支持glob模式),当指定文件存在时,才执行本次操作。 |
1.5.3.2:示例
#Ansible服务器编写打印主机名的脚本
[root@ansible ~]# vim hostname.sh
#!/bin/bash
echo $HOSTNAME
#在远程主机上执行本地脚本,并取回结果
[root@ansible ~]# ansible all -m script -a /root/hostname.sh
192.168.1.111 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 192.168.1.111 closed.\r\n",
"stderr_lines": [
"Shared connection to 192.168.1.111 closed."
],
"stdout": "node111.yqc.com\r\n",
"stdout_lines": [
"node111.yqc.com"
]
}
192.168.1.113 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 192.168.1.113 closed.\r\n",
"stderr_lines": [
"Shared connection to 192.168.1.113 closed."
],
"stdout": "node113.yqc.com\r\n",
"stdout_lines": [
"node113.yqc.com"
]
}
192.168.1.112 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 192.168.1.112 closed.\r\n",
"stderr_lines": [
"Shared connection to 192.168.1.112 closed."
],
"stdout": "node112.yqc.com\r\n",
"stdout_lines": [
"node112.yqc.com"
]
}