geerlingguy.jenkins

Rola Ansible: Jenkins CI

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.

Zainstaluj
ansible-galaxy install geerlingguy.jenkins
Licencja
mit
Pobrania
2.7M
Właściciel
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns