第1章 Jenkins イメージの設定
Red Hat OpenShift Service on AWS クラシックアーキテクチャーには、Jenkins を実行するためのコンテナーイメージがあります。このイメージには Jenkins サーバーインスタンスが含まれており、このインスタンスを使用して継続的なテスト、統合、デリバリーの基本フローを設定できます。
イメージは、Red Hat Universal Base Images (UBI) に基づいています。
Red Hat OpenShift Service on AWS クラシックアーキテクチャーは Jenkins の LTS リリースに準拠しています。Red Hat OpenShift Service on AWS クラシックアーキテクチャーは Jenkins 2.x を含むイメージを提供します。
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Jenkins イメージは、Quay.io または registry.redhat.io で入手できます。
以下に例を示します。
podman pull registry.redhat.io/ocp-tools-4/jenkins-rhel8:<image_tag>
$ podman pull registry.redhat.io/ocp-tools-4/jenkins-rhel8:<image_tag>
Jenkins イメージを使用するには、これらのレジストリーから直接アクセスするか、イメージを Red Hat OpenShift Service on AWS クラシックアーキテクチャーのコンテナーイメージレジストリーにプッシュします。さらに、コンテナーイメージレジストリーまたは外部の場所で、対象イメージを参照するイメージストリームを作成することもできます。これにより、Red Hat OpenShift Service on AWS クラシックアーキテクチャーリソースがイメージストリームを参照できるようになります。
ただし、Red Hat OpenShift Service on AWS クラシックアーキテクチャーは、利便性のために、コア Jenkins イメージ用の openshift
namespace でイメージストリームを提供するほか、Red Hat OpenShift Service on AWS クラシックアーキテクチャーと Jenkins の統合用に用意されたサンプルエージェントイメージも提供します。
1.1. 設定とカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Jenkins 認証は、以下の 2 つの方法で管理できます。
- Red Hat OpenShift Service on AWS クラシックアーキテクチャーのログインプラグインによって提供される Red Hat OpenShift Service on AWS クラシックアーキテクチャーの OAuth 認証。
- Jenkins が提供する標準認証。
1.1.1. Red Hat OpenShift Service on AWS クラシックアーキテクチャー OAuth 認証 リンクのコピーリンクがクリップボードにコピーされました!
OAuth 認証をアクティブ化するには、Jenkins UI の Configure Global Security パネルでオプションを設定するか、Jenkins の Deployment configuration の OPENSHIFT_ENABLE_OAUTH
環境変数を false
以外に設定します。これにより、Red Hat OpenShift Service on AWS クラシックアーキテクチャーのログインプラグインがアクティブ化されます。このプラグインは、Pod データから、または Red Hat OpenShift Service on AWS クラシックアーキテクチャーの API サーバーと対話して設定情報を取得します。
有効な認証情報は、Red Hat OpenShift Service on AWS クラシックアーキテクチャーのアイデンティティープロバイダーによって制御されます。
Jenkins はブラウザーおよびブラウザー以外のアクセスの両方をサポートします。
有効なユーザーは、ログイン時に Jenkins 認証マトリックスに自動的に追加されます。その際に、Red Hat OpenShift Service on AWS クラシックアーキテクチャーのロールによって、ユーザーに付与される特定の Jenkins パーミッションが指定されます。デフォルトで使用されるロールは、事前に定義される admin
、edit
、および view
です。ログインプラグインは、Jenkins が実行しているプロジェクトまたは namespace のそれらのロールに対して自己 SAR 要求 (self-SAR request) を実行します。
admin
ロールを持つユーザーには、従来の Jenkins 管理ユーザーパーミッションがあります。ユーザーのパーミッションは、ロールが edit
、view
になるほど少なくなります。
デフォルトの Red Hat OpenShift Service on AWS クラシックアーキテクチャーの admin
、edit
、および view
ロールと、Jenkins インスタンスでそれらのロールに割り当てられる Jenkins パーミッションは設定可能です。
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Pod で Jenkins を実行する場合、ログインプラグインは、Jenkins を実行している namespace で openshift-jenkins-login-plugin-config
という名前の config map を検索します。
ログインプラグインがその config map を検出して読み取ることができる場合は、Jenkins パーミッションマッピングにロールを定義できます。具体的には以下を実行します。
- ログインプラグインは、config map 内のキーと値のペアを、Red Hat OpenShift Service on AWS クラシックアーキテクチャーのロールマッピングに対する Jenkins パーミッションとして処理します。
- キーは Jenkins パーミッショングループの短い ID と Jenkins パーミッションの短い ID で、この 2 つはハイフンで区切られています。
-
Red Hat OpenShift Service on AWS クラシックアーキテクチャーのロールに
Overall Jenkins Administer
パーミッションを追加する場合、キーはOverall-Administer
である必要があります。 - パーミッショングループおよびパーミッション ID が利用可能であるかどうかを把握するには、Jenkins コンソールのマトリックス認証ページに移動し、グループの ID とグループが提供するテーブルの個々のパーミッションを確認します。
- キーと値のペアの値は、パーミッションの適用先となる Red Hat OpenShift Service on AWS クラシックアーキテクチャーロールのリストです。各ロールはコンマで区切ります。
-
Overall Jenkins Administer
パーミッションをデフォルトのadmin
およびedit
ロールの両方に追加し、作成した新規の Jenkins ロールも追加する場合は、キーのOverall-Administer
の値がadmin,edit,jenkins
になります。
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの OAuth を使用する場合、Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Jenkins イメージに管理者権限を使用して事前設定されている admin
ユーザーには、管理者権限が付与されません。この権限を付与するには、Red Hat OpenShift Service on AWS クラシックアーキテクチャークラスター管理者が Red Hat OpenShift Service on AWS クラシックアーキテクチャーのアイデンティティープロバイダーでそのユーザーを明示的に定義し、そのユーザーに admin
ロールを割り当てる必要があります。
保存される Jenkins ユーザーのパーミッションは、初回のユーザー作成後に変更できます。Red Hat OpenShift Service on AWS クラシックアーキテクチャーログインプラグインは、Red Hat OpenShift Service on AWS クラシックアーキテクチャーの API サーバーをポーリングしてパーミッションを取得し、ユーザーごとに Jenkins に保存されているパーミッションを、Red Hat OpenShift Service on AWS クラシックアーキテクチャーから取得したパーミッションを更新します。Jenkins UI を使用して Jenkins ユーザーのパーミッションを更新する場合には、プラグインが次回に Red Hat OpenShift Service on AWS クラシックアーキテクチャーをポーリングするタイミングで、パーミッションの変更が上書きされます。
ポーリングの頻度は OPENSHIFT_PERMISSIONS_POLL_INTERVAL
環境変数で制御できます。デフォルトのポーリングの間隔は 5 分です。
OAuth 認証を使用して新しい Jenkins サービスを作成するには、テンプレートを使用するのが最も簡単な方法です。
1.1.2. Jenkins 認証 リンクのコピーリンクがクリップボードにコピーされました!
テンプレートを使用せず、イメージが直接実行される場合は、デフォルトで Jenkins 認証が使用されます。
Jenkins の初回起動時には、設定、管理ユーザーおよびパスワードが作成されます。デフォルトのユーザー認証情報は、admin
と password
です。標準の Jenkins 認証を使用する場合に限り、JENKINS_PASSWORD
環境変数を設定してデフォルトのパスワードを設定します。
手順
次のコマンドを実行して、標準の Jenkins 認証を使用する Jenkins アプリケーションを作成します。
oc new-app -e \ JENKINS_PASSWORD=<password> \ ocp-tools-4/jenkins-rhel8
$ oc new-app -e \ JENKINS_PASSWORD=<password> \ ocp-tools-4/jenkins-rhel8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow