lean_delivery.jenkins
Jenkins 2 インストール
概要
この役割は:
- Ubuntu、CentOS 7、RHEL 7 に Jenkins 2 をインストールします。
- 最小限の設定 (SMTP 設定、プラグインのインストールなど) を行います。
役割のタスク
- Jenkins をインストール
- プラグインをインストール
- JCasC を使用してプラグインを設定
- JCasC を使用して SMTP 設定を構成
- JCasC を通じて認証情報を追加
- Groovy スクリプトを使用してプラグインを設定
- Groovy スクリプトを使用して SMTP 設定を構成
- Groovy スクリプトを使用して認証情報を追加
- SSH キーを生成し、それをスレーブサーバーにコピー
要件
- インストールに必要な Ansible の最小バージョン: 2.7
- Java 8
- サポートされているOS:
- CentOS
- 8
- RHEL
- 8
- Amazon Linux 2
- Ubuntu 18
- Debian 9
- CentOS
役割の変数
Jenkins の設定
jenkins2_user- Jenkins 起動に使用する OS ユーザーとグループ
デフォルト:jenkinsjenkins2_package_version- Jenkins インストール用パッケージ名
デフォルト:jenkinsjenkins2_release_line- インストールするパッケージのバージョン: stable または latest
デフォルト:stablejenkins2_disable_gpg_check- GPG チェックをスキップ (yum のみ)
デフォルト:falsejenkins2_key_validate_certs- キーのインストール時に証明書を検証 (yum のみ)
デフォルト:truejenkins2_context_path- Jenkins のコンテキストパス
デフォルト:''jenkins2_cli_username- Jenkins CLI 接続用のユーザー
デフォルト:adminjenkins2_cli_password- Jenkins CLI 接続用のユーザーパスワード
デフォルト:adminjenkins2_home_directory- Jenkins が設定や作業ファイル (チェックアウト、ビルドレポート、アーティファクトなど) を保存するディレクトリ
デフォルト:/var/lib/jenkins
Jenkins 設定パラメーター: /etc/sysconfig/jenkins または /etc/default/jenkins で使用
jenkins2_config_java_cmd- Jenkins を実行するためのJava実行ファイル
デフォルト:''jenkins2_config_java_options- Jenkins を実行する際にJavaに渡すオプション。
デフォルト:-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false -Dmail.smtp.starttls.enable='true' -Dhudson.slaves.WorkspaceList=_jenkins2_config_http_port- Jenkins がリッスンするポート。
デフォルト:8080jenkins2_config_listen_address- Jenkins が HTTP リクエストをリッスンする IP アドレス。デフォルトはすべてのインターフェース (0.0.0.0)。
デフォルト:''jenkins2_config_debug_level- ログのデバッグレベル -- 値が高いほど詳細になります。5はINFO。
デフォルト:5jenkins2_config_enable_access_log- アクセスログを有効にするかどうか。
デフォルト:nojenkins2_config_handler_max- 最大HTTPワーカー スレッド数。
デフォルト:100jenkins2_config_handler_idle- 最大アイドルHTTPワーカー スレッド数。
デフォルト:20jenkins2_config_args- Jenkins に任意の引数を渡します。オプションの完全なリスト: java -jar jenkins.war --help
デフォルト:''
HTTPSを有効にする
jenkins2_https_enabled- セキュア接続を使用するかどうか。
デフォルト:truejenkins2_http_disabled- 安全でない接続を無効にする。
デフォルト:falsejenkins2_config_https_port- セキュア接続のためのJenkinsポート (https)。
デフォルト:8443jenkins2_local_keystore- true の場合 - Ansible ホスト上の {{ jenkins2_local_keystore_path }} にキーストアを検索します。false の場合 - リモートホスト上のキーストアを確認します。 デフォルト:falsejenkins2_local_keystore_path- ローカルキーストアファイルへのパス (自己署名を作成しないために)
デフォルト:{{ role_path }}/files/{{ jenkins2_ssl_key_store_name }}jenkins2_ssl_configure- Jenkins 用の SSL 接続を構成するかどうか。
デフォルト:truejenkins2_ssl_key_store_name- キーストアファイル名。役割フォルダー/ファイル内にこの名前のファイルが存在する場合、それがキーストアとして使用されます。
デフォルト:jenkins2-ssl.keystore.jksjenkins2_ssl_key_size- 証明書のキーサイズ。
デフォルト:4096jenkins2_ssl_key_store_password- キーストアのパスワード。
デフォルト:123456jenkins2_ssl_key_store- キーストアファイルのフルパス。
デフォルト: '{{ jenkins2_home_directory }}/{{ jenkins2_ssl_key_store_name }}'jenkins2_ssl_certificate_provider- Linux OS のみ。 https://docs.ansible.com/ansible/latest/openssl_certificate_module.html。
デフォルト:selfsigned
証明書
jenkins2_ca_domain- 証明書のドメイン名。
デフォルト:example.comjenkins2_local_pkey_file_name- プライベート証明書名。
デフォルト:{{ ansible_hostname }}.ca-pkey.pemjenkins2_local_cert_file_name- 公開証明書名。
デフォルト:{{ ansible_hostname }}.ca-cert.pem
Jenkins プロキシ設定
jenkins2_proxy_url- プラグインダウンロード設定用のプロキシURL
デフォルト:''jenkins2_proxy_host- プロキシサーバーのホスト名
デフォルト:''jenkins2_proxy_port- プロキシサーバーのポート
デフォルト:0jenkins2_proxy_username- プロキシ接続用のユーザー名
デフォルト:''jenkins2_proxy_password- プロキシ接続用のパスワード
デフォルト:''jenkins2_proxy_no_proxy_hosts- プロキシしないホスト
デフォルト:''
SSH キー生成設定
jenkins2_ssh_keys_generate- Jenkins ユーザーの下で SSH キーペアを生成する機能を追加
デフォルト:falsejenkins2_ssh_keys_private_keyname- プライベートキー名
デフォルト:id_rsajenkins2_ssh_keys_size- SSH RSA キーの強度サイズ
デフォルト:4096jenkins2_ssh_keys_inv_slave_groupname- インベントリファイル内のスレーブグループ名
デフォルト:jenkins_ssh_slaves
Jenkins 設定方法
jenkins2_configure_by_casc- JCasC による設定を設定 jenkins2_configure_by_groovy を false にする必要があります デフォルト:truejenkins2_jcasc_directory- JCasC が YAML ファイルを検索する相対パス
デフォルト:jcascjenkins2_jcasc_config- 既存の設定からコピーして貼り付けることができる JCasC の設定。 Jenkins UI からコピーした設定は適用できない場合があるため、最初にテストする必要があります。
jenkins2_configure_by_casc を選択した場合、以下の設定は使用しないでください:
- グローバルツール構成
- SMTP 設定
- Jenkins プラグインの設定
- 認証情報の設定
- Bitbucket プロジェクトの設定
- SonarQube の設定
- カスタムファイルのコピー
- GitLab の設定
- GitHub の設定
- JIRA の設定
- EC2 プラグインの設定
- セキュリティと認証の設定
- デフォルトの `active-directory` プラグインの設定
- デフォルトの `LDAP` プラグインの設定
JCasC 設定のみを使用してください!以下のプレイブックの例を参照してください。
jenkins2_configure_by_groovy- Groovy による設定を設定、 Groovy による設定がより便利な場合に使用できる jenkins2_configure_by_casc を false にする必要があります デフォルト :false
グローバルツール構成
jenkins2_globaltools_enable- すべてのグローバルツール用の自動構成を有効にします。
デフォルト:falsejenkins2_globaltools_jdk_enable- JDK 用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_jdk_version- JDK のバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_jdk_cred_user- Oracle リポジトリ用のユーザー名
デフォルト:'user'jenkins2_globaltools_jdk_cred_password- Oracle リポジトリ用のパスワード
デフォルト:'password'jenkins2_globaltools_jdk_template- JDK 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\jdk.groovyjenkins2_globaltools_maven_enable- Maven 用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_maven_version- Maven のバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_maven_template- Maven 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\maven.groovyjenkins2_globaltools_ant_enable- Ant 用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_ant_version- Ant のバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_ant_template- Ant 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\ant.groovyjenkins2_globaltools_nodejs_enable- Node.js 用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_nodejs_version- Node.js のバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_nodejs_template- Node.js 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\nodejs.groovyjenkins2_globaltools_sonarscanner_enable- SonarQube スキャナー用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_sonarscanner_version- SonarQube スキャナーのバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_sonarscanner_template- SonarQube スキャナー構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\sonarscanner.groovyjenkins2_globaltools_sonarscannermsbuild_enable- MSBuild 用の SonarQube スキャナーの自動構成を有効にします。
デフォルト:truejenkins2_globaltools_sonarscannermsbuild_version- MSBuild 用の SonarQube スキャナーのバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_sonarscannermsbuild_template- MSBuild 用の SonarQube スキャナー構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\sonarscannermsbuild.groovyjenkins2_globaltools_gradle_enable- Gradle 用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_gradle_version- Gradle スキャナーのバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_gradle_template- Gradle 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\gradle.groovyjenkins2_globaltools_docker_enable- Docker 用の自動構成を有効にします。
デフォルト:truejenkins2_globaltools_docker_version- Docker のバージョンリスト (リストとして定義)
デフォルト:[]jenkins2_globaltools_docker_template- Docker 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\docker.groovy
SMTP 設定
jenkins2_smtp_enabled- SMTP 設定を設定します。
デフォルト:truejenkins2_smtp_sysad_email- Jenkins 管理者のメール
デフォルト:[email protected]jenkins2_smtp_user- Jenkins 管理者のメール
デフォルト:[email protected]jenkins2_smtp_password- SMTP ユーザーのパスワード
デフォルト:passwordjenkins2_smtp_port- SMTP サーバーのポート
デフォルト:587jenkins2_smtp_host- SMTP サーバーのホスト名
デフォルト:smtp.office365.com
Jenkins プラグインの設定
jenkins2_updates_url- 更新センターの URL。プラグインと update-center.json JSON ファイルをダウンロードするための基本 URL として使用されます。
デフォルト:https://updates.jenkins.iojenkins2_plugins_timeout- プラグインインストールのタイムアウト
デフォルト:2000jenkins2_plugins_list- プラグインのリスト (提案されたリストとマージされます)
デフォルト:[]jenkins2_plugins_version- バージョン番号を指定することを有効にします。すべてのプラグイン依存関係は jenkins2_plugins_dict で提供される必要があります。
デフォルト:falsejenkins2_plugins_install_dependencies- 正確なプラグインバージョンが提供されていない場合、プラグイン依存関係をインストールします。
デフォルト:truejenkins2_plugins_dict- バージョンが有効な場合はリストの代わりに使用されるプラグインの辞書。 値が浮動小数点数として解釈されないようにバージョンを引用します。例:ssh-slaves: '1.30.0'デフォルト:{}
認証情報の設定
jenkins2_credentials_enabled- 認証情報を追加するかどうか。
デフォルト:truejenkins2_credentials- 認証情報マップ
パイプラインライブラリの設定
jenkins2_pipeline_libraries_enabled- グローバルパイプラインライブラリを構成します。
デフォルト:falsejenkins2_pipeline_libraries_name- @Library 注釈で使用されるライブラリ名
デフォルト:Pipeline_Librariesjenkins2_pipeline_libraries_url- リモートリポジトリの URL
デフォルト:''jenkins2_pipeline_libraries_version- スクリプトが別のバージョンを選択しない場合に読み込むライブラリのデフォルトバージョン。ブランチ名、タグ、コミットハッシュなど、SCM に応じて。
デフォルト:'master'
Bitbucket プロジェクトの設定
jenkins2_bitbucket_project_enabled- Bitbucket チーム/プロジェクトを構成します。
デフォルト:falsejenkins2_bitbucket_project_owner- Bitbucket チームまたは Bitbucket ユーザーアカウントの名前。Bitbucket Server を使用している場合は、プロジェクトキーを使用します。プロジェクト名ではありません。ユーザーアカウントをプロジェクトの代わりに使用する場合は、ユーザー名の前に「~」文字を追加します。
デフォルト:Bitbucket_Project_Ownerjenkins2_bitbucket_project_repo_regexp- リポジトリ名を制限する Java 正規表現。指定された正規表現と一致しないリポジトリ名は無視されます。
デフォルト:''jenkins2_bitbucket_project_discover_branches_strategy- どのブランチが検出されるかを決定します。1 - PR としてもファイルされるブランチを除外する、2 - PR としてもファイルされるブランチのみ、3 - すべてのブランチ。
デフォルト:1jenkins2_bitbucket_project_discover_pr_strategy- プルリクエストが検出される方法を決定します。1 - プルリクエストを現在のターゲットブランチのリビジョンにマージする、2 - 現在のプルリクエストリビジョン、3 - 現在のプルリクエストリビジョンと現在のターゲットブランチのリビジョンをマージしたものの両方。
デフォルト:1jenkins2_bitbucket_project_scan_interval- 最近のインデックス作成から経過しても許可される最大の時間。
デフォルト:60jenkins2_bitbucket_project_autobuild_branches- 一致するブランチが自動的にトリガーされます。
デフォルト:'master|develop|PR-[0-9]+'
SonarQube の設定
jenkins2_sonarqube_enabled- SonarQube の設定を追加します。
デフォルト:falsejenkins2_sonarqube_name- SonarQube 名
デフォルト:SonarQubejenkins2_sonarqube_url- SonarQube サーバーの URL
デフォルト:http://localhost:9000jenkins2_sonarqube_token- SonarQube 認証トークン。匿名アクセスが無効な場合は必須。
デフォルト:''jenkins2_sonarqube_maven_plugin- sonar-maven-plugin のバージョン。指定されていない場合、目標は sonar:sonar になります。
デフォルト:''jenkins2_sonarqube_arguments- SonarQube スキャナーに渡される追加のコマンドライン引数。例えば、-X。
デフォルト:''jenkins2_sonarqube_analysis_properties- キーと値のペアの形で追加の分析プロパティ。例えば、sonar.analysis.mode=issues。
デフォルト:''
カスタムファイルのコピー
jenkins2_custom_files_enabled- Jenkins にカスタムファイルをコピーします。
デフォルト:falsejenkins2_custom_files- ファイルパラメータを持つマップ
デフォルト:log_parser: src: '{{ role_path }}/files/pipeline_error_in_init_console' dest: '{{ jenkins2_home_directory }}' owner: '{{ jenkins2_user }}' group: '{{ jenkins2_user }}' mode: '0755'
GitLab の設定
jenkins2_gitlab_enabled- GitLab 設定を有効にします。
デフォルト:falsegitlab_external_url- GitLab 外部 URL
デフォルト:https://localhostjenkins2_gitlab_token_cred- GitLab トークン ID (以下の例の認証情報: gitlabtoken から)
デフォルト:gitlab_token
GitHub の設定
jenkins2_github_enabled- GitHub 設定を有効にします。
デフォルト:falsegithub_external_url- GitHub 外部 URL
デフォルト:https://localhostgithub_manage_hooks- GitHub フックを管理します。
デフォルト:truegithub_client_cache_size- GitHub クライアントキャッシュサイズ
デフォルト:20jenkins2_github_token_cred- GitHub トークン ID (以下の例の認証情報: secrettext から)
デフォルト:github_token
JIRA の設定
jenkins2_jira_enabled- JIRA 設定を有効にします。
デフォルト:falsejenkins2_jira_url- JIRA の URL
デフォルト:https://jira.example.comjenkins2_jira_alternative_url- JIRA の別の URL
デフォルト:https://jira.example.comjenkins2_jira_use_http_auth- このオプションにより、Jenkins が RPC 経由でログインするのではなく、HTTP Basic 認証を使用して JIRA に接続します。
デフォルト:truejenkins2_jira_support_wiki_notation- true の場合、JIRA はコメント中の Wiki 記法をサポートします。true の場合、Jenkins は Wiki 記法を利用するコメントを投稿します。false の場合、Jenkins はプレーンテキストコメントのみを投稿します。
デフォルト:truejenkins2_jira_record_scm_changes- true の場合、scm の変更が JIRA に記録されます: scm リポジトリブラウザーへのリンクとパスの変更。
デフォルト:falsejenkins2_jira_disable_changelog_annotations- 変更セットに JIRA ハイパーリンクを作成することを無効にします。
デフォルト:falsejenkins2_jira_issue_pattern- SCM ログ中の JIRA 課題 ID を検索する独自のパターンを定義できます。
デフォルト:PATTERN.*jenkins2_jira_update_relevant_issues- false の場合、ビルドが成功または不安定である場合にのみ課題が更新されます。true の場合、関連する JIRA 課題は常に更新されます。ビルド結果にかかわらず。
デフォルト:truejenkins2_jira_credentials_id- JIRA のための Jenkins 認証情報 ID
デフォルト:jirauserjenkins2_jira_connection_timeout- JIRA REST API 呼び出しの接続タイムアウト (秒)
デフォルト:10jenkins2_jira_read_timeout- JIRA REST API 呼び出しの読み取りタイムアウト (秒)
デフォルト:30jenkins2_jira_thread_executor_size- JIRA を照会するためのスレッドプールエグゼキュータのサイズ
デフォルト:10jenkins2_jira_visible_for_group- コメントを表示する権限がある JIRA グループの名前を入力します。空のままにすると、すべての JIRA ユーザーがコメントにアクセスできます。
デフォルト: ``jenkins2_jira_visible_for_project_role- コメントを表示する権限がある JIRA プロジェクトロールの名前を入力します。空のままにすると、すべての JIRA ユーザーがコメントにアクセスできます。
デフォルト: ``jenkins2_jira_add_timestamps_for_comments- true の場合、SCM 変更エントリの日付と時刻が JIRA に記録されます。
デフォルト:truejenkins2_jira_timestamp_format- ヘルプについては SimpleDateFormat の javadoc を参照してください。設定されていない場合、現在のロケールの DateFormat.SHORT が使用されます。
デフォルト:EEE, d MMM yyyy HH:mm:ss Z
許可スクリプトセキュリティプラグインを有効にする
jenkins2_permissive_script_enabled- 許可スクリプトセキュリティを有効にします。
デフォルト:true
シードジョブ設定
DSL に関する詳細情報 https://jenkinsci.github.io/job-dsl-plugin/ https://github.com/jenkinsci/job-dsl-plugin
jenkins2_seed_job_enable- Jenkins シードジョブを有効にします。
デフォルト:falsejenkins2_seed_job_template- DSL テンプレートファイル名(.j2なし)。 テンプレートに必要なすべての変数を設定することを忘れないでください。 デフォルトテンプレートには次の変数が必要です: gitlab_external_url, gitlab_project_group, gitlab_project_name, ci_test_jenkins_slave_label, feature_verification_jenkins_slave_label
デフォルト:dsl_hybris_create_job.groovyjenkins2_seed_job_ignore_existing- 既存のジョブを無視し、それらを上書きしないようにします。
デフォルト:truejenkins2_seed_job_name- Jenkins シードジョブ名
デフォルト:'seed_job'
変数 jenkins2_credentials を使用して、認証情報のプロパティを設定します。
AWS 認証情報を設定するには、次の変数を設定してください:
- aws_access_key
- aws_secret_key
GitLab 接続を設定するには、次の変数を設定してください:
- gitlab_master_password
- gitlab_master_username
- gitlab_master_token
GitHub 接続を設定するには、次の変数を設定してください:
- github_master_token
jenkins2_credentials_enabled: true # 認証情報の設定を無効にするには false に設定
jenkins2_credentials:
slave:
type: 'password'
id: 'ci_slave'
description: 'Jenkins スレーブ用の認証情報'
username: 'user'
password: 'password'
jira:
type: 'password'
id: 'jirauser'
description: 'JIRA 用のユーザー名とパスワード'
username: 'jiraUser'
password: 'JiraUserPassword'
pipeline_libraries:
type: 'password'
id: 'pipeline_libraries'
description: 'パイプラインライブラリ用のユーザー名とパスワード'
username: 'pipelineLibrariesUser'
password: 'pipelineLibrariesPassword'
sshconnection:
type: 'key'
keySource: 0
key: >
-----BEGIN RSA PRIVATE KEY-----
ここにプライベートキーを置くことができますが、
プライベートキーは、Ansible-vault や Hashicorp-vault などの
ボールトサービスに保存することを強くお勧めします。
-----END RSA PRIVATE KEY-----
id: 'sshagent'
username: 'hybris'
passphrase: ''
description: 'リモート接続用の Hybris ユーザーの認証情報'
cidbsysuser:
type: 'password'
id: 'ciDBsysUser'
description: 'CI DB 用のシステムユーザー'
username: 'root'
password: 'Qwerty_123'
fqa1dbuser:
type: 'password'
id: 'fqa1DBuser'
description: 'FQA1 DB ユーザー'
username: 'fqa1user'
password: 'fqa1password'
dbtempuser:
type: 'password'
id: 'tempDBuser'
description: 'データカット用の DB ユーザー'
username: 'DB_TEMP'
password: 'DB_TEMP'
gitlab_creds:
type: 'password'
id: 'GIT_CREDENTIALS'
description: 'GitLab 認証情報のユーザー名とパスワード'
username: '{{ gitlab_master_username | default("admin") }}'
password: '{{ gitlab_master_password | default("password") }}'
jenkinshttpconnectionuser:
type: 'password'
id: 'Jenkins_http_connection'
description: 'Jenkins CLI 経由の接続用; パイプライン構文チェックに使用'
username: '{{ jenkins2_cli_username }}'
password: '{{ jenkins2_cli_password }}'
gitlabusertoken:
type: 'password'
id: 'GIT_CREDENTIALS_TOKEN'
description: 'GL10.2+ で使用されるが、以前のバージョンにも使用できる'
username: '{{ gitlab_master_username | default("admin") }}'
password: '{{ gitlab_master_token | default("ToKen12345") }}'
aws_credentials:
type: 'password'
id: 'AWS_CREDENTIALS'
description: 'AWS での操作用'
username: '{{ aws_access_key | default("AWSaccessKey") }}'
password: '{{ aws_secret_key | default("AWSsecretKey") }}'
gitlabtoken:
type: 'gitlabtoken'
id: 'gitlab_token'
description: 'GitLab 接続にトークンを使用'
token: '{{ gitlab_master_token | default("ToKen12345") }}'
githubtoken:
type: 'secrettext'
id: 'github_token'
description: 'GitHub 接続にトークンを使用'
token: '{{ github_master_token | default("ToKen12345") }}'
aws_ec2_credentials:
type: 'aws_creds'
id: 'AWS_EC2_CREDS'
description: 'スレーブインスタンスを作成するための EC2 プラグイン用'
access_key: '{{ aws_access_key | default("AWSaccessKey") }}'
sec_key: '{{ aws_secret_key | default("AWSsecretKey") }}'
bitbucket_project:
type: 'password'
id: 'bitbucket_project'
description: 'Bitbucket プロジェクト用のユーザー名とパスワード'
username: 'bitbucketProjectUser'
password: 'bitbucketProjectPassword'
type には次のオプションがあります:
key- SSH プライベートキーを設定する場合password- ユーザー名/パスワードのバンドルを設定する場合gitlabtoken- GitLab トークンを設定する場合 (GitLab プラグインをインストール必要)aws_creds- EC2 認証情報を設定する場合 (EC2 プラグインをインストール必要)secrettext- 秘密テキスト形式のトークンを設定する場合 (GitHub プラグインによって使用される、スコープ "admin:repo_hook", "repo", "repo:status" でトークンを登録する必要があります)
keySource はプライベートキーの提供方法を指定します:
0- DirectEntryPrivateKeySource。この値が設定されている場合は、プレーンテキストのkey変数にプライベートキーを置く必要があります。1- FileOnMasterPrivateKeySource。この値が設定されている場合は、key変数にプライベートキーへの絶対パスを置く必要があります。2- UsersPrivateKeySource。この値が設定されている場合、Jenkins は~/.sshからデフォルトのプライベートキーを使用します。
EC2 プラグイン構成
jenkins2_ec2_enable- Jenkins EC2 プラグインを構成を有効にします。 https://wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin
デフォルト: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-----
ここにプライベートキーを置くことができますが、
プライベートキーは、Ansible-vault や Hashicorp-vault などの
ボールトサービスに保存することを強くお勧めします。
-----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: 'Jenkins slave for 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: 'CI Slave'}
- {name: 'Name2', value: 'CI2 Slave'}
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: 'Jenkins slave for 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: 'FV Slave'}
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
セキュリティと認証の構成
jenkins2_security_enable: Jenkins セキュリティを有効にします。
デフォルト:truejenkins2_security_realm: Jenkins セキュリティのタイプを選択します。利用可能なもの:basic,ldap,active-directory
デフォルト:'basic'デフォルトの
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デフォルトの
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: 権限戦略の設定を有効にします。
デフォルト:truejenkins2_authorization_strategy: 権限戦略のタイプ。利用可能:logged-in,matrix-based
デフォルト:"logged-in"jenkins2_authorization_strategy_logged_in_allow_anonymous_read: 匿名の読み取りアクセスを許可するかどうか。
デフォルト:false
=======
jenkins2_ssh_keys_slave_hosts - リモート SSH ユーザーを持つスレーブホストを記述する辞書、例:
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:
注意: - vars 方式には
例インベントリ
[jenkins] server.example.com
[jenkins_ssh_slaves] slave1.example.com slave2.example.com
例プレイブック
- name: 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
ライセンス
著者情報
著者:
- Lean Delivery チーム team@lean-delivery.com
