Rundeck steuert Proxmox über die REST-API

Oct 26 2020

Ich bin völlig neu in Rundeck, das ich mit Docker installiert habe. Mein Ziel ist es, einen Proxmox-Cluster mit seinen APIs zu steuern. Wie kann ich das machen? Vielleicht mit Ansible? Hast du Hinweise für mich?

Danke im Voraus

Grüße

Antworten

1 MegaDrive68k Oct 26 2020 at 11:57

Ansible ist dafür nicht notwendig. Sie können einen Workflow mit dem HTTP-Workflow-Schritt- Plugin erstellen , um die API- Anforderung an Ihren Proxmox-Host zu senden ( laden Sie die JAR-Datei von hier herunter und legen Sie sie im Libext-Verzeichnis ab oder installieren Sie sie mit dem Plugin-Manager [ Zahnradsymbol > Plugins> Plugins suchen>) Suchen Sie nach "HTTP Workflow Step" und klicken Sie auf "Installieren". Sie müssen die Instanz nicht neu starten.

Alternativ können Sie einen Workflow mit einem erstellen Skript-Schritt , dass der Proxmox API - Aufruf cURL direkt. Sie können Optionen auch mithilfe der @option.myoption@Syntax dynamisch an Ihren Skriptschritt übergeben (z. B. die Aktionen aus einer Optionsliste übergeben).

Ich hinterlasse ein Beispiel für eine Jobdefinition mit beiden Möglichkeiten (Verwenden des httpbin.org- Dienstes und Übergeben einiger Optionen an beide Schritte).

<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>