geerlingguy.jenkins
Rola Ansible: Jenkins CI
Instaluje Jenkins CI na serwerach RHEL/CentOS oraz Debian/Ubuntu.
Wymagania
Wymagana jest instalacja curl
na serwerze. Ponadto, nowsze wersje Jenkinsa potrzebują Java 8 lub wyższej (zobacz przykłady w plikach testowych w katalogu molecule/default
jak używać nowszych wersji Java dla twojego systemu operacyjnego).
Zmienne Roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
jenkins_package_state: present
Stan instalacji pakietu jenkins
. Domyślnie ta rola instaluje Jenkinsa, ale nie aktualizuje go (przy użyciu instalacji opartej na pakiecie). Jeśli chcesz, aby zawsze był aktualizowany do najnowszej wersji, zmień to na latest
.
jenkins_hostname: localhost
Nazwa hosta systemu; zwykle localhost
działa dobrze. Będzie używana podczas konfiguracji do komunikacji z działającą instancją Jenkinsa za pomocą żądań HTTP.
jenkins_home: /var/lib/jenkins
Katalog domowy Jenkinsa, w którym przechowywane są artefakty, przestrzenie robocze i wtyczki. Ta zmienna pozwala na zmianę domyślnej lokalizacji /var/lib/jenkins
.
jenkins_http_port: 8080
Port HTTP dla interfejsu webowego Jenkinsa.
jenkins_admin_username: admin
jenkins_admin_password: admin
Domyślne dane logowania do konta administratora, które zostanie utworzone przy pierwszej instalacji Jenkinsa.
jenkins_admin_password_file: ""
Domyślny plik hasła administratora, który będzie utworzony przy pierwszej instalacji Jenkinsa jako /var/lib/jenkins/secrets/initialAdminPassword.
jenkins_jar_location: /opt/jenkins-cli.jar
Lokalizacja pliku jenkins-cli.jar
. Używany do komunikacji z Jenkinsa za pomocą CLI.
jenkins_plugins:
- blueocean
- name: influxdb
version: "1.12.1"
Wtyczki Jenkinsa, które będą instalowane automatycznie podczas konfiguracji. Domyślnie jest to pusta lista ([]
). Elementy mogą używać nazwy lub słownika z kluczami name
i version
, aby przypisać konkretną wersję wtyczki.
jenkins_plugins_install_dependencies: true
Czy wtyczki Jenkinsa powinny również instalować zależności innych wtyczek.
jenkins_plugins_state: present
Użyj latest
, aby upewnić się, że wszystkie wtyczki są zaktualizowane do najnowszej wersji. Dla każdej wtyczki, która ma określoną wersję w liście jenkins_plugins
, zostanie użyty stan present
zamiast wartości jenkins_plugins_state
.
jenkins_plugin_updates_expiration: 86400
Liczba sekund, po której pobierany jest nowy plik update-center.json. Ustaw na 0, jeśli nie chcesz używać pliku cache.
jenkins_updates_url: "https://updates.jenkins.io"
URL do aktualizacji wtyczek Jenkinsa oraz informacji o update-center.
jenkins_plugin_timeout: 30
Limit czasu połączenia z serwerem, w sekundach, podczas instalacji wtyczek Jenkinsa.
jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"
(Optional) Można ustawić wersję Jenkinsa na dowolną wersję dostępną na http://pkg.jenkins-ci.org/debian/
(Debian/Ubuntu) lub http://pkg.jenkins-ci.org/redhat/
(RHEL/CentOS). Jeśli potrzebna wersja Jenkinsa nie jest dostępna w domyślnych adresach pakietów, możesz nadpisać URL swoim; ustaw jenkins_pkg_url
(Uwaga: rola opiera się na tej samej konwencji nazewniczej używanej przez http://pkg.jenkins-ci.org/
).
jenkins_url_prefix: ""
Używane do ustawienia prefiksu URL dla twojej instalacji Jenkinsa. Opcja jest dodawana jako --prefix={{ jenkins_url_prefix }}
do inicjalizacji Jenkinsa, więc możesz uzyskać dostęp do instalacji pod ścieżką jak http://www.example.com{{ jenkins_url_prefix }}
. Upewnij się, że prefiks zaczyna się od /
(np. /jenkins
).
jenkins_connection_delay: 5
jenkins_connection_retries: 60
Ilość czasu i liczba prób czekania na połączenie z Jenkins po jego uruchomieniu, żeby upewnić się, że Jenkins działa. Całkowity czas oczekiwania = delay
* retries
, więc domyślnie ta rola będzie czekać do 300 sekund przed zakończeniem oczekiwania.
jenkins_prefer_lts: false
Domyślnie ta rola zainstaluje najnowszą wersję Jenkinsa korzystając z oficjalnych repozytoriów zgodnie z platformą. Możesz zainstalować aktualną wersję LTS, ustawiając to na true
.
Domyślne repozytoria (wymienione poniżej) można również nadpisać.
# Dla 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
# Dla 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
Możliwe jest również zablokowanie dodawania pliku repozytorium, ustawiając jenkins_repo_url: ''
. Jest to przydatne, jeśli np. podpisujesz własne pakiety lub prowadzisz wewnętrzne zarządzanie pakietami (np. Spacewalk).
jenkins_options: ""
Dodatkowe opcje (np. ustawienie limitu czasu utrzymania połączenia HTTP), które można przekazać do Jenkinsa podczas uruchamiania przez JENKINS_OPTS
w pliku systemd override.conf, można skonfigurować za pomocą zmiennej jenkins_options
. Domyślnie nie są dodawane żadne opcje.
jenkins_java_options: "-Djenkins.install.runSetupWizard=false"
Dodatkowe opcje Java dla polecenia uruchomienia Jenkinsa, skonfigurowane przez JENKINS_JAVA_OPTS
w pliku systemd override.conf, mogą być ustawione za pomocą zmiennej jenkins_java_options
. Na przykład, jeśli chcesz skonfigurować strefę czasową, w której działa Jenkins, dodaj -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York
. Domyślnie dodawana jest opcja dezaktywująca kreatora konfiguracji Jenkinsa 2.0.
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 }}"
Zmiany wprowadzone w pliku systemd override.conf dla Jenkinsa; domyślne zestawy zmian ustawiają skonfigurowany prefiks URL, katalog domowy Jenkinsa, port Jenkinsa oraz dodają skonfigurowane opcje Jenkinsa i Java do uruchomienia Jenkinsa. Możesz dodać inne pary opcji/wartości, jeśli potrzebujesz ustawić inne opcje dla pliku systemd override.conf Jenkinsa.
jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
- "127.0.0.1"
- "localhost"
Jeśli uruchamiasz Jenkinsa za pośrednictwem serwera proxy, skonfiguruj te opcje odpowiednio. W przeciwnym razie Jenkins będzie skonfigurowany do bezpośredniego łączenia z Internetem.
Zależności
Brak.
Przykład Playbooka
- hosts: jenkins
become: true
vars:
jenkins_hostname: jenkins.example.com
java_packages:
- openjdk-8-jdk
roles:
- role: geerlingguy.java
- role: geerlingguy.jenkins
Zauważ, że pakiety Java mogą wymagać innych wersji w zależności od twojej dystrybucji (np. openjdk-11-jdk
dla Debian 10 lub java-1.8.0-openjdk
dla RHEL 7 lub 8).
Licencja
MIT (Expat) / BSD
Informacje Autorów
Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible for DevOps.
ansible-galaxy install geerlingguy.jenkins