SynopsisEinstellung Hudsons Prozess Benutzer auf Mac + Tomcat
Ich habe Hudson gründen auf unserem Mac OS Server (Snow Leopard 10.6.5), unter dem Standard Tomcat läuft (so, Tomcat 6), die aktiviert ist Verwenden der Server-Admin-Anwendung.
Ich möchte meine Hudson-Skripte als Unix-Benutzer/Login ausführen, die nicht die Tomcat-Anmeldung ist.
Einzelheiten
Mein Hudson Job ist ein Freestyle-Projekt, das Bash-Skripte ausgeführt wird, die xcodebuild aufrufen (es ist ein iPhone-Projekt) zu reinigen und die Build zu bauen.
Das Problem ist, dass Hudson (soweit ich sehen kann) mit diesem Standard-Setup mit Tomcat Unix-Benutzer, der _appserver ist.
Dies bedeutet, dass _appserver der Benutzer ist, der xcodebuild und alle Skripte aufruft, aus denen der Job besteht.
Ich würde für Hudson lieber seinen eigenen Unix-Login haben, komplett mit Home-Verzeichnis etc. Abgesehen davon, ein wenig glücklicher über die Berechtigungen usw. des Logins zu sein, der versucht, den Build zu machen, scheint Xcode selbst das zu bevorzugen Benutzer ein Home-Verzeichnis haben, und die Build-Protokolle werden mit Warnungen gefüllt wie:
2010-11-11 17: 29: 11,729 Interface Builder Cocoa touch Tool [58771: 1903] CFPreferences: Benutzerverzeichnis an file: // localhost/var/empty/Bibliothek/Anwendung% 20Support/iPhone% 20Simulator/Benutzer/ist nicht verfügbar. Benutzerdomänen sind volatil.
und
konnte nicht geöffnet werden gemeinsam genutzten Funktionen Speicher GSCapabilities (Keine solche Datei oder das Verzeichnis)
Plus I die Provisioning-Profile vermuten immer Gerät zu bauen arbeiten baut eine wäre viel einfacher, wenn die Anmeldung ein Standard-Login war, der die Ziele von Xcode erstellen kann.
ABER ich kann absolut keine Möglichkeit finden, das Login-Konto zu setzen! Es scheint genau die Art von Sache zu sein, die Sie tun möchten, aber haben das Netz nach Informationen vergeblich gesucht. Die tomcat-users.xml
fühlte sich an, als ob es nützlich sein könnte, schien aber nicht mit einem "echten" (Unix) Benutzer zu verknüpfen?
Ein anderer Ansatz könnte sein, mit Hudson zu leben, der _appserver ist, aber die Skripts selbst als mein Erstellungsbenutzer laufen lassen. Dies scheint auf sudo
zu zeigen, aber alles scheint so gesperrt zu sein Ich kann keinen Weg finden, ein Skript als ein anderer Benutzer auszuführen, sogar einen, den ich sperren kann, um minimalen Sicherheitszugriff zu haben ...?
Hoffen Sie, dass Sie Leuten helfen können!
Der Vorteil ist, dass Sie nicht mit Tomcat-Konfiguration herumspielen müssen – Sagar
Der Nachteil ist, dass Sie ziemlich viel Aufwand hinzufügen, besonders wenn Sie große Artefakte archivieren. Außerdem muss das Build-Protokoll vom Slave zum Master kopiert werden. –
Wie so? Unter der Annahme, dass der Build direkt auf dem Master stattfand (was in diesem Fall der Fall ist), müsste das Artefakt immer noch vom Arbeitsbereich in das Archivverzeichnis kopiert werden. Der einzige Unterschied besteht hier darin, dass das Kopieren aus dem Arbeitsbereich des Masters in das Archivverzeichnis des Masters vom Arbeitsbereich des Slaves kopiert wird - der Slave und der Master * sind das gleiche System *, also kein zusätzlicher Overhead. – Sagar