Rundeck 通过 REST 控制 Proxmox API

Rundeck controlling Proxmox through REST API

我是 Rundeck 的新手,我是用 Docker 安装的。我的目标是使用其 API 控制 Proxmox 集群。我怎样才能做到这一点?也许使用 Ansible? 你有什么指点吗?

提前致谢

此致

Ansible 不是必需的。您可以创建一个 workflow with HTTP Workflow step plugin to send the API request to your Proxmox host (download the jar file from here and put it on the libext directory 或使用插件管理器安装它 [齿轮图标 > 插件 > 查找插件 > 搜索“HTTP Workflow Step”并单击“安装”按钮],您不需要重新启动实例).

或者,您可以使用 @option.myoption@ 语法为您的脚本步骤动态创建一个 script-step that the Proxmox API call using cURL directly. Also, you can pass 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>