【发布时间】:2020-10-27 04:45:57
【问题描述】:
我对使用 Docker 安装的 Rundeck 完全陌生。我的目标是使用其 API 控制 Proxmox 集群。我怎样才能做到这一点?也许与 Ansible? 你有什么指点吗?
提前致谢
问候
【问题讨论】:
我对使用 Docker 安装的 Rundeck 完全陌生。我的目标是使用其 API 控制 Proxmox 集群。我怎样才能做到这一点?也许与 Ansible? 你有什么指点吗?
提前致谢
问候
【问题讨论】:
Ansible 不是必需的。您可以使用HTTP Workflow step 插件创建workflow 以将API 请求发送到您的Proxmox 主机(download 此处的jar 文件和put it on the libext directory 或使用插件管理器安装它[齿轮图标>插件>找到Plugins > 搜索“HTTP Workflow Step”,点击“Install”按钮],不需要重启实例)。
或者,您可以使用script-step 创建一个工作流,Proxmox API 直接使用cURL 调用该工作流。此外,您可以使用@option.myoption@ 语法将options 动态传递给您的脚本步骤(例如,从选项列表中传递操作)。
我留下了一个作业定义示例,其中包含两种方法(使用httpbin.org 服务并将几个选项传递给两个步骤)。
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='action' value='anything' />
<option name='host' value='httpbin.org' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>da60f0f8-d3d1-4f6d-b01e-704e00fa2ae8</id>
<loglevel>INFO</loglevel>
<name>APICallExample</name>
<nodeFilterEditable>false</nodeFilterEditable>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<description>Example using http workflow step plugin</description>
<step-plugin type='edu.ohio.ais.rundeck.HttpWorkflowStepPlugin'>
<configuration>
<entry key='authentication' value='None' />
<entry key='checkResponseCode' value='true' />
<entry key='headers' value='{"Accept": "application/json"}' />
<entry key='method' value='POST' />
<entry key='printResponse' value='true' />
<entry key='printResponseToFile' value='false' />
<entry key='proxySettings' value='false' />
<entry key='remoteUrl' value='https://${option.host}/${option.action}' />
<entry key='responseCode' value='200' />
<entry key='sslVerify' value='false' />
<entry key='timeout' value='30000' />
</configuration>
</step-plugin>
</command>
<command>
<description>Example using script-step</description>
<fileExtension>.sh</fileExtension>
<script><![CDATA[curl -X POST "https://@option.host@/@option.action@" -H "accept: application/json"]]></script>
<scriptargs />
<scriptinterpreter>/bin/bash</scriptinterpreter>
</command>
</sequence>
<uuid>da60f0f8-d3d1-4f6d-b01e-704e00fa2ae8</uuid>
</job>
</joblist>
【讨论】: