lean_delivery.jenkins

Jenkins 2 インストール

========= ライセンス ビルドステータス ビルドステータス ギャラクシー Ansible Ansible

概要

この役割は:

  • 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

役割の変数


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 には次のオプションがあります:

  1. key - SSH プライベートキーを設定する場合
  2. password - ユーザー名/パスワードのバンドルを設定する場合
  3. gitlabtoken - GitLab トークンを設定する場合 (GitLab プラグインをインストール必要)
  4. aws_creds - EC2 認証情報を設定する場合 (EC2 プラグインをインストール必要)
  5. secrettext - 秘密テキスト形式のトークンを設定する場合 (GitHub プラグインによって使用される、スコープ "admin:repo_hook", "repo", "repo:status" でトークンを登録する必要があります)

keySource はプライベートキーの提供方法を指定します:

  • 0 - DirectEntryPrivateKeySource。この値が設定されている場合は、プレーンテキストの key 変数にプライベートキーを置く必要があります。
  • 1 - FileOnMasterPrivateKeySource。この値が設定されている場合は、key 変数にプライベートキーへの絶対パスを置く必要があります。
  • 2 - UsersPrivateKeySource。この値が設定されている場合、Jenkins は ~/.ssh からデフォルトのプライベートキーを使用します。

EC2 プラグイン構成

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']}

注意: - 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

ライセンス

Apache ライセンス

著者情報

著者:

プロジェクトについて

Jenkins installation and configuration

インストール
ansible-galaxy install lean_delivery.jenkins
ライセンス
apache-2.0
ダウンロード
27k
所有者
Simplify by using!