wcm_io_devops.jenkins_configuration_as_code
wcm_io_devops.jenkins_configuration_as_code
Ta rola zarządza instalacją, konfiguracją i aktualizacją pluginu Jenkins Configuration as Code (JCasC).
Zadania:
- Instalacja pluginu JCasC
- Konfiguracja ścieżki dla pluginu JCasC
- Wdrażanie plików konfiguracyjnych JCasC
- Przeładowanie JCasC
Wymagania
Ta rola wymaga Ansible w wersji 2.7 lub wyższej oraz działającego Jenkinsa na instancji docelowej.
Zmienne Roli
Dostępne zmienne są wymienione poniżej, wraz z ich wartościami domyślnymi.
jenkins_casc_admin_username: admin
Nazwa użytkownika admina Jenkinsa.
jenkins_casc_admin_password: admin
Hasło admina Jenkinsa.
jenkins_casc_owner: jenkins
Użytkownik systemu Linux dla Jenkinsa.
jenkins_casc_group: "{{ jenkins_casc_owner }}"
Grupa użytkownika Jenkinsa w systemie Linux.
jenkins_casc_jenkins_hostname: localhost
Nazwa hosta instancji Jenkinsa.
jenkins_casc_jenkins_port: 8080
Port HTTP instancji Jenkinsa.
jenkins_casc_jenkins_url_prefix: ""
Prefiks URL instancji Jenkinsa, np. przy uruchamianiu w tomcat.
jenkins_casc_jenkins_base_url: "http://{{ jenkins_casc_jenkins_hostname }}:{{ jenkins_casc_jenkins_port }}{{ jenkins_casc_jenkins_url_prefix }}"
Podstawowy URL instancji Jenkinsa.
jenkins_casc_jenkins_home: "/var/lib/jenkins"
Ścieżka do katalogu jenkins casc zawierającego pliki yaml do konfiguracji.
jenkins_casc_config_path: "{{ jenkins_casc_jenkins_home }}/jcasc"
Ścieżka do katalogu jenkins casc zawierającego pliki yaml do konfiguracji.
jenkins_casc_config_path_configure: false
Włącza/wyłącza konfigurację ścieżki konfiguracji. Gdy ta wartość jest ustawiona na true, ścieżka JCasC w instancji Jenkinsa jest ustawiana na jenkins_casc_config_path
. Gdy ścieżka różni się od wcześniej ustawionej, konfiguracja jest bezpośrednio przeładowywana.
jenkins_casc_config_fileglobs: []
Pliki konfiguracyjne/szablony do przesłania. Gdy wynik tego kroku się zmienia, konfiguracja zostanie przeładowana.
jenkins_casc_config_unmanaged_delete: false
Kontroluje, czy pliki istniejące w 'jenkins_casc_config_path' są usuwane, gdy nie są uwzględnione w 'jenkins_casc_config_fileglobs'. Usunięcie zostanie wykonane tylko wtedy, gdy przynajmniej jeden plik został przesłany do 'jenkins_casc_config_path'.
jenkins_casc_script_timeout: 60
Czas oczekiwania dla zadań jenkins_script w sekundach.
jenkins_casc_plugins_present:
- name: configuration-as-code
version: "1.3"
- name: configuration-as-code-support
version: "1.3"
Pluginy potrzebne do configuration-as-code.
jenkins_casc_secrets_dir: /var/jenkins_secrets
Folder, w którym poświadczenia będą przechowywane na hoście głównym. Ścieżka będzie konfigurowana w zmiennej środowiskowej SECRETS.
jenkins_casc_secrets_unmanaged_delete: true
Kontroluje, czy rola usunie istniejące, ale nie zdefiniowane poświadczenia z jenkins_casc_secrets_dir. Usunięcie zostanie wykonane tylko wtedy, gdy przynajmniej jeden sekret został przesłany do 'jenkins_casc_secrets_dir'.
jenkins_casc_secrets: []
# Przykład:
# - id: credential-id
# value: credential-value
Lista par id/wartość dla poświadczeń. id
może być potem odwołane w jcasc jako ${id}
jako odniesienie do wartości.
Zależności
Ta rola zależy od roli wcm_io_devops.jenkins_plugins w celu instalacji/odinstalacji pluginów.
Jako zależność przejrzysta rola ta korzysta z roli wcm_io_devops.jenkins_facts aby uzyskać listę zainstalowanych pluginów z instancji Jenkinsa.
Przykładowy Playbook
Ten playbook ustawi ścieżkę konfiguracyjną JCasC na
/var/lib/jenkins/jcasc-folder
i wdroży wszystkie pliki .yml
i
.yaml
znalezione w file/jcasc/my-jenkins/
do tego folderu.
- name: "Wdrożenie jcasc"
hosts: jenkins
vars:
jenkins_casc_config_path_configure: true
jenkins_casc_config_path: "/var/lib/jenkins/jcasc-folder"
jenkins_casc_config_fileglobs:
- file/jcasc/my-jenkins/*.yml
- file/jcasc/my-jenkins/*.yaml
roles:
- wcm_io_devops.jenkins_configuration_as_code
Licencja
Apache 2.0
ansible-galaxy install wcm_io_devops.jenkins_configuration_as_code