Ich versuche, ein Jenkins-System einzurichten, wo ein bestimmtes Programm auf einer Platine im Netzwerk ausgeführt werden muss, auf die über Telnet zugegriffen wird. Wir reden hier von Hunderten solcher Jobs, deshalb werden wir mehrere Boards einrichten. Daher muss jedem Job ein Board zugewiesen werden, aber der Haken ist, dass nur ein Job gleichzeitig ein bestimmtes Board haben kann, sonst schlägt das Programm fehl.Jenkins - Verwalten eines Pools von Ressourcen
Die Lösung, die ich gerade habe, ist eine Master-Slave-Einrichtung, bei der ich mich mit der gleichen Maschine über SSH verbinde (also einen Master und mehrere Slaves auf demselben Rechner). Jeder der Slave-Knoten hat dann eine Bezeichnung für die IP-Adresse, zu der das Programm telnet muss. Dies funktioniert schedulingstechnisch, aber es kann Probleme verursachen, da alle Knoten SSH mit demselben Computer verbinden. Eine Verbindung mit den Boards per SSH ist nicht möglich.
Gibt es eine Möglichkeit, die gleiche Funktionalität wie oben zu erhalten, aber dann ohne SSH, um eine Verbindung zu demselben Rechner herzustellen? Also möchte ich im Grunde sagen können: Wir haben n verfügbare Maschinen, wenn ein Auftrag eintrifft, geben Sie ihm einen dieser Maschinen und übergeben Sie ihm ein Etikett, das zu diesem Rechner gehört (in diesem Fall seine IP-Adresse); Jetzt sind n-1 Maschinen übrig. Gegenseitiger Ausschluss kommt zwar nahe, erlaubt jedoch nicht die oben genannte Funktionalität, und Jobs, die auf eine Ressource warten, beanspruchen einen der Executoren eines Knotens.
Vielen Dank!
Ähnlich: http://stackoverflow.com/questions/10950439/resource-mange-external-nodes-in-jenkins-for-tests –