第1章 Jenkins イメージの設定


OpenShift Dedicated には、Jenkins を実行するためのコンテナーイメージがあります。このイメージには Jenkins サーバーインスタンスが含まれており、このインスタンスを使用して継続的なテスト、統合、デリバリーの基本フローを設定できます。

イメージは、Red Hat Universal Base Images (UBI) に基づいています。

OpenShift Dedicated は Jenkins の LTS リリースに準拠しています。OpenShift Dedicated は Jenkins 2.x を含むイメージを提供します。

OpenShift Dedicated の Jenkins イメージは、Quay.io または registry.redhat.io で入手できます。

以下に例を示します。

$ podman pull registry.redhat.io/ocp-tools-4/jenkins-rhel8:<image_tag>

Jenkins イメージを使用するには、これらのレジストリーから直接アクセスするか、イメージを OpenShift Dedicated のコンテナーイメージレジストリーにプッシュします。さらに、コンテナーイメージレジストリーまたは外部の場所で、対象イメージを参照するイメージストリームを作成することもできます。これにより、OpenShift Dedicated リソースがイメージストリームを参照できるようになります。

ただし、OpenShift Dedicated は、利便性のために、コア Jenkins イメージ用の openshift namespace でイメージストリームを提供するほか、OpenShift Dedicated と Jenkins の統合用に用意されたサンプルエージェントイメージも提供します。

1.1. 設定とカスタマイズ

Jenkins 認証は、以下の 2 つの方法で管理できます。

  • OpenShift Dedicated ログインプラグインが提供する OpenShift Dedicated OAuth 認証。
  • Jenkins が提供する標準認証。

1.1.1. OpenShift Dedicated OAuth 認証

OAuth 認証をアクティブ化するには、Jenkins UI の Configure Global Security パネルでオプションを設定するか、Jenkins の Deployment configurationOPENSHIFT_ENABLE_OAUTH 環境変数を false 以外に設定します。これにより、OpenShift Dedicated ログインプラグインがアクティブ化されます。このプラグインは、Pod データから、または OpenShift Dedicated の API サーバーと対話して設定情報を取得します。

有効な認証情報は、OpenShift Dedicated のアイデンティティープロバイダーによって制御されます。

Jenkins はブラウザーおよびブラウザー以外のアクセスの両方をサポートします。

有効なユーザーは、ログイン時に Jenkins 認証マトリックスに自動的に追加されます。その際に、OpenShift Dedicated のロールによって、ユーザーに付与される特定の Jenkins パーミッションが指定されます。デフォルトで使用されるロールは、事前に定義される adminedit、および view です。ログインプラグインは、Jenkins が実行しているプロジェクトまたは namespace のそれらのロールに対して自己 SAR 要求 (self-SAR request) を実行します。

admin ロールを持つユーザーには、従来の Jenkins 管理ユーザーパーミッションがあります。ユーザーのパーミッションは、ロールが editview になるほど少なくなります。

デフォルトの OpenShift Dedicated の adminedit、および view ロールと、Jenkins インスタンスでそれらのロールに割り当てられる Jenkins パーミッションは設定可能です。

OpenShift Dedicated の Pod で Jenkins を実行すると、ログインプラグインは、Jenkins が実行している namespace で openshift-jenkins-login-plugin-config という名前の config map を検索します。

ログインプラグインがその config map を検出して読み取ることができる場合は、Jenkins パーミッションマッピングにロールを定義できます。具体的には以下を実行します。

  • ログインプラグインは、config map 内のキーと値のペアを、OpenShift Dedicated のロールマッピングに対する Jenkins パーミッションとして処理します。
  • キーは Jenkins パーミッショングループの短い ID と Jenkins パーミッションの短い ID で、この 2 つはハイフンで区切られています。
  • OpenShift Dedicated のロールに Overall Jenkins Administer パーミッションを追加する場合は、キーが Overall-Administer である必要があります。
  • パーミッショングループおよびパーミッション ID が利用可能であるかどうかを把握するには、Jenkins コンソールのマトリックス認証ページに移動し、グループの ID とグループが提供するテーブルの個々のパーミッションを確認します。
  • キーと値のペアの値は、パーミッションの適用先となる OpenShift Dedicated ロールのリストです。各ロールはコンマで区切ります。
  • Overall Jenkins Administer パーミッションをデフォルトの admin および edit ロールの両方に追加し、作成した新規の jenkins ロールも追加する場合は、キーの Overall-Administer の値が admin,edit,jenkins になります。
注記

OpenShift Dedicated の OAuth を使用する場合、OpenShift Dedicated の Jenkins イメージに管理者権限を使用して事前設定されている admin ユーザーには、管理者権限が付与されません。この権限を付与するには、OpenShift Dedicated クラスター管理者が OpenShift Dedicated のアイデンティティープロバイダーでそのユーザーを明示的に定義し、そのユーザーに admin ロールを割り当てる必要があります。

保存される Jenkins ユーザーのパーミッションは、初回のユーザー作成後に変更できます。OpenShift Dedicated ログインプラグインは、OpenShift Dedicated の API サーバーをポーリングしてパーミッションを取得し、ユーザーごとに Jenkins に保存されているパーミッションを、OpenShift Dedicated から取得したパーミッションを更新します。Jenkins UI を使用して Jenkins ユーザーのパーミッションを更新する場合には、プラグインが次回に OpenShift Dedicated をポーリングするタイミングで、パーミッションの変更が上書きされます。

ポーリングの頻度は OPENSHIFT_PERMISSIONS_POLL_INTERVAL 環境変数で制御できます。デフォルトのポーリングの間隔は 5 分です。

OAuth 認証を使用して新しい Jenkins サービスを作成するには、テンプレートを使用するのが最も簡単な方法です。

1.1.2. Jenkins 認証

テンプレートを使用せず、イメージが直接実行される場合は、デフォルトで Jenkins 認証が使用されます。

Jenkins の初回起動時には、設定、管理ユーザーおよびパスワードが作成されます。デフォルトのユーザー認証情報は、adminpassword です。標準の Jenkins 認証を使用する場合に限り、JENKINS_PASSWORD 環境変数を設定してデフォルトのパスワードを設定します。

手順

  • 次のコマンドを実行して、標準の Jenkins 認証を使用する Jenkins アプリケーションを作成します。

    $ oc new-app -e \
        JENKINS_PASSWORD=<password> \
        ocp-tools-4/jenkins-rhel8
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.