lean_delivery.jenkins
Instalacja Jenkins 2
Podsumowanie
Ta rola:
- instaluje jenkins2 na Ubuntu, Centos7, RHEL7
- wykonuje minimalną konfigurację (np. konfiguracja SMTP, instalacja wtyczek)
Zadania roli
- Zainstaluj Jenkins
- Zainstaluj wtyczki
- Skonfiguruj wtyczki za pomocą JCasC
- Skonfiguruj ustawienia SMTP za pomocą JCasC
- Dodaj poświadczenia za pomocą JCasC
- Skonfiguruj wtyczki za pomocą skryptów groovy
- Skonfiguruj ustawienia SMTP za pomocą skryptów groovy
- Dodaj poświadczenia za pomocą skryptów groovy
- Wygeneruj klucze SSH i skopiuj je na serwery podrzędne
Wymagania
- Minimalna wersja Ansible do instalacji: 2.7
- Java 8
- Obsługiwane systemy operacyjne:
- CentOS
- 8
- RHEL
- 8
- Amazon Linux 2
- Ubuntu 18
- Debian 9
- CentOS
Zmienne roli
konfiguracja jenkins
jenkins2_user- użytkownik i grupa systemowa używana do uruchamiania jenkins
domyślnie:jenkinsjenkins2_package_version- nazwa pakietu do instalacji jenkins
domyślnie:jenkinsjenkins2_release_line- wersja pakietu do zainstalowania: stabilna lub najnowsza
domyślnie:stablejenkins2_disable_gpg_check- pominięcie sprawdzenia gpg (tylko dla yum)
domyślnie:falsejenkins2_key_validate_certs- walidacja certyfikatów podczas instalacji klucza (tylko dla yum)
domyślnie:truejenkins2_context_path- Ścieżka kontekstu Jenkins
domyślnie:''jenkins2_cli_username- użytkownik do połączenia z jenkins cli
domyślnie:adminjenkins2_cli_password- hasło użytkownika do połączenia z jenkins cli
domyślnie:adminjenkins2_home_directory- Katalog, w którym Jenkins przechowuje swoją konfigurację i pliki robocze (checkouty, raporty budowy, artefakty, ...)
domyślnie:/var/lib/jenkins
Ustawienia konfiguracyjne Jenkins: używane w /etc/sysconfig/jenkins lub w /etc/default/jenkins
jenkins2_config_java_cmd- Wykonywalny plik Java do uruchamiania Jenkins
domyślnie:''jenkins2_config_java_options- Opcje do przekazania do Java podczas uruchamiania Jenkins.
domyślnie:-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false -Dmail.smtp.starttls.enable='true' -Dhudson.slaves.WorkspaceList=_jenkins2_config_http_port- Port, na którym Jenkins nasłuchuje.
domyślnie:8080jenkins2_config_listen_address- Adres IP, na którym Jenkins nasłuchuje żądania HTTP. Domyślnie wszystkie interfejsy (0.0.0.0).
domyślnie:''jenkins2_config_debug_level- Poziom debugowania dla logów - im wyższa wartość, tym więcej informacji. 5 to INFO.
domyślnie:5jenkins2_config_enable_access_log- Czy włączyć logi dostępu czy nie.
domyślnie:nojenkins2_config_handler_max- Maksymalna liczba wątków roboczych HTTP.
domyślnie:100jenkins2_config_handler_idle- Maksymalna liczba bezczynnych wątków roboczych HTTP.
domyślnie:20jenkins2_config_args- Przekaż dowolne argumenty do Jenkins. Pełna lista opcji: java -jar jenkins.war --help
domyślnie:''
Włączenie HTTPS
jenkins2_https_enabled- Używać lub nie używać połączenia zabezpieczonego.
domyślnie:truejenkins2_http_disabled- Wyłączanie niebezpiecznego połączenia.
domyślnie:falsejenkins2_config_https_port- Port Jenkins do połączeń zabezpieczonych (https).
domyślnie:8443jenkins2_local_keystore- Jeśli prawda - szukaj keystore na hoście ansible w {{ jenkins2_local_keystore_path }}. Jeśli fałsz - sprawdź keystore na zdalnym hoście. domyślnie:falsejenkins2_local_keystore_path- Ścieżka do lokalnego pliku keystore (w celu uniknięcia tworzenia samopodpisanych)
domyślnie:{{ role_path }}/files/{{ jenkins2_ssl_key_store_name }}jenkins2_ssl_configure- Konfigurować lub nie konfigurować połączenia ssl dla jenkins.
domyślnie:truejenkins2_ssl_key_store_name- Nazwa pliku keystore. Jeśli plik o tej nazwie istnieje w folderze roli/files - zostanie użyty jako keystore.
domyślnie:jenkins2-ssl.keystore.jksjenkins2_ssl_key_size- Rozmiar klucza certyfikatu.
domyślnie:4096jenkins2_ssl_key_store_password- Hasło do keystore.
domyślnie:123456jenkins2_ssl_key_store- Pełna ścieżka do pliku keystore.
domyślnie: '{{ jenkins2_home_directory }}/{{ jenkins2_ssl_key_store_name }}'jenkins2_ssl_certificate_provider- Tylko dla systemów Linux. https://docs.ansible.com/ansible/latest/openssl_certificate_module.html.
domyślnie:selfsigned
Certyfikat
jenkins2_ca_domain- Nazwa domeny certyfikatu.
domyślnie:example.comjenkins2_local_pkey_file_name- Nazwa certyfikatu prywatnego.
domyślnie:{{ ansible_hostname }}.ca-pkey.pemjenkins2_local_cert_file_name- Nazwa certyfikatu publicznego.
domyślnie:{{ ansible_hostname }}.ca-cert.pem
Konfiguracja proxy Jenkins
jenkins2_proxy_url- URL proxy do konfiguracji pobierania wtyczek
domyślnie:''jenkins2_proxy_host- Nazwa hosta serwera proxy
domyślnie:''jenkins2_proxy_port- Port serwera proxy
domyślnie:0jenkins2_proxy_username- Nazwa użytkownika do połączenia z proxy
domyślnie:''jenkins2_proxy_password- Hasło do połączenia z proxy
domyślnie:''jenkins2_proxy_no_proxy_hosts- Hosty do pominięcia w proxy
domyślnie:''
Konfiguracja generowania kluczy SSH
jenkins2_ssh_keys_generate- dodaj możliwość generowania par kluczy SSH pod użytkownikiem jenkins
domyślnie:falsejenkins2_ssh_keys_private_keyname- nazwa klucza prywatnego
domyślnie:id_rsajenkins2_ssh_keys_size- rozmiar siły klucza SSH RSA
domyślnie:4096jenkins2_ssh_keys_inv_slave_groupname- nazwa grupy podrzędnych w pliku inwentarza
domyślnie:jenkins_ssh_slaves
Sposób konfigurowania Jenkins
jenkins2_configure_by_casc- Ustaw konfigurację za pomocą JCasC jenkins2_configure_by_groovy powinno być = false domyślnie:truejenkins2_jcasc_directory- Relatywna ścieżka, w której JCasC będzie wyszukiwać pliki yaml domyślnie:jcascjenkins2_jcasc_config- Konfiguracja dla JCasC, którą można skopiować z istniejącej konfiguracji i wkleić do tej zmiennej Czasami konfiguracja skopiowana z interfejsu Jenkins nie jest odpowiednia do załadowania, należy ją najpierw przetestować
Jeśli wybrano jenkins2_configure_by_casc to poniższa konfiguracja nie powinna być używana:
- Global Tool Configuration
- ustawienia smtp
- konfiguracja wtyczek jenkins
- konfiguracja poświadczeń
- konfiguracja projektu bitbucket
- konfiguracja sonarqube
- kopiowanie plików niestandardowych
- konfiguracja Gitlab
- konfiguracja Github
- konfiguracja Jira
- konfiguracja wtyczki EC2
- konfiguracja bezpieczeństwa i autoryzacji
- Domyślna konfiguracja wtyczki `active-directory`
- Domyślna konfiguracja wtyczki `LDAP`
Używaj tylko konfiguracji JCasC! Proszę zapoznać się z przykładami playbooków poniżej
jenkins2_configure_by_groovy- Ustaw konfigurację za pomocą groovy, może być używana jeśli konfiguracja za pomocą groovy jest bardziej wygodna jenkins2_configure_by_casc powinno być = false domyślnie :false
Konfiguracja Global Tool
jenkins2_globaltools_enable- włącz automatyczną konfigurację dla wszystkich narzędzi globalnych
domyślnie:falsejenkins2_globaltools_jdk_enable- włącz automatyczną konfigurację dla JDK
domyślnie:truejenkins2_globaltools_jdk_version- lista wersji dla JDK (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_jdk_cred_user- nazwa użytkownika do repozytorium Oracle
domyślnie:'user'jenkins2_globaltools_jdk_cred_password- hasło do repozytorium Oracle
domyślnie:'password'jenkins2_globaltools_jdk_template- nazwa pliku szablonu konfiguracji JDK bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/jdk.groovyjenkins2_globaltools_maven_enable- włącz automatyczną konfigurację dla Maven
domyślnie:truejenkins2_globaltools_maven_version- lista wersji dla Maven (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_maven_template- nazwa pliku szablonu konfiguracji Maven bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/maven.groovyjenkins2_globaltools_ant_enable- włącz automatyczną konfigurację dla Ant
domyślnie:truejenkins2_globaltools_ant_version- lista wersji dla Ant (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_ant_template- nazwa pliku szablonu konfiguracji Ant bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/ant.groovyjenkins2_globaltools_nodejs_enable- włącz automatyczną konfigurację dla Node.js
domyślnie:truejenkins2_globaltools_nodejs_version- lista wersji dla Node.js (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_nodejs_template- nazwa pliku szablonu konfiguracji Node.js bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/nodejs.groovyjenkins2_globaltools_sonarscanner_enable- włącz automatyczną konfigurację dla SonarQube Scanner
domyślnie:truejenkins2_globaltools_sonarscanner_version- lista wersji dla SonarQube Scanner (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_sonarscanner_template- nazwa pliku szablonu konfiguracji SonarQube Scaner bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/sonarscanner.groovyjenkins2_globaltools_sonarscannermsbuild_enable- włącz automatyczną konfigurację dla SonarQube Scanner dla MSBuild
domyślnie:truejenkins2_globaltools_sonarscannermsbuild_version- lista wersji dla SonarQube Scanner dla MSBuild (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_sonarscannermsbuild_template- nazwa pliku szablonu konfiguracji SonarQube Scaner dla MSBuild bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/sonarscannermsbuild.groovyjenkins2_globaltools_gradle_enable- włącz automatyczną konfigurację dla Gradle
domyślnie:truejenkins2_globaltools_gradle_version- lista wersji dla SonarQube Scanner dla Gradle (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_gradle_template- nazwa pliku szablonu konfiguracji Gradle bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/gradle.groovyjenkins2_globaltools_docker_enable- włącz automatyczną konfigurację dla Dockera
domyślnie:truejenkins2_globaltools_docker_version- lista wersji dla Dockera (zdefiniowana jako lista)
domyślnie:[]jenkins2_globaltools_docker_template- nazwa pliku szablonu konfiguracji Dockera bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu domyślnie:globaltools/docker.groovy
ustawienia SMTP
jenkins2_smtp_enabled- ustawić konfigurację SMTP
domyślnie:truejenkins2_smtp_sysad_email- adres e-mail administratora jenkins
domyślnie:[email protected]jenkins2_smtp_user- adres e-mail administratora jenkins
domyślnie:[email protected]jenkins2_smtp_password- hasło użytkownika SMTP
domyślnie:passwordjenkins2_smtp_port- port serwera SMTP
domyślnie:587jenkins2_smtp_host- nazwa hosta serwera SMTP
domyślnie:smtp.office365.com
konfiguracja wtyczek Jenkins
jenkins2_updates_url- URL Centrum Aktualizacji. Używane jako podstawowy URL do pobierania wtyczek i pliku JSON update-center.json.
domyślnie:https://updates.jenkins.iojenkins2_plugins_timeout- limit czasu instalacji wtyczek
domyślnie:2000jenkins2_plugins_list- lista wtyczek (zostanie połączona z sugerowaną listą)
domyślnie:[]jenkins2_plugins_version- Włącz, aby określić numery wersji. Wszystkie zależności wtyczek muszą być podane w jenkins2_plugins_dict.
domyślnie:falsejenkins2_plugins_install_dependencies- Instaluj zależności wtyczek, jeśli dokładne wersje wtyczek nie są podane.
domyślnie:truejenkins2_plugins_dict- słownik wtyczek używanych zamiast list, jeśli wersja jest włączona. Cytuj wersję, aby zapobiec interpretacji wartości jako float. Przykład:ssh-slaves: '1.30.0'domyślnie:{}
konfiguracja poświadczeń
jenkins2_credentials_enabled- dodać poświadczenia
domyślnie:truejenkins2_credentials- mapa poświadczeń
konfiguracja bibliotek potoków
jenkins2_pipeline_libraries_enabled- skonfigurować Global Pipeline Libraries
domyślnie:falsejenkins2_pipeline_libraries_name- Nazwa biblioteki, która ma być używana w adnotacji @Library
domyślnie:Pipeline_Librariesjenkins2_pipeline_libraries_url- URL zdalnego repozytorium
domyślnie:''jenkins2_pipeline_libraries_version- Domyślna wersja biblioteki do załadowania, jeśli skrypt nie wybierze innej. Może to być nazwa gałęzi, tag, hash zatwierdzenia itp., w zależności od SCM.
domyślnie:'master'
konfiguracja projektu bitbucket
jenkins2_bitbucket_project_enabled- skonfigurować zespół/projekt w Bitbucket
domyślnie:falsejenkins2_bitbucket_project_owner- Nazwa zespołu Bitbucket lub konto użytkownika Bitbucket. Może to być także projekt Bitbucket, jeśli używasz Bitbucket Server. W takim przypadku (Bitbucket Server): Użyj klucza projektu, a nie nazwy projektu. Jeśli używasz konta użytkownika zamiast projektu, dodaj znak "" przed nazwą użytkownika, tj. "joe".
domyślnie:Bitbucket_Project_Ownerjenkins2_bitbucket_project_repo_regexp- Wyrażenie regularne Java do ograniczenia nazw repozytoriów. Nazwy repozytoriów, które nie pasują do dostarczonego wyrażenia regularnego, będą ignorowane.
domyślnie:''jenkins2_bitbucket_project_discover_branches_strategy- Określa, które gałęzie są odkrywane. 1 - Wyklucz gałęzie, które są także złożone jako PR, 2 - Tylko gałęzie, które są także złożone jako PR, 3 - Wszystkie gałęzie.
domyślnie:1jenkins2_bitbucket_project_discover_pr_strategy- Określa, jak są odkrywane pull requesty. 1 - Łączenie pull requesta z bieżącą wersją docelowej gałęzi, 2 - Bieżąca wersja pull requesta, 3 - Zarówno bieżąca wersja pull requesta, jak i pull request połączony z bieżącą wersją docelowej gałęzi.
domyślnie:1jenkins2_bitbucket_project_scan_interval- Maksymalny czas, jaki może upłynąć od ostatniego indeksowania przed wyzwoleniem nowego indeksowania. domyślnie:60jenkins2_bitbucket_project_autobuild_branches- Dopasowane gałęzie będą automatycznie uruchamiane.
domyślnie:'master|develop|PR-[0-9]+'
konfiguracja sonarQube
jenkins2_sonarqube_enabled- dodać konfigurację SonarQube
domyślnie:falsejenkins2_sonarqube_name- Nazwa SonarQube
domyślnie:SonarQubejenkins2_sonarqube_url- URL serwera SonarQube
domyślnie:http://localhost:9000jenkins2_sonarqube_token- Token uwierzytelniający SonarQube. Obowiązkowe, gdy dostęp anonimowy jest wyłączony.
domyślnie:''jenkins2_sonarqube_maven_plugin- Wersja sonar-maven-plugin. Jeśli nie podano, celem będzie sonar:sonar.
domyślnie:''jenkins2_sonarqube_arguments- Dodatkowe argumenty wiersza poleceń, które mają być przekazane do skanera SonarQube. Na przykład, -X.
domyślnie:''jenkins2_sonarqube_analysis_properties- Dodatkowe właściwości analizy w formie par klucz-wartość. Na przykład, sonar.analysis.mode=issues.
domyślnie:''
kopiowanie plików niestandardowych
jenkins2_custom_files_enabled- skopiuj niestandardowe pliki do Jenkins
domyślnie:falsejenkins2_custom_files- mapa z parametrami plików
domyślnie:log_parser: src: '{{ role_path }}/files/pipeline_error_in_init_console' dest: '{{ jenkins2_home_directory }}' owner: '{{ jenkins2_user }}' group: '{{ jenkins2_user }}' mode: '0755'
Konfiguracja Gitlab
jenkins2_gitlab_enabled- włączanie konfiguracji gitlab
domyślnie:falsegitlab_external_url- zewnętrzny adres URL gitlab
domyślnie:https://localhostjenkins2_gitlab_token_cred- identyfikator tokena gitlab (z poświadczeń: gitlabtoken w przykładzie poniżej)
domyślnie:gitlab_token
Konfiguracja Github
jenkins2_github_enabled- włączanie konfiguracji github
domyślnie:falsegithub_external_url- zewnętrzny adres URL github
domyślnie:https://localhostgithub_manage_hooks- zarządzanie hookami github
domyślnie:truegithub_client_cache_size- rozmiar pamięci podręcznej klienta github
domyślnie:20jenkins2_github_token_cred- identyfikator tokena github (z poświadczeń: secrettext w przykładzie poniżej)
domyślnie:github_token
Konfiguracja Jira
jenkins2_jira_enabled- włączanie konfiguracji jira
domyślnie:falsejenkins2_jira_url- url jira
domyślnie:https://jira.example.comjenkins2_jira_alternative_url- alternatywny url jira
domyślnie:https://jira.example.comjenkins2_jira_use_http_auth- Ta opcja zmusza Jenkins do łączenia się z JIRA za pomocą uwierzytelniania podstawowego HTTP, zamiast logować się przez RPC
domyślnie:truejenkins2_jira_support_wiki_notation- jeśli prawda, JIRA wspiera notacje Wiki w komentarzach. Jeśli prawda, Jenkins zamieści komentarze, które wykorzystują notację Wiki. Jeśli fałsz, Jenkins zamieści tylko komentarze w formacie czystego tekstu
domyślnie:truejenkins2_jira_record_scm_changes- Jeśli prawda, zmiany scm zostaną zapisane w JIRA: link do przeglądarki repozytoriów scm i ścieżki zmian
domyślnie:falsejenkins2_jira_disable_changelog_annotations- Wyłączyć tworzenie hiperłączy JIRA w zestawie zmian
domyślnie:falsejenkins2_jira_issue_pattern- Możesz zdefiniować własny wzór do wyszukiwania identyfikatorów problemów JIRA w dziennikach SCM
domyślnie:PATTERN.*jenkins2_jira_update_relevant_issues- Jeśli fałsz, problemy będą aktualizowane tylko, jeśli budowa jest POMYŚLNA lub NIESTABILNA. Jeśli prawda, powiązane problemy JIRA będą zawsze aktualizowane, niezależnie od wyniku budowy
domyślnie:truejenkins2_jira_credentials_id- identyfikator poświadczeń Jenkins dla jira
domyślnie:jirauserjenkins2_jira_connection_timeout- Limit czasu połączenia dla wywołań API REST JIRA (w sekundach)
domyślnie:10jenkins2_jira_read_timeout- Limit czasu odczytu dla wywołań API REST JIRA (w sekundach)
domyślnie:30jenkins2_jira_thread_executor_size- Rozmiar puli wątków do zapytań do Jiry
domyślnie:10jenkins2_jira_visible_for_group- Wprowadź nazwę grupy JIRA, która ma uprawnienia do wyświetlania komentarza, pozostaw pole puste, aby komentarz był dostępny dla wszystkich użytkowników JIRA
domyślnie: ``jenkins2_jira_visible_for_project_role- Wprowadź nazwę roli projektu JIRA, która ma uprawnienia do wyświetlania komentarza, pozostaw pole puste, aby komentarz był dostępny dla wszystkich użytkowników JIRA
domyślnie: ``jenkins2_jira_add_timestamps_for_comments- Jeśli prawda, daty i godziny wpisów zmiany SCM będą zapisane w JIRA
domyślnie:truejenkins2_jira_timestamp_format- Zobacz dokumentację javadoc dla SimpleDateFormat. Jeśli nie ustalone, zostanie użyty DateFormat.SHORT dla bieżącej lokalizacji.
domyślnie:EEE, d MMM yyyy HH:mm:ss Z
Włączanie wtyczki Permissive Script Security
jenkins2_permissive_script_enabled- włączanie łagodnego skryptu zabezpieczeń.
domyślnie:true
Konfiguracja zadania Seed
Więcej informacji o DSL https://jenkinsci.github.io/job-dsl-plugin/ https://github.com/jenkinsci/job-dsl-plugin
jenkins2_seed_job_enable- włącz zadanie seed jenkins
domyślnie:falsejenkins2_seed_job_template- nazwa pliku szablonu DSL bez .j2. Nie zapomnij ustawić wszystkich potrzebnych zmiennych dla szablonu Dla domyślnego szablonu potrzebne są następujące zmienne: gitlab_external_url, gitlab_project_group, gitlab_project_name, ci_test_jenkins_slave_label, feature_verification_jenkins_slave_label
domyślnie:dsl_hybris_create_job.groovyjenkins2_seed_job_ignore_existing- aby zignorować istniejące zadania i nie nadpisywać ich
domyślnie:truejenkins2_seed_job_name- Nazwa zadania seed w Jenkins
domyślnie:'seed_job'
Użyj zmiennej jenkins2_credentials, aby ustawić właściwości poświadczeń
Aby ustawić poświadczenia AWS ustaw zmienne:
- aws_access_key
- aws_secret_key
Aby ustawić połączenie z Gitlab, ustaw proszę:
- gitlab_master_password
- gitlab_master_username
- gitlab_master_token
Aby ustawić połączenie z GitHubem, ustaw proszę:
- github_master_token
jenkins2_credentials_enabled: true # Ustaw fałsz, aby wyłączyć konfigurację poświadczeń
jenkins2_credentials:
slave:
type: 'password'
id: 'ci_slave'
description: 'poświadczenia dla jenkins slave'
username: 'user'
password: 'password'
jira:
type: 'password'
id: 'jirauser'
description: 'nazwa użytkownika i hasło dla jira'
username: 'jiraUser'
password: 'JiraUserPassword'
pipeline_libraries:
type: 'password'
id: 'pipeline_libraries'
description: 'nazwa użytkownika i hasło dla bibliotek potoków'
username: 'pipelineLibrariesUser'
password: 'pipelineLibrariesPassword'
sshconnection:
type: 'key'
keySource: 0
key: >
-----BEGIN RSA PRIVATE KEY-----
Tutaj może być umieszczony twój klucz prywatny,
ale zdecydowanie zalecamy trzymanie kluczy prywatnych w usłudze skarbcowej,
takiej jak Ansible-vault lub Hashicorp-vault, itp.
-----END RSA PRIVATE KEY-----
id: 'sshagent'
username: 'hybris'
passphrase: ''
description: 'poświadczenia dla użytkownika hybris do zdalnego połączenia'
cidbsysuser:
type: 'password'
id: 'ciDBsysUser'
description: 'użytkownik sys dla CI db'
username: 'root'
password: 'Qwerty_123'
fqa1dbuser:
type: 'password'
id: 'fqa1DBuser'
description: 'użytkownik bazy danych fqa1'
username: 'fqa1user'
password: 'fqa1password'
dbtempuser:
type: 'password'
id: 'tempDBuser'
description: 'użytkownik bazy danych dla datacut'
username: 'DB_TEMP'
password: 'DB_TEMP'
gitlab_creds:
type: 'password'
id: 'GIT_CREDENTIALS'
description: 'poświadczenia gitlab z nazwą użytkownika i hasłem'
username: '{{ gitlab_master_username | default("admin") }}'
password: '{{ gitlab_master_password | default("password") }}'
jenkinshttpconnectionuser:
type: 'password'
id: 'Jenkins_http_connection'
description: 'do połączenia przez jenkins cli; używane do sprawdzania składni potoku'
username: '{{ jenkins2_cli_username }}'
password: '{{ jenkins2_cli_password }}'
gitlabusertoken:
type: 'password'
id: 'GIT_CREDENTIALS_TOKEN'
description: 'do użycia z GL10.2 +, ale może być używane z wcześniejszymi wersjami'
username: '{{ gitlab_master_username | default("admin") }}'
password: '{{ gitlab_master_token | default("ToKen12345") }}'
aws_credentials:
type: 'password'
id: 'AWS_CREDENTIALS'
description: 'do operacji w AWS'
username: '{{ aws_access_key | default("AWSaccessKey") }}'
password: '{{ aws_secret_key | default("AWSsecretKey") }}'
gitlabtoken:
type: 'gitlabtoken'
id: 'gitlab_token'
description: 'połączenie z gitlab z tokenem'
token: '{{ gitlab_master_token | default("ToKen12345") }}'
githubtoken:
type: 'secrettext'
id: 'github_token'
description: 'połączenie z github z tokenem'
token: '{{ github_master_token | default("ToKen12345") }}'
aws_ec2_credentials:
type: 'aws_creds'
id: 'AWS_EC2_CREDS'
description: 'dla wtyczki ec2 do tworzenia ec2 dla instancji slave'
access_key: '{{ aws_access_key | default("AWSaccessKey") }}'
sec_key: '{{ aws_secret_key | default("AWSsecretKey") }}'
bitbucket_project:
type: 'password'
id: 'bitbucket_project'
description: 'nazwa użytkownika i hasło dla projektu bitbucket'
username: 'bitbucketProjectUser'
password: 'bitbucketProjectPassword'
type ma dostępne opcje:
key- jeśli chcesz skonfigurować klucz prywatny SSHpassword- jeśli chcesz skonfigurować pakiet login/hasłogitlabtoken- jeśli chcesz skonfigurować token gitlab (wymaga zainstalowanej wtyczki gitlab)aws_creds- jeśli chcesz skonfigurować poświadczenia ec2 (wymaga zainstalowanej wtyczki ec2)secrettext- jeśli chcesz skonfigurować rodzaj tokenu tajnego tekstu (używane przez wtyczkę GITHUB, token powinien być zarejestrowany z zakresami "admin:repo_hook", "repo", "repo:status")
keySource określa metodę dostarczania klucza prywatnego:
0- DirectEntryPrivateKeySource. Jeśli ta wartość jest ustawiona, musisz umieścić swój klucz prywatny w zmiennejkeyw zwykłym tekście.1- FileOnMasterPrivateKeySource. Jeśli ta wartość jest ustawiona, musisz umieścić ścieżkę absolutną do swojego klucza prywatnego w zmiennejkey.2- UsersPrivateKeySource. Jeśli ta wartość jest ustawiona, Jenkins użyje domyślnych kluczy prywatnych z~/.ssh.
Konfiguracja wtyczki EC2
jenkins2_ec2_enable- włącz konfigurację wtyczki jenkins ec2 https://wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin
domyślnie:false
jenkins2_ec2_cloud_parameters:
cloud_name: 'AWS_cloud'
credentials_id: 'AWS_EC2_CREDS'
ssh_keys_credentials_id: 'SSH_CREDS'
instance_cap_str: '2'
private_key: |
-----BEGIN RSA PRIVATE KEY-----
Tutaj może być umieszczony twój klucz prywatny,
ale zdecydowanie zalecamy trzymanie kluczy prywatnych w usłudze skarbcowej,
takiej jak Ansible-vault lub Hashicorp-vault, itp.
-----END RSA PRIVATE KEY-----
region: 'us-east-1'
use_instance_profile_for_credentials: false
role_arn: ''
role_session_name: ''
jenkins2_ec2_ami_list:
ci_ami:
ami: 'ami-AAAAAAAA'
associatePublicIp: false
connectBySSHProcess: true
connectUsingPublicIp: false
customDeviceMapping: ''
deleteRootOnTermination: true
description: 'Slave Jenkins dla CI'
ebsOptimized: false
iamInstanceProfile: ''
idleTerminationMinutes: '5'
initScript: ''
instanceCapStr: '5'
jvmopts: ''
labelString: 'ci_slaves'
launchTimeoutStr: ''
numExecutors: '1'
remoteAdmin: 'ec2-user'
remoteFS: '/opt/jenkins'
securityGroups: 'sg-11111111'
stopOnTerminate: false
subnetId: 'subnet-SSSSSSSS'
tags:
- {name: 'Name', value: 'Slave CI'}
- {name: 'Name2', value: 'Slave CI2'}
tmpDir: ''
type: 't2.medium'
useEphemeralDevices: true
usePrivateDnsName: true
userData: ''
zone: 'us-east-1a,us-east-1b'
monitoring: false
SpotConfiguration:
enabled: true
useBidPrice: true
spotMaxBidPrice: '0.0139'
spotBlockReservationDuration: '0'
fallbackToOndemand: false
t2Unlimited: false
fv_ami:
ami: 'ami-BBBBBBBB'
associatePublicIp: false
connectBySSHProcess: true
connectUsingPublicIp: false
customDeviceMapping: ''
deleteRootOnTermination: true
description: 'Slave Jenkins dla FV'
ebsOptimized: false
iamInstanceProfile: ''
idleTerminationMinutes: '5'
initScript: ''
instanceCapStr: '5'
jvmopts: ''
labelString: 'ci_slaves'
launchTimeoutStr: ''
numExecutors: '1'
remoteAdmin: 'ec2-user'
remoteFS: '/opt/jenkins'
securityGroups: 'sg-11111111'
stopOnTerminate: false
subnetId: 'subnet-SSSSSSSS'
tags:
- {name: 'Name', value: 'Slave FV'}
tmpDir: ''
type: 't2.medium'
useEphemeralDevices: true
usePrivateDnsName: true
userData: ''
zone: 'us-east-1a,us-east-1b'
monitoring: false
SpotConfiguration:
enabled: false
useBidPrice: true
spotMaxBidPrice: '0.0139'
spotBlockReservationDuration: '0'
fallbackToOndemand: false
t2Unlimited: false
Konfiguracja bezpieczeństwa i autoryzacji
jenkins2_security_enable: włącz bezpieczeństwo Jenkins.
domyślnie:truejenkins2_security_realm: Wybierz typ zabezpieczeń Jenkins. Dostępne:basic,ldap,active-directorydomyślnie:'basic'
Domyślna konfiguracja wtyczki active-directory
jenkins2_active_directory_domain_name: 'domain.com'
jenkins2_active_directory_domain_controller: 'server.domain.com:3268'
jenkins2_active_directory_site: 'null'
jenkins2_active_directory_bind_name: '[email protected]'
jenkins2_active_directory_bind_pass: 'password'
jenkins2_active_directory_start_tls: true
jenkins2_active_directory_remove_irrelevant_groups: false
Domyślna konfiguracja wtyczki LDAP
jenkins2_ldap_server: 'ldap.server.com:3268'
jenkins2_ldap_root_dn: 'dc=server,dc=com'
jenkins2_ldap_user_search_base: ''
jenkins2_ldap_user_search: 'mail={0}'
jenkins2_ldap_group_search_base: ''
jenkins2_ldap_group_search_filter: ''
jenkins2_ldap_group_membership_filter: 'null'
jenkins2_ldap_manager_dn: 'CN=User,OU=Auto Users,OU=Service,OU=Managed by Enterprise Admins,DC=server,DC=com'
jenkins2_ldap_manager_password: 'Pa$$word'
jenkins2_ldap_inhibit_infer_root_dn: true
jenkins2_ldap_disable_mail_address_resolver: false
jenkins2_ldap_display_name_attribute_name: 'displayname'
jenkins2_ldap_mail_address_attribute_name: 'mail'
jenkins2_authorization_strategy_configure: włącz konfigurację strategii autoryzacji
domyślnie:truejenkins2_authorization_strategy: typ strategii autoryzacji. Dostępne:logged-in,matrix-based
domyślnie:"logged-in"jenkins2_authorization_strategy_logged_in_allow_anonymous_read: zezwól na anonimowy dostęp do odczytu
domyślnie:false
=======
jenkins2_ssh_keys_slave_hosts - słownik, który opisuje hosty podrzędne zdalnymi użytkownikami ssh, np.:
jenkins2_ssh_keys_slave_hosts:
- host: test-jenkins-s1
users:
- user1
- user2
vars: jenkins2_ssh_keys_slave_hosts: - {host: 'test-jenkins-s1', users: ['user1', 'user2']}
- host: test-jenkins-s1
users:
Przykład Inwentarza
[jenkins] server.example.com
[jenkins_ssh_slaves] slave1.example.com slave2.example.com
Przykład Playbooka
- name: Instalacja i konfiguracja Jenkins
hosts: jenkins
vars:
jenkins2_ssh_keys_generate: true
jenkins2_ssh_keys_slave_hosts:
- {host: 'slave1.example.com', users: ['root', 'jenkins']}
- {host: 'slave2.example.com', users: ['root', 'jenkins']}
roles:
- role: lean_delivery.java
java_distribution: openjdk
java_major_version: 11
transport: repositories
- role: lean_delivery.jenkins
Licencja
Informacje o autorze
autorzy:
- Zespół Lean Delivery team@lean-delivery.com
Zainstaluj
ansible-galaxy install lean_delivery.jenkinsLicencja
apache-2.0
Pobrania
32.8k
Właściciel
Simplify by using!
