So installieren Sie Jenkins unter Windows Server 2012

13

Dies mag sich wie eine triviale Frage anhören, aber hier ist, was passiert:

  1. Ich hole mir die neueste Version von Jenkins als natives Installationsprogramm für Windows (1.491 in meinem Fall).
  2. Ich habe einen Windows Server 2012 (offizielles Release-Image, kein Release-Kandidat) eingerichtet und alle Updates installiert
  3. Ich versuche die Jenkins-Installation auszuführen.

Während des Installationsvorgangs funktioniert alles einwandfrei, mit Ausnahme des Teils, in dem der Dienst gestartet werden soll. An diesem Punkt werde ich informiert, dass ich nicht über ausreichende Berechtigungen zum Starten von Systemdiensten verfüge. Dies hat auf 2k8R2 ohne Probleme gearbeitet. Ich bin als Administrator angemeldet, der während der Serverinstallation erstellt wurde und der einzige Benutzer auf dem Computer ist.

Die vollständige Nachricht, die ich erhalte, lautet:

Dienst 'Jenkins' (Jenkins) konnte nicht gestartet werden. Stellen Sie sicher, dass Sie über ausreichende Berechtigungen zum Starten von Systemdiensten verfügen.

Hat noch jemand diese Probleme? Ich denke, die Interna von Server 2012 haben die Art der Installation geändert und der Jenkins-Installer ist nicht dafür gebaut.

Wenn mir jemand sagen kann, zu welcher Gruppe ich den Administrator hinzufügen muss, oder mir eine Problemumgehung für dieses Problem geben kann, hilft dies sehr.

Hamster
quelle

Antworten:

13

Sie müssen .net 3.5 installieren (auch wenn Sie .net 4+ installiert haben)

Sie tun dies über den Server-Manager:

  • Konfigurieren Sie den lokalen Server
  • Fügen Sie Rollen und Funktionen hinzu
  • Klicken Sie auf "Weiter", bis Sie zum Abschnitt "Funktionen" gelangen
  • Aktivieren Sie das Kontrollkästchen ".net 3.5" (ich habe auch die Unterelemente auf gute Ergebnisse überprüft)
  • Wenn Sie eine Warnung erhalten, dass Sie einen alternativen Pfad angeben müssen, gehen Sie wie folgt vor:
    • Legen Sie das Windows-Installationsmedium ein.
    • Klicken Sie auf Einen alternativen Quellpfad angeben
    • Geben Sie D: \ sources \ sxs in das Pfadfeld ein (klicken Sie auf OK )
  • Klicken Sie auf Installieren

Sobald Sie dies getan haben, sollten Sie in der Lage sein, Jenkins über das MSI-Installationsprogramm zu installieren. Der Jenkins-Dienst kann jetzt erfolgreich gestartet werden.

Ich denke, Jenkins versucht .net 3.5 zu installieren, aber da das Installationsmedium "fehlt", hängt es (da es im Hintergrund ausgeführt wird) und aus diesem Grund tritt tatsächlich eine Zeitüberschreitung auf

DarcyThomas
quelle
Ich weiß nicht warum, aber das .NET Framework 3.5 scheint die einzige fehlende Voraussetzung zu sein ... Vielen Dank für diesen Hinweis, der das ursprüngliche Problem
behebt
3

Ich habe es endlich geschafft!

Ich musste nicht nur .NET 3.5 (Thankyou DarcyThomas) installieren, sondern auch eine Konfigurationsdatei zum Installationsverzeichnis hinzufügen.

Fügen Sie dem Installationsverzeichnis eine Datei mit dem Namen jenkins.exe.config mit dem folgenden Inhalt hinzu:

<configuration> 
  <runtime> 
     <generatePublisherEvidence enabled="false"/> 
  </runtime> 
</configuration> 

Es stellt sich heraus, dass Windows beim Starten des Dienstes versucht, über das Internet ein Zertifikat herunterzuladen, um den Unterzeichner der ausführbaren Datei zu bestätigen. In meinem Fall, in dem der Server keinen Internetzugang hat, schlägt dies fehl. Ich habe hier die Lösung gefunden .

Ich hoffe, das erspart allen anderen die stundenlangen Schmerzen, die ich gerade durchgemacht habe. Prost.

Ben Cull
quelle
Welche Edition von Windows Server 2012 haben Sie ausgeführt? Das musste ich bei meiner Standard Edition nie tun.
HaMster
Windows Server 2012-Datenzentrum - Obwohl ich dachte, dass es hauptsächlich unsere Netzwerkarchitektur war, die Dinge kaputt machte, anstatt die Edition selbst.
Ben Cull
2

Auf der Grundlage dieser Antwort von Jan habe ich eine Lösung gefunden. Das Problem ist, dass Windows nach dem Zertifikat für den Dienst sucht und Ihr Server keinen Internetzugang hat. Am besten aktivieren Sie den Internetzugriff auf den Server für die Installation von Jenkins. Sie brauchen es nicht mehr, wenn Jenkins installiert ist.

Sie können auch versuchen, die Zertifikatsüberprüfung auf diese Weise zu deaktivieren (obwohl ich nicht sicher bin, ob dies funktioniert).

1) Erstellen Sie das Verzeichnis: C:\Program Files (x86)\Jenkins

2) Erstellen Sie eine Textdatei mit dem Namen jenkins.exe.config

3) Fügen Sie der Textdatei den folgenden Text hinzu:

<configuration> 
  <runtime> 
     <generatePublisherEvidence enabled="false"/> 
  </runtime> 
</configuration>

4) Führen Sie das Setup als aus Administrator

Serj Sagan
quelle
Sie sollten wirklich keine Links posten. Wie wäre es, wenn Sie einfach Ihre andere Antwort hier einfügen?
BenjiWiebe
Ok ... das ist geschafft
Serj Sagan
2
Antworten zum Kopieren / Einfügen werden im Allgemeinen nicht empfohlen, wenn sie nicht ordnungsgemäß bezogen / zitiert wurden (dies fällt unter Plagiat).
Asche999
0

Erstellen Sie stattdessen eine geplante Windows-Aufgabe, die nur ausgeführt wird, wenn Windows gestartet wird. Unter einigen Windows-Distributionen funktioniert das Ausführen von Jenkins als Dienst nicht sofort. Dieser Ansatz ist ein Hack, aber es funktioniert. Ich habe es auf mehreren Windows-Knoten verwendet.

Ich persönlich denke, dass die Jenkins-Dokumente unter Windows diesbezüglich noch etwas verbessert werden müssen. Vielleicht auch ein bisschen mehr Arbeit ...

Ich hoffe das hilft.

carlspring
quelle
Ich dachte an das Gleiche und gehe jetzt so damit um. Ich möchte jedoch einigen Leuten, die neu in diesem Thema sind, eine kurze Einführung geben, und es wäre schön, wenn Jenkins daran arbeiten würde. Ich denke, ich werde sie auf dieses Problem aufmerksam machen oder mich selbst engagieren. Aber danke für den Hinweis.
HaMster
Bitte schreiben Sie zurück, wenn eine bessere Lösung gefunden wird oder wenn Sie sie schließlich dazu bringen, dies zu beheben. Ich musste bei meinem vorherigen Job über zwei Jahre damit leben, und es war ärgerlich. Das JNLP-Installationsprogramm funktioniert in vielen Fällen nicht sofort (dies ist eines davon). Ich denke, anstatt zu versuchen, die dummen DLLs von Windows zu verwenden, sollten sie ... ein Befehlszeilenskript aufrufen, das es entweder als Dienst hinzufügt oder einen geplanten Auftrag erstellt. Ich denke, das sollte ziemlich einfach sein.
Carlspring
Ich hatte nie Probleme mit dem nativen Installationsprogramm für Windows, das auf der Download-Seite der Jenkins-Homepage bereitgestellt wird . Das erste Mal, dass ich die Installation nicht erfolgreich abgeschlossen habe, war in dem oben beschriebenen Fall, auch wenn ich es mehrmals mit unterschiedlichen Szenarien versucht habe. Also, wie gesagt, ich denke, dies ist ein Server 2012-spezifisches Problem
HaMster
Oh, ich habe das jedes Mal unter Windows Server 2008 gesehen. Sicher.
Carlspring
Es ist ein Windows Server, der kein Problem mit dem Internetzugang hat
Serj Sagan