Rundeck Powershell 将选项传递给脚本
Rundeck Powershell pass options to script
我的问题是如何将选项/参数传递到强大的 shell 脚本中?无法在文档中找到它或任何其他关于它的好东西 post。我知道这是可能的,因为我在 rundeck YouTube 频道的视频中看到了它。
有人知道我在哪里可以找到它吗?
使用内联脚本只需添加 @option.youroption@
,确保 fill 正确的参数在 windows 框中执行。我举几个例子,大家看看:
作业定义(内联 PowerShell 脚本):
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='opt1' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>700b58f6-9bae-4d97-b97d-dd4c7efba9ca</id>
<loglevel>INFO</loglevel>
<name>JobWINRM</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>name: windows</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "hi"</exec>
</command>
<command>
<fileExtension>.ps1</fileExtension>
<script><![CDATA[Write-Host "@option.opt1@"]]></script>
<scriptargs />
<scriptinterpreter>powershell.exe</scriptinterpreter>
</command>
</sequence>
<uuid>700b58f6-9bae-4d97-b97d-dd4c7efba9ca</uuid>
</job>
</joblist>
在 "Arguments" 文本框中使用 "external script" passing 一些参数。
Powershell 脚本:
### hello.ps1 ###
Param($Variable1 = "Hello", $Variable2 = "World")
"$Variable1 $Variable2"
Rundeck 工作定义:
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='opt1' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>854a8639-ad98-4520-b446-359ec2eaf531</id>
<loglevel>INFO</loglevel>
<name>JobWINRMEXT</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>name: windows</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "hi"</exec>
</command>
<command>
<fileExtension>.ps1</fileExtension>
<scriptargs>"${option.opt1}"</scriptargs>
<scriptfile>/home/user/scripts/hello.ps1</scriptfile>
<scriptinterpreter>powershell.exe</scriptinterpreter>
</command>
</sequence>
<uuid>854a8639-ad98-4520-b446-359ec2eaf531</uuid>
</job>
</joblist>
我的问题是如何将选项/参数传递到强大的 shell 脚本中?无法在文档中找到它或任何其他关于它的好东西 post。我知道这是可能的,因为我在 rundeck YouTube 频道的视频中看到了它。
有人知道我在哪里可以找到它吗?
使用内联脚本只需添加 @option.youroption@
,确保 fill 正确的参数在 windows 框中执行。我举几个例子,大家看看:
作业定义(内联 PowerShell 脚本):
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='opt1' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>700b58f6-9bae-4d97-b97d-dd4c7efba9ca</id>
<loglevel>INFO</loglevel>
<name>JobWINRM</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>name: windows</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "hi"</exec>
</command>
<command>
<fileExtension>.ps1</fileExtension>
<script><![CDATA[Write-Host "@option.opt1@"]]></script>
<scriptargs />
<scriptinterpreter>powershell.exe</scriptinterpreter>
</command>
</sequence>
<uuid>700b58f6-9bae-4d97-b97d-dd4c7efba9ca</uuid>
</job>
</joblist>
在 "Arguments" 文本框中使用 "external script" passing 一些参数。
Powershell 脚本:
### hello.ps1 ###
Param($Variable1 = "Hello", $Variable2 = "World")
"$Variable1 $Variable2"
Rundeck 工作定义:
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='opt1' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>854a8639-ad98-4520-b446-359ec2eaf531</id>
<loglevel>INFO</loglevel>
<name>JobWINRMEXT</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>name: windows</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "hi"</exec>
</command>
<command>
<fileExtension>.ps1</fileExtension>
<scriptargs>"${option.opt1}"</scriptargs>
<scriptfile>/home/user/scripts/hello.ps1</scriptfile>
<scriptinterpreter>powershell.exe</scriptinterpreter>
</command>
</sequence>
<uuid>854a8639-ad98-4520-b446-359ec2eaf531</uuid>
</job>
</joblist>