Skip to content
章节导航

script 模块

script 模块传输后在远程节点上运行本地脚本。

相比 shell 模块 而言,script 模块功能更加强大,管理机机器拥有一个执行脚本,就可以使用 script 模块在所有被管理机器上运行。

常用参数

参数名说明
creates仅当远程节点上不存在creates配置的文件时才运行脚本
free_from参数值可以输入任何系统命令,实现远程管理
removes仅当远程节点上存在removes配置的文件时才运行脚本

更多参数可以使用命令 ansible-doc -s script 获取更多使用相关的文档或者查看官方文档

一些示例

执行本地脚本

bash
# 在本机预准备执行脚本
cat > /tmp/ansible-script.sh << 'EOL'
echo $(hostname -I) > /tmp/ansible-script.log
echo $(uptime) >> /tmp/ansible-script.log
echo $(free -m) >> /tmp/ansible-script.log
EOL

# 添加可执行权限
chmod +x /tmp/ansible-script.sh

# 远程执行
ansible all -i src/inventory.yml -m script -a "/tmp/ansible-script.sh"

# 使用shell模块检查输出 
ansible all -i src/inventory.yml -m shell -a "cat /tmp/ansible-script.log"

远程安装nginx

bash
# 在本机预准备执行脚本
echo 'yum install -y nginx' > /tmp/ansible-script.sh

# 远程执行
ansible all -i src/inventory.yml -m script -a "/tmp/ansible-script.sh"

# 使用shell模块检查是否安装成功
ansible all -i src/inventory.yml -m shell -a "nginx -v"