geerlingguy.jenkins

Ansible Rolle: Jenkins CI

CI

Installiert Jenkins CI auf RHEL/CentOS und Debian/Ubuntu-Servern.

Anforderungen

curl muss auf dem Server installiert sein. Neuere Versionen von Jenkins benötigen Java 8 oder höher (siehe die Test-Playbooks im Verzeichnis molecule/default für ein Beispiel, wie man neuere Java-Versionen für Ihr Betriebssystem verwendet).

Rollenvariablen

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

jenkins_package_state: present

Der Zustand der Installation des jenkins-Pakets. Standardmäßig installiert diese Rolle Jenkins, führt jedoch kein Upgrade durch (bei paketbasierten Installationen). Wenn Sie immer auf die neueste Version aktualisieren möchten, ändern Sie dies auf latest.

jenkins_hostname: localhost

Der System-Hostname; normalerweise funktioniert localhost gut. Dies wird während der Einrichtung verwendet, um mit der laufenden Jenkins-Instanz über HTTP-Anfragen zu kommunizieren.

jenkins_home: /var/lib/jenkins

Das Jenkins-Homedirectory, das unter anderem zum Speichern von Artefakten, Arbeitsbereichen und Plugins verwendet wird. Diese Variable ermöglicht es Ihnen, den Standardort /var/lib/jenkins zu überschreiben.

jenkins_http_port: 8080

Der HTTP-Port für die Weboberfläche von Jenkins.

jenkins_admin_username: admin
jenkins_admin_password: admin

Standardanmeldeinformationen für das Admin-Konto, das beim ersten Mal erstellt wird, wenn Jenkins installiert wird.

jenkins_admin_password_file: ""

Standarddatei für das Admin-Passwort, die beim ersten Mal erstellt wird, wenn Jenkins installiert wird als /var/lib/jenkins/secrets/initialAdminPassword.

jenkins_jar_location: /opt/jenkins-cli.jar

Der Ort, an dem die Datei jenkins-cli.jar abgelegt wird. Dies wird verwendet, um mit Jenkins über die CLI zu kommunizieren.

jenkins_plugins:
  - blueocean
  - name: influxdb
    version: "1.12.1"

Jenkins-Plugins, die während der Bereitstellung automatisch installiert werden. Standardmäßig leere Liste ([]). Elemente können entweder mit Name oder als Dictionary mit den Schlüsseln name und version angegeben werden, um eine spezifische Version eines Plugins festzulegen.

jenkins_plugins_install_dependencies: true

Ob bei der Installation der Jenkins-Plugins auch die Abhängigkeiten der Plugins installiert werden sollen.

jenkins_plugins_state: present

Verwenden Sie latest, um sicherzustellen, dass alle Plugins in der aktuellsten Version laufen. Für jedes Plugin, dessen spezifische Version in der Liste jenkins_plugins festgelegt ist, wird der Zustand present anstelle des Wertes jenkins_plugins_state verwendet.

jenkins_plugin_updates_expiration: 86400

Anzahl der Sekunden, nach denen eine neue Kopie der Datei update-center.json heruntergeladen wird. Setzen Sie sie auf 0, wenn keine Cache-Datei verwendet werden soll.

jenkins_updates_url: "https://updates.jenkins.io"

Die URL, die für Jenkins-Plugin-Updates und Informationen zum Update-Center verwendet wird.

jenkins_plugin_timeout: 30

Die Verbindungszeitüberschreitung des Servers, in Sekunden, beim Installieren von Jenkins-Plugins.

jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"

(Optional) Dann kann die Jenkins-Version auf jede Version festgelegt werden, die auf http://pkg.jenkins-ci.org/debian/ (Debian/Ubuntu) oder http://pkg.jenkins-ci.org/redhat/ (RHEL/CentOS) verfügbar ist. Wenn die benötigte Jenkins-Version nicht in den Standardpaket-URLs verfügbar ist, können Sie die URL mit Ihrer eigenen überschreiben; setzen Sie jenkins_pkg_url (Hinweis: Die Rolle hängt von der gleichen Namenskonvention ab, die http://pkg.jenkins-ci.org/ verwendet).

jenkins_url_prefix: ""

Wird verwendet, um ein URL-Präfix für Ihre Jenkins-Installation festzulegen. Die Option wird als --prefix={{ jenkins_url_prefix }} zum Jenkins-Initialisierungsaufruf java hinzugefügt, sodass Sie auf die Installation unter einem Pfad wie http://www.example.com{{ jenkins_url_prefix }} zugreifen können. Stellen Sie sicher, dass Sie das Präfix mit einem / beginnen (z. B. /jenkins).

jenkins_connection_delay: 5
jenkins_connection_retries: 60

Menge an Zeit und die Anzahl der Versuche, die gewartet werden sollen, beim Verbinden mit Jenkins nach dem ersten Start, um zu überprüfen, ob Jenkins läuft. Die Gesamtwartezeit = delay * retries, sodass diese Rolle standardmäßig bis zu 300 Sekunden wartet, bevor sie eine Zeitüberschreitung auftritt.

jenkins_prefer_lts: false

Standardmäßig wird diese Rolle die neueste Version von Jenkins aus den offiziellen Repositories entsprechend der Plattform installieren. Sie können stattdessen die aktuelle LTS-Version installieren, indem Sie dies auf false setzen.

Die Standard-Repositories (unten aufgelistet) können ebenfalls überschrieben werden.

# Für RedHat/CentOS:
jenkins_repo_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.repo
jenkins_repo_key_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key

# Für Debian/Ubuntu:
jenkins_repo_url: deb https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }} binary/
jenkins_repo_key_url: https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key

Es ist auch möglich, das Hinzufügen der Repo-Datei zu verhindern, indem Sie jenkins_repo_url: '' setzen. Dies ist nützlich, wenn Sie beispielsweise Ihre eigenen Pakete signieren oder internem Paketmanagement (z. B. Spacewalk) betreiben.

jenkins_options: ""

Zusätzliche Optionen (z. B. Festlegen der HTTP-Keep-Alive-Zeitüberschreitung), die beim Start von Jenkins über JENKINS_OPTS in der systemd override.conf-Datei übergeben werden können, können mit der Variable jenkins_options konfiguriert werden. Standardmäßig sind keine Optionen spezifiziert.

jenkins_java_options: "-Djenkins.install.runSetupWizard=false"

Zusätzliche Java-Optionen für den Jenkins-Startbefehl, die über JENKINS_JAVA_OPTS in der systemd override.conf-Datei konfiguriert werden können, können mit der Variable jenkins_java_options festgelegt werden. Wenn Sie beispielsweise die Zeitzone, die Jenkins verwendet, konfigurieren möchten, fügen Sie -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York hinzu. Standardmäßig wird die Option hinzugefügt, um den Setup-Assistenten von Jenkins 2.0 zu deaktivieren.

jenkins_init_changes:
  - option: "JENKINS_OPTS"
    value: "{{ jenkins_options }}"
  - option: "JAVA_OPTS"
    value: "{{ jenkins_java_options }}"
  - option: "JENKINS_HOME"
    value: "{{ jenkins_home }}"
  - option: "JENKINS_PREFIX"
    value: "{{ jenkins_url_prefix }}"
  - option: "JENKINS_PORT"
    value: "{{ jenkins_http_port }}"

Änderungen, die an der systemd override.conf-Datei von Jenkins vorgenommen wurden; das standardmäßige Set von Änderungen legt das konfigurierte URL-Präfix, das Jenkins-Homedirectory, den Jenkins-Port fest und fügt die konfigurierten Jenkins- und Java-Optionen für den Start von Jenkins hinzu. Sie können andere Option/Wert-Paare hinzufügen, wenn Sie andere Optionen für die systemd override.conf-Datei von Jenkins festlegen müssen.

jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
  - "127.0.0.1"
  - "localhost"

Wenn Sie Jenkins hinter einem Proxyserver ausführen, konfigurieren Sie diese Optionen entsprechend. Andernfalls wird Jenkins mit einer direkten Internetverbindung konfiguriert.

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: jenkins
  become: true
  
  vars:
    jenkins_hostname: jenkins.example.com
    java_packages:
      - openjdk-8-jdk

  roles:
    - role: geerlingguy.java
    - role: geerlingguy.jenkins

Hinweis: java_packages müssen je nach Ihrer Distribution unterschiedliche Versionen haben (z. B. openjdk-11-jdk für Debian 10 oder java-1.8.0-openjdk für RHEL 7 oder 8).

Lizenz

MIT (Expat) / BSD

Autorinformationen

Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible for DevOps.

Installieren
ansible-galaxy install geerlingguy.jenkins
Lizenz
mit
Downloads
2.7M
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns