ansible常用模块之 -- script模块 -- 传输本地脚本后,在远程节点上运行该脚本

本文介绍Ansible中的script模块,它允许用户在远程主机上执行本地脚本。文章覆盖了模块的主要参数,如chdir、cmd和executable等,并提供了多个实际应用场景的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ansible常用模块之 -- script -- 传输本地脚本后,在远程节点上运行该脚本

script – 传输本地脚本后,在远程节点上运行该脚本

一、摘要

  • script 模块接受脚本名称,后跟一列以空格分隔的参数。
  • 需要一个 free form 命令或 cmd 参数,参见示例。
  • 路径上的本地脚本将被传输到远程节点,然后执行。
  • 给定的脚本将通过远程节点上的shell环境进行处理。
  • 这个模块不需要远程系统上的python,就像 raw 模块一样。
  • Windows目标也支持此模块。

二、参数

参数选项/默认值描述
chdir
在运行脚本之前,在远程节点上切换到此目录。
cmd
string
要运行的本地脚本的路径,后跟可选参数。
creates
如果远程节点上的文件名已经存在,则不会运行此步骤。
decrypt
boolean
· yes ←
· no
此选项使用vault控制源文件的自动解密。
executable
用于调用脚本的可执行文件的名称或路径。
free_form
本地脚本文件的路径,后跟可选参数。
removes
远程节点上的文件名,如果该文件名不存在,则不会运行此步骤。

三、示例

# 运行带有参数的脚本(自由形式)
- name: Run a script with arguments (free form)
  script: /some/local/script.sh --some-argument 1234

# 运行带有参数的脚本(使用'cmd'参数)
- name: Run a script with arguments (using 'cmd' parameter)
  script:
    cmd: /some/local/script.sh --some-argument 1234

# 只有当远程节点上不存在file.txt文件时,才能运行脚本
- name: Run a script only if file.txt does not exist on the remote node
  script: /some/local/create_file.sh --some-argument 1234
  args:
    creates: /the/created/file.txt

# 只有当远程节点上存在file.txt文件时,才运行脚本
- name: Run a script only if file.txt exists on the remote node
  script: /some/local/remove_file.sh --some-argument 1234
  args:
    removes: /the/removed/file.txt

# 在非系统路径中使用可执行文件运行脚本
- name: Run a script using an executable in a non-system path
  script: /some/local/script
  args:
    executable: /some/remote/executable

# 使用系统路径中的可执行文件运行脚本
- name: Run a script using an executable in a system path
  script: /some/local/script.py
  args:
    executable: python3

官方文档:https://docs.ansible.com/ansible/2.9/modules/script_module.html#script-module

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值