2013-08-16 5 views
5

Ich benutze Bamboo, um einen Build zu erstellen, sowie einen Deploy auf einem Linux-Rechner (Ubuntu). Ich habe auch einen Build-Plan mit einem Remote-Agent unter Windows 7 64-Bit.Erzwingen, dass Bamboo einen spezifischen Build-Agenten für die Bereitstellung verwendet

Ich merke, dass Bamboo versuchen möchte, den Remote-Agent (Windows7) zu verwenden, um den Linux-Build zu Zeiten bereitzustellen. Wie verhindere ich das?

Ich sehe, dass ich Agents in den Bildschirmen zum Bearbeiten des Implementierungsplans festlegen kann, aber dafür müsste ein Linux-Agent erstellt und ein Linux-Agent bereitgestellt werden. Ist es möglich, denselben Linux-Agenten zum Erstellen und Deployen zu verwenden, während sichergestellt wird, dass die IMPORTATION IMMER den Linux-Agenten anstelle eines anderen verfügbaren Nicht-Linux-Agenten verwendet?

Antwort

6

Die nächste Sache, die wir gemacht haben, ist das Hinzufügen einer erforderlichen Fähigkeit zu bestimmten Agenten, die andere Agenten nicht haben. Definieren Sie auf dem Linux-Agenten eine benutzerdefinierte Funktion für diesen Agenten. Fügen Sie dann in den Anforderungen für die Bereitstellung diese benutzerdefinierte Funktion hinzu. Dies sollte verhindern, dass der Windows Remote Agent diesen Job übernimmt.

+1

WIE? Wie machst du das "genau in den Anforderungen für die Bereitstellung, diese benutzerdefinierte Fähigkeit enthalten?" Ich habe einige Agenten mit benutzerdefinierten Funktionen, aber kann nicht finden, wie Sie das tun, was Sie sagen? – Strelok

+2

Wir verwenden nicht die tatsächlichen Bereitstellungsprojekte von Bamboo, sondern nur eine normale Builddefinition. Gehen Sie zur Linux-Agentenseite und definieren Sie eine "CanBuildLinux" -Funktion und setzen Sie sie auf "True". Dann auf Ihrer Build-Konfiguration -> Standard-Job -> Anforderungen Registerkarte, erstellen "CanBuildLinux" gleich wahr. Jetzt können nur die Agenten mit dieser Fähigkeit diesen Build ausführen. –

+0

Brett Bim * seufz * :) Ich dachte, du verwendest das Deployment Project und findest irgendwie eine magische Option, die ich nach 3 Stunden des Klickens auf jeden einzelnen Link in diesem UI übersehen habe :) Danke für die Antwort und das beruhige mich es ist eigentlich unmöglich mit Deployment Projects;) – Strelok

1

Ich glaube nicht, dass eine Anwendungsfunktionalität zur Verfügung steht, um das zu tun, was Sie zu tun versuchen, abgesehen davon, dass ein Agent nur dafür vorgesehen ist, bestimmte Implementierungsprojekte zu bearbeiten.

Eine Problemumgehung, die dasselbe Ziel zu erreichen scheint, besteht jedoch darin, in Ihre Aufgaben einen Dummy-Schritt aufzunehmen, der nichts bringt, aber Bamboo dazu veranlasst, ihn an eine bestimmte Gruppe von Agenten zu senden.

Zum Beispiel habe ich das umgekehrte Problem, wo ich meine Bereitstellung auf einer Windows-Box und nicht eine Linux-Box ausführen muss. Ich schließe eine MSBuild-Aufgabe mit /? für den Lösungsnamen, der bewirkt, dass Bamboo die Bereitstellung nur an Windows-Server sendet, die Aufgabe jedoch nur die MSBuild-Befehlsoptionen im Protokoll druckt.

Ich bin sicher, dass Sie etwas ähnliches für Linux finden könnten. Außerdem können Sie eine benutzerdefinierte ausführbare Datei mit dem Tasktyp Command angeben. Wenn Sie diesen Befehl mit einem Pfad definieren und sicherstellen, dass er auf den Computern vorhanden ist, auf die Sie zielen möchten, können Sie möglicherweise das gewünschte Ergebnis erzielen. Die eigentliche ausführbare Datei könnte nur ein Skript sein, das nichts tut.

Verwandte Themen