script模块可以在本地写一个脚本,然后在远程服务器上执行。如下
name: 将本地脚本复制到远程主机并运行之
action: script
creates # 一个文件名,当这个文件存在,则该命令不执行
free_form= # 本地脚本路径
removes # 一个文件名,这个文件不存在,则该命令不执行
案例:在远程主机上执行脚本(本地脚本不需要赋执行权限)
~~~
[admin@node1 tmp]$ ansible webserver -m script -a 'a.sh' -b --ask-sudo-pass
[DEPRECATION WARNING]: The sudo command line option has been deprecated in favor of the "become" command line arguments. This feature will be removed in version 2.6. Deprecation warnings can be disabled by
setting deprecation_warnings=False in ansible.cfg.
SUDO password:
192.168.20.137 | SUCCESS => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 192.168.20.137 closed.\r\n",
"stdout": "\r\n",
"stdout_lines": [
""
]
}
192.168.20.138 | SUCCESS => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 192.168.20.138 closed.\r\n",
"stdout": "\r\n",
"stdout_lines": [
""
]
}
[admin@node1 tmp]$ ansible webserver -a 'cat /tmp/a.txt' -b --ask-sudo-pass
[DEPRECATION WARNING]: The sudo command line option has been deprecated in favor of the "become" command line arguments. This feature will be removed in version 2.6. Deprecation warnings can be disabled by
setting deprecation_warnings=False in ansible.cfg.
SUDO password:
192.168.20.138 | SUCCESS | rc=0 >>
Sat Mar 17 16:38:27 CST 2018
192.168.20.137 | SUCCESS | rc=0 >>
Sat Mar 17 16:38:27 CST 2018
~~~
- 第一章:Ansible基础入门
- 第二章:Ansible系列手册
- 第一节:Ansible系列之主机清单
- 第二节:Ansible系列之变量
- 第三节:Ansible系列之YAML
- 第四节:Ansible系列之条件判断
- 第五节:Ansible系列之循环
- 第六节: Ansible系列之tags
- 第七节:Ansible系列之Jinja2
- 第三章:Ansible系列之模块
- 第一节:user模块
- 第二节:group模块
- 第三节:cron模块
- 第四节:copy模块
- 第五节: file模块
- 第六节:yum模块
- 第七节:service模块
- 第八节:shell模块
- 第九节:script模块
- 第十节:setup模块
- 第十一节:filesystem和mount模块
- 第十二节:synchronize模块
- 第十三节: get_url模块
- 第十四节: package模块
- 第十五节:stat模块
- 第十六节:unarchive模块
- 第十七节: commang模块
- 第四章:Ansible-playbook介绍
- 第五章:Ansible系统环境
- 第一节:Ansible Role 系统环境之epel设置