Rundeck 4.8.0执行PowerShell脚本遇错即终止,能否修改该行为?
解决Rundeck 4.8.0强制终止Windows PowerShell脚本的问题
Rundeck 4.x对WinRM执行的错误处理逻辑做了调整,默认会在脚本返回非0退出码时终止任务。要让任务继续执行,不用修改脚本,直接调整Rundeck的配置即可,具体有三种方法:
1. 针对单个节点配置
编辑目标Windows节点的资源配置(可以通过GUI的节点管理,或者本地的resources.yml/resources.xml文件),添加忽略退出码的属性:
- YAML格式示例:
nodes: - name: windows-node-01 hostname: 10.0.0.5 osFamily: windows winrm-ignore-exit-code: true # 其他WinRM必填配置(用户名、认证方式等) - XML格式示例:
<node name="windows-node-01" hostname="10.0.0.5" osFamily="windows"> <attribute name="winrm-ignore-exit-code" value="true" /> <!-- 其他属性 --> </node>
配置生效后,这个节点上的所有PowerShell脚本任务,即使返回非0码,Rundeck也不会强制终止任务,完全由脚本自身逻辑决定是否退出。
2. 针对单个任务配置
如果只需要某一个任务忽略退出码,在创建PowerShell任务时,打开高级选项,勾选「忽略退出码」(Ignore Exit Code)即可。这个设置仅影响当前任务,不会修改全局或节点配置。
3. 全局配置所有Windows节点
编辑Rundeck的rundeck-config.properties文件(通常位于/etc/rundeck/目录),添加一行配置:
winrm.default.ignoreExitCode=true
保存后重启Rundeck服务:
systemctl restart rundeckd
这样所有Windows节点的WinRM任务都会默认忽略退出码,和你之前使用Rundeck 3.x的行为一致。
内容的提问来源于stack exchange,提问作者Roger McCarrick
相关产品推荐
相关产品推荐

