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:jenkins
jenkins2_package_version
- nazwa pakietu do instalacji jenkins
domyślnie:jenkins
jenkins2_release_line
- wersja pakietu do zainstalowania: stabilna lub najnowsza
domyślnie:stable
jenkins2_disable_gpg_check
- pominięcie sprawdzenia gpg (tylko dla yum)
domyślnie:false
jenkins2_key_validate_certs
- walidacja certyfikatów podczas instalacji klucza (tylko dla yum)
domyślnie:true
jenkins2_context_path
- Ścieżka kontekstu Jenkins
domyślnie:''
jenkins2_cli_username
- użytkownik do połączenia z jenkins cli
domyślnie:admin
jenkins2_cli_password
- hasło użytkownika do połączenia z jenkins cli
domyślnie:admin
jenkins2_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:8080
jenkins2_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:5
jenkins2_config_enable_access_log
- Czy włączyć logi dostępu czy nie.
domyślnie:no
jenkins2_config_handler_max
- Maksymalna liczba wątków roboczych HTTP.
domyślnie:100
jenkins2_config_handler_idle
- Maksymalna liczba bezczynnych wątków roboczych HTTP.
domyślnie:20
jenkins2_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:true
jenkins2_http_disabled
- Wyłączanie niebezpiecznego połączenia.
domyślnie:false
jenkins2_config_https_port
- Port Jenkins do połączeń zabezpieczonych (https).
domyślnie:8443
jenkins2_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:false
jenkins2_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:true
jenkins2_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.jks
jenkins2_ssl_key_size
- Rozmiar klucza certyfikatu.
domyślnie:4096
jenkins2_ssl_key_store_password
- Hasło do keystore.
domyślnie:123456
jenkins2_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.com
jenkins2_local_pkey_file_name
- Nazwa certyfikatu prywatnego.
domyślnie:{{ ansible_hostname }}.ca-pkey.pem
jenkins2_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:0
jenkins2_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:false
jenkins2_ssh_keys_private_keyname
- nazwa klucza prywatnego
domyślnie:id_rsa
jenkins2_ssh_keys_size
- rozmiar siły klucza SSH RSA
domyślnie:4096
jenkins2_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:true
jenkins2_jcasc_directory
- Relatywna ścieżka, w której JCasC będzie wyszukiwać pliki yaml domyślnie:jcasc
jenkins2_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:false
jenkins2_globaltools_jdk_enable
- włącz automatyczną konfigurację dla JDK
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_maven_enable
- włącz automatyczną konfigurację dla Maven
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_ant_enable
- włącz automatyczną konfigurację dla Ant
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_nodejs_enable
- włącz automatyczną konfigurację dla Node.js
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_sonarscanner_enable
- włącz automatyczną konfigurację dla SonarQube Scanner
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_sonarscannermsbuild_enable
- włącz automatyczną konfigurację dla SonarQube Scanner dla MSBuild
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_gradle_enable
- włącz automatyczną konfigurację dla Gradle
domyślnie:true
jenkins2_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.groovy
jenkins2_globaltools_docker_enable
- włącz automatyczną konfigurację dla Dockera
domyślnie:true
jenkins2_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:true
jenkins2_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:password
jenkins2_smtp_port
- port serwera SMTP
domyślnie:587
jenkins2_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.io
jenkins2_plugins_timeout
- limit czasu instalacji wtyczek
domyślnie:2000
jenkins2_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:false
jenkins2_plugins_install_dependencies
- Instaluj zależności wtyczek, jeśli dokładne wersje wtyczek nie są podane.
domyślnie:true
jenkins2_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:true
jenkins2_credentials
- mapa poświadczeń
konfiguracja bibliotek potoków
jenkins2_pipeline_libraries_enabled
- skonfigurować Global Pipeline Libraries
domyślnie:false
jenkins2_pipeline_libraries_name
- Nazwa biblioteki, która ma być używana w adnotacji @Library
domyślnie:Pipeline_Libraries
jenkins2_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:false
jenkins2_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_Owner
jenkins2_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:1
jenkins2_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:1
jenkins2_bitbucket_project_scan_interval
- Maksymalny czas, jaki może upłynąć od ostatniego indeksowania przed wyzwoleniem nowego indeksowania. domyślnie:60
jenkins2_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:false
jenkins2_sonarqube_name
- Nazwa SonarQube
domyślnie:SonarQube
jenkins2_sonarqube_url
- URL serwera SonarQube
domyślnie:http://localhost:9000
jenkins2_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:false
jenkins2_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:false
gitlab_external_url
- zewnętrzny adres URL gitlab
domyślnie:https://localhost
jenkins2_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:false
github_external_url
- zewnętrzny adres URL github
domyślnie:https://localhost
github_manage_hooks
- zarządzanie hookami github
domyślnie:true
github_client_cache_size
- rozmiar pamięci podręcznej klienta github
domyślnie:20
jenkins2_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:false
jenkins2_jira_url
- url jira
domyślnie:https://jira.example.com
jenkins2_jira_alternative_url
- alternatywny url jira
domyślnie:https://jira.example.com
jenkins2_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:true
jenkins2_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:true
jenkins2_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:false
jenkins2_jira_disable_changelog_annotations
- Wyłączyć tworzenie hiperłączy JIRA w zestawie zmian
domyślnie:false
jenkins2_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:true
jenkins2_jira_credentials_id
- identyfikator poświadczeń Jenkins dla jira
domyślnie:jirauser
jenkins2_jira_connection_timeout
- Limit czasu połączenia dla wywołań API REST JIRA (w sekundach)
domyślnie:10
jenkins2_jira_read_timeout
- Limit czasu odczytu dla wywołań API REST JIRA (w sekundach)
domyślnie:30
jenkins2_jira_thread_executor_size
- Rozmiar puli wątków do zapytań do Jiry
domyślnie:10
jenkins2_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:true
jenkins2_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:false
jenkins2_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.groovy
jenkins2_seed_job_ignore_existing
- aby zignorować istniejące zadania i nie nadpisywać ich
domyślnie:true
jenkins2_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 zmiennejkey
w 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:true
jenkins2_security_realm
: Wybierz typ zabezpieczeń Jenkins. Dostępne:basic
,ldap
,active-directory
domyś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:true
jenkins2_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.jenkins
Licencja
apache-2.0
Pobrania
27k
Właściciel
Simplify by using!