RunDeck中的跨平台部署作业

时间:2017-02-22 13:41:40

标签: ansible rundeck

我在RunDeck中有很多Nix和Win环境。

我需要创建一个像“安装监控服务”这样的工作。这应该为linux和windows机器安装和配置一些服务。安装脚本肯定会有所不同。

但是我希望有一个逻辑工作“安装监控服务”,但它应该执行Linux脚本1和Windows脚本2或类似的东西。

在Job定义中有一个过滤器选项,但我无法将其应用于具体步骤,仅适用于整个作业。

看起来我需要一个步骤的过滤器:通过某些过滤器Windows步骤将跳过Linux实例等。

1 个答案:

答案 0 :(得分:1)

我使用一个简单的bash代码来启动特定于操作系统的代码。此代码在Windows和Linux节点上运行。它将在Linux节点上运行 GeckoElement clickedElement = e.Target.CastToGeckoElement(); if (xpathvalue != null) { GeckoHtmlElement element = (GeckoHtmlElement)browser.Document.GetSingleElement(xpathvalue); if (element != null) { element.Click(); } } ,在Windows节点上运行runLinuxFunction

runWindowsFunction

注意:我的所有Windows节点都安装了Cygwin,因此对于Windows,操作系统类型为 #!/bin/bash function windowsOrLinux() { if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then runLinuxFunction #<------------Linux returnCode=$? elif [ "$(expr substr $(uname -s) 1 6)" == "CYGWIN" ]; then runWindowsFunction #<------------Windows returnCode=$? else echo $(hostname) "Unknown OS type. Skip..." returnCode=1 fi if [ $returnCode == 0 ]; then return 0 else return 1 fi } 。如果你的windows不支持bash,你可以使用python。