Rundeck steuert Proxmox über die REST-API
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
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>