2016-07-29 17 views
1

Ich bin ziemlich neu zu Rundeck und evaluiert es als Alternative zu Jenkins, unsere adhoc operativen Aufgaben auszuführen.Rundeck - Job auf localhost als anderer Benutzer ausführen

Wir haben alle Befehle & Skripts auf dem Rundeck-Server, die als spezifischer Benutzer ausgeführt werden müssen, zB: ubuntu.

habe ich versucht, Konfigurationen zu ändern an einigen Stellen wie /etc/rundeck/framework.properties (framework.ssh.user = ubuntu) und /var/rundeck/projects/myproject/etc/resources.xml (set username = "ubuntu" für localhost node) aber mein job läuft immer als benutzer 'rundeck', das ist ziemlich frustrierend, da ich zuerst dachte, dass es einfach sein sollte, das zu erreichen.

Also, fehlt mir etwas oder kann Rundeck nicht Skript lokal als anderer Benutzer auf "rundeck" ausführen?

UPDATE: ich eine Lösung für die jetzt gefunden, das ist das Script Schritt zu verwenden, dann im Voraus Option Invocation String I wie „sudo -u ubuntu“, um das so mein Skript läuft als ubuntu von Rundeck einstellen.

Allerdings ist es immer noch nicht wirklich praktisch für die Verwendung dieser sudo, zum Beispiel Umgebungsvariablen Erhaltung Problem.

+0

Können Sie das Skript selbst mit den gewünschten Benutzern ausführen lassen? – Fabio

+0

@Fabio eigentlich müssen wir es als 'ubuntu' für die Kompatibilität mit anderen Tools und Frameworks, die wir verwenden, ausführen. Wir haben viele Skripte oder Befehle, die auf andere Tools zugreifen können - so dass sie alle zu Ubuntu wechseln müssen, ist für uns momentan keine Option. – Arcobaleno

+0

Was ist mit einem einzigen Skript, das andere Skripte als Ubuntu ausführt? Sie können das/die ursprüngliche (n) Skript (e) als erstes Argument und die anderen Argumente als die folgenden übergeben. Ist das realistischer? – Fabio

Antwort

0

@Arcobaleno müssen Sie auf den Rundeck-Server schicken, um das SSH-Setup zu verwenden. Der "Local Command" oder ein Befehlsschritt, der nicht gesendet wird, verwendet den Local Node Executor, der ein Plugin-Punkt ist. Sie können einen Local Node-Executor erstellen, um implizit an den gewünschten Benutzer sudo zu senden und den Befehl auszuführen.

+0

Kannst du genauer sagen, wie das ist ziemlich neu für mich, ich versuchte mit Command, Script, Local Command und auch versuchen, einen Befehl auf Zielknoten (localhost) in der Registerkarte Commands und scheint keiner von ihnen verwendet meine SSH-Konfiguration, ist Irgendwelche der lokalen Knoten Executor, die Sie erwähnten? Wenn nicht, wie kann ich Local Node Executor erstellen? – Arcobaleno

0

Sie müssen ssh von Ihrem lokalen Host zu Ihrem localhost (lokalhost als Remote-Server angeben).

d.h.

[ubuntu]$ ssh [email protected] with passwordless ssh. 

Copy id_rsa.pub zu ~/.ssh/authorized_keys. (id_ras.pub wird im Standardverzeichnis /var/lib/rundeck/.ssh/id_rsa.pub. gespeichert).

Dann können Sie Ihr Programm mit Ihrem ubuntu env ausführen.

Das funktioniert für mich.