【问题标题】:Rundeck controlling Proxmox through REST APIRundeck 通过 REST API 控制 Proxmox
【发布时间】:2020-10-27 04:45:57
【问题描述】:

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

提前致谢

问候

【问题讨论】:

    标签: ansible rundeck proxmox


    【解决方案1】:

    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>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多