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 ユーザーとグループ
デフォルト:jenkins
jenkins2_package_version
- Jenkins インストール用パッケージ名
デフォルト:jenkins
jenkins2_release_line
- インストールするパッケージのバージョン: stable または latest
デフォルト:stable
jenkins2_disable_gpg_check
- GPG チェックをスキップ (yum のみ)
デフォルト:false
jenkins2_key_validate_certs
- キーのインストール時に証明書を検証 (yum のみ)
デフォルト:true
jenkins2_context_path
- Jenkins のコンテキストパス
デフォルト:''
jenkins2_cli_username
- Jenkins CLI 接続用のユーザー
デフォルト:admin
jenkins2_cli_password
- Jenkins CLI 接続用のユーザーパスワード
デフォルト:admin
jenkins2_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 がリッスンするポート。
デフォルト:8080
jenkins2_config_listen_address
- Jenkins が HTTP リクエストをリッスンする IP アドレス。デフォルトはすべてのインターフェース (0.0.0.0)。
デフォルト:''
jenkins2_config_debug_level
- ログのデバッグレベル -- 値が高いほど詳細になります。5はINFO。
デフォルト:5
jenkins2_config_enable_access_log
- アクセスログを有効にするかどうか。
デフォルト:no
jenkins2_config_handler_max
- 最大HTTPワーカー スレッド数。
デフォルト:100
jenkins2_config_handler_idle
- 最大アイドルHTTPワーカー スレッド数。
デフォルト:20
jenkins2_config_args
- Jenkins に任意の引数を渡します。オプションの完全なリスト: java -jar jenkins.war --help
デフォルト:''
HTTPSを有効にする
jenkins2_https_enabled
- セキュア接続を使用するかどうか。
デフォルト:true
jenkins2_http_disabled
- 安全でない接続を無効にする。
デフォルト:false
jenkins2_config_https_port
- セキュア接続のためのJenkinsポート (https)。
デフォルト:8443
jenkins2_local_keystore
- true の場合 - Ansible ホスト上の {{ jenkins2_local_keystore_path }} にキーストアを検索します。false の場合 - リモートホスト上のキーストアを確認します。 デフォルト:false
jenkins2_local_keystore_path
- ローカルキーストアファイルへのパス (自己署名を作成しないために)
デフォルト:{{ role_path }}/files/{{ jenkins2_ssl_key_store_name }}
jenkins2_ssl_configure
- Jenkins 用の SSL 接続を構成するかどうか。
デフォルト:true
jenkins2_ssl_key_store_name
- キーストアファイル名。役割フォルダー/ファイル内にこの名前のファイルが存在する場合、それがキーストアとして使用されます。
デフォルト:jenkins2-ssl.keystore.jks
jenkins2_ssl_key_size
- 証明書のキーサイズ。
デフォルト:4096
jenkins2_ssl_key_store_password
- キーストアのパスワード。
デフォルト:123456
jenkins2_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.com
jenkins2_local_pkey_file_name
- プライベート証明書名。
デフォルト:{{ ansible_hostname }}.ca-pkey.pem
jenkins2_local_cert_file_name
- 公開証明書名。
デフォルト:{{ ansible_hostname }}.ca-cert.pem
Jenkins プロキシ設定
jenkins2_proxy_url
- プラグインダウンロード設定用のプロキシURL
デフォルト:''
jenkins2_proxy_host
- プロキシサーバーのホスト名
デフォルト:''
jenkins2_proxy_port
- プロキシサーバーのポート
デフォルト:0
jenkins2_proxy_username
- プロキシ接続用のユーザー名
デフォルト:''
jenkins2_proxy_password
- プロキシ接続用のパスワード
デフォルト:''
jenkins2_proxy_no_proxy_hosts
- プロキシしないホスト
デフォルト:''
SSH キー生成設定
jenkins2_ssh_keys_generate
- Jenkins ユーザーの下で SSH キーペアを生成する機能を追加
デフォルト:false
jenkins2_ssh_keys_private_keyname
- プライベートキー名
デフォルト:id_rsa
jenkins2_ssh_keys_size
- SSH RSA キーの強度サイズ
デフォルト:4096
jenkins2_ssh_keys_inv_slave_groupname
- インベントリファイル内のスレーブグループ名
デフォルト:jenkins_ssh_slaves
Jenkins 設定方法
jenkins2_configure_by_casc
- JCasC による設定を設定 jenkins2_configure_by_groovy を false にする必要があります デフォルト:true
jenkins2_jcasc_directory
- JCasC が YAML ファイルを検索する相対パス
デフォルト:jcasc
jenkins2_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
- すべてのグローバルツール用の自動構成を有効にします。
デフォルト:false
jenkins2_globaltools_jdk_enable
- JDK 用の自動構成を有効にします。
デフォルト:true
jenkins2_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.groovy
jenkins2_globaltools_maven_enable
- Maven 用の自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_maven_version
- Maven のバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_maven_template
- Maven 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\maven.groovy
jenkins2_globaltools_ant_enable
- Ant 用の自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_ant_version
- Ant のバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_ant_template
- Ant 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\ant.groovy
jenkins2_globaltools_nodejs_enable
- Node.js 用の自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_nodejs_version
- Node.js のバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_nodejs_template
- Node.js 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\nodejs.groovy
jenkins2_globaltools_sonarscanner_enable
- SonarQube スキャナー用の自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_sonarscanner_version
- SonarQube スキャナーのバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_sonarscanner_template
- SonarQube スキャナー構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\sonarscanner.groovy
jenkins2_globaltools_sonarscannermsbuild_enable
- MSBuild 用の SonarQube スキャナーの自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_sonarscannermsbuild_version
- MSBuild 用の SonarQube スキャナーのバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_sonarscannermsbuild_template
- MSBuild 用の SonarQube スキャナー構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\sonarscannermsbuild.groovy
jenkins2_globaltools_gradle_enable
- Gradle 用の自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_gradle_version
- Gradle スキャナーのバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_gradle_template
- Gradle 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\gradle.groovy
jenkins2_globaltools_docker_enable
- Docker 用の自動構成を有効にします。
デフォルト:true
jenkins2_globaltools_docker_version
- Docker のバージョンリスト (リストとして定義)
デフォルト:[]
jenkins2_globaltools_docker_template
- Docker 構成テンプレートファイル名(.j2なし)。 テンプレートのすべての必要な変数を設定することを忘れないでください。 デフォルト:globaltools\docker.groovy
SMTP 設定
jenkins2_smtp_enabled
- SMTP 設定を設定します。
デフォルト:true
jenkins2_smtp_sysad_email
- Jenkins 管理者のメール
デフォルト:[email protected]
jenkins2_smtp_user
- Jenkins 管理者のメール
デフォルト:[email protected]
jenkins2_smtp_password
- SMTP ユーザーのパスワード
デフォルト:password
jenkins2_smtp_port
- SMTP サーバーのポート
デフォルト:587
jenkins2_smtp_host
- SMTP サーバーのホスト名
デフォルト:smtp.office365.com
Jenkins プラグインの設定
jenkins2_updates_url
- 更新センターの URL。プラグインと update-center.json JSON ファイルをダウンロードするための基本 URL として使用されます。
デフォルト:https://updates.jenkins.io
jenkins2_plugins_timeout
- プラグインインストールのタイムアウト
デフォルト:2000
jenkins2_plugins_list
- プラグインのリスト (提案されたリストとマージされます)
デフォルト:[]
jenkins2_plugins_version
- バージョン番号を指定することを有効にします。すべてのプラグイン依存関係は jenkins2_plugins_dict で提供される必要があります。
デフォルト:false
jenkins2_plugins_install_dependencies
- 正確なプラグインバージョンが提供されていない場合、プラグイン依存関係をインストールします。
デフォルト:true
jenkins2_plugins_dict
- バージョンが有効な場合はリストの代わりに使用されるプラグインの辞書。 値が浮動小数点数として解釈されないようにバージョンを引用します。例:ssh-slaves: '1.30.0'
デフォルト:{}
認証情報の設定
jenkins2_credentials_enabled
- 認証情報を追加するかどうか。
デフォルト:true
jenkins2_credentials
- 認証情報マップ
パイプラインライブラリの設定
jenkins2_pipeline_libraries_enabled
- グローバルパイプラインライブラリを構成します。
デフォルト:false
jenkins2_pipeline_libraries_name
- @Library 注釈で使用されるライブラリ名
デフォルト:Pipeline_Libraries
jenkins2_pipeline_libraries_url
- リモートリポジトリの URL
デフォルト:''
jenkins2_pipeline_libraries_version
- スクリプトが別のバージョンを選択しない場合に読み込むライブラリのデフォルトバージョン。ブランチ名、タグ、コミットハッシュなど、SCM に応じて。
デフォルト:'master'
Bitbucket プロジェクトの設定
jenkins2_bitbucket_project_enabled
- Bitbucket チーム/プロジェクトを構成します。
デフォルト:false
jenkins2_bitbucket_project_owner
- Bitbucket チームまたは Bitbucket ユーザーアカウントの名前。Bitbucket Server を使用している場合は、プロジェクトキーを使用します。プロジェクト名ではありません。ユーザーアカウントをプロジェクトの代わりに使用する場合は、ユーザー名の前に「~」文字を追加します。
デフォルト:Bitbucket_Project_Owner
jenkins2_bitbucket_project_repo_regexp
- リポジトリ名を制限する Java 正規表現。指定された正規表現と一致しないリポジトリ名は無視されます。
デフォルト:''
jenkins2_bitbucket_project_discover_branches_strategy
- どのブランチが検出されるかを決定します。1 - PR としてもファイルされるブランチを除外する、2 - PR としてもファイルされるブランチのみ、3 - すべてのブランチ。
デフォルト:1
jenkins2_bitbucket_project_discover_pr_strategy
- プルリクエストが検出される方法を決定します。1 - プルリクエストを現在のターゲットブランチのリビジョンにマージする、2 - 現在のプルリクエストリビジョン、3 - 現在のプルリクエストリビジョンと現在のターゲットブランチのリビジョンをマージしたものの両方。
デフォルト:1
jenkins2_bitbucket_project_scan_interval
- 最近のインデックス作成から経過しても許可される最大の時間。
デフォルト:60
jenkins2_bitbucket_project_autobuild_branches
- 一致するブランチが自動的にトリガーされます。
デフォルト:'master|develop|PR-[0-9]+'
SonarQube の設定
jenkins2_sonarqube_enabled
- SonarQube の設定を追加します。
デフォルト:false
jenkins2_sonarqube_name
- SonarQube 名
デフォルト:SonarQube
jenkins2_sonarqube_url
- SonarQube サーバーの URL
デフォルト:http://localhost:9000
jenkins2_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 にカスタムファイルをコピーします。
デフォルト:false
jenkins2_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 設定を有効にします。
デフォルト:false
gitlab_external_url
- GitLab 外部 URL
デフォルト:https://localhost
jenkins2_gitlab_token_cred
- GitLab トークン ID (以下の例の認証情報: gitlabtoken から)
デフォルト:gitlab_token
GitHub の設定
jenkins2_github_enabled
- GitHub 設定を有効にします。
デフォルト:false
github_external_url
- GitHub 外部 URL
デフォルト:https://localhost
github_manage_hooks
- GitHub フックを管理します。
デフォルト:true
github_client_cache_size
- GitHub クライアントキャッシュサイズ
デフォルト:20
jenkins2_github_token_cred
- GitHub トークン ID (以下の例の認証情報: secrettext から)
デフォルト:github_token
JIRA の設定
jenkins2_jira_enabled
- JIRA 設定を有効にします。
デフォルト:false
jenkins2_jira_url
- JIRA の URL
デフォルト:https://jira.example.com
jenkins2_jira_alternative_url
- JIRA の別の URL
デフォルト:https://jira.example.com
jenkins2_jira_use_http_auth
- このオプションにより、Jenkins が RPC 経由でログインするのではなく、HTTP Basic 認証を使用して JIRA に接続します。
デフォルト:true
jenkins2_jira_support_wiki_notation
- true の場合、JIRA はコメント中の Wiki 記法をサポートします。true の場合、Jenkins は Wiki 記法を利用するコメントを投稿します。false の場合、Jenkins はプレーンテキストコメントのみを投稿します。
デフォルト:true
jenkins2_jira_record_scm_changes
- true の場合、scm の変更が JIRA に記録されます: scm リポジトリブラウザーへのリンクとパスの変更。
デフォルト:false
jenkins2_jira_disable_changelog_annotations
- 変更セットに JIRA ハイパーリンクを作成することを無効にします。
デフォルト:false
jenkins2_jira_issue_pattern
- SCM ログ中の JIRA 課題 ID を検索する独自のパターンを定義できます。
デフォルト:PATTERN.*
jenkins2_jira_update_relevant_issues
- false の場合、ビルドが成功または不安定である場合にのみ課題が更新されます。true の場合、関連する JIRA 課題は常に更新されます。ビルド結果にかかわらず。
デフォルト:true
jenkins2_jira_credentials_id
- JIRA のための Jenkins 認証情報 ID
デフォルト:jirauser
jenkins2_jira_connection_timeout
- JIRA REST API 呼び出しの接続タイムアウト (秒)
デフォルト:10
jenkins2_jira_read_timeout
- JIRA REST API 呼び出しの読み取りタイムアウト (秒)
デフォルト:30
jenkins2_jira_thread_executor_size
- JIRA を照会するためのスレッドプールエグゼキュータのサイズ
デフォルト:10
jenkins2_jira_visible_for_group
- コメントを表示する権限がある JIRA グループの名前を入力します。空のままにすると、すべての JIRA ユーザーがコメントにアクセスできます。
デフォルト: ``jenkins2_jira_visible_for_project_role
- コメントを表示する権限がある JIRA プロジェクトロールの名前を入力します。空のままにすると、すべての JIRA ユーザーがコメントにアクセスできます。
デフォルト: ``jenkins2_jira_add_timestamps_for_comments
- true の場合、SCM 変更エントリの日付と時刻が JIRA に記録されます。
デフォルト:true
jenkins2_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 シードジョブを有効にします。
デフォルト:false
jenkins2_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.groovy
jenkins2_seed_job_ignore_existing
- 既存のジョブを無視し、それらを上書きしないようにします。
デフォルト:true
jenkins2_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 セキュリティを有効にします。
デフォルト:true
jenkins2_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
: 権限戦略の設定を有効にします。
デフォルト:true
jenkins2_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