geerlingguy.jenkins
Ansible Rolle: Jenkins 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.
ansible-galaxy install geerlingguy.jenkins