OpenShift Localへユーザー登録をする最も簡単な方法


はじめに

OpenShift管理者タスクの学習目的、あるいは、EX280のようなレッドハット認定試験対策の演習環境として、OpenShift Localを使うことができます。

管理者がOpenShiftをインストールした後にする重要なタスクのひとつとしてユーザー登録があります。ユーザーが登録されていないとOpenShiftに利用者がログインすることができないからです。この記事ではOpenShiftに新規ユーザー登録をする簡単な方法について紹介します。

この記事を書くにあたり、OpenShift Local v4.17.1 を使いました。OpenShift Localの概要とインストール、起動・停止の方法については以下の記事をご覧ください。

OpenShift Localにユーザーを登録する意義

OpenShift Localには、開発者としてdeveloper、管理者としてkubeadminというの2つの初期ユーザーが事前登録されていますのでインストール後にすぐに使い始めることができます。

ところが、OpenShiftの管理者タスクを学習するという目的でOpenShift Localを使おうとすると、developerが1つだけでは、グループを作ったり、ユーザーの権限を変更したり、といった検証が難しいです(OpenShift Localは開発者用のOpenShiftなので当然ですけどね)。

OpenShirtにユーザー登録をするには

製品ドキュメントには、htpasswdを使ったアイデンティティプロバイダーを登録する方法が記載されています。OpenShift Webコンソールを使えば、比較的簡単にOpenShiftにユーザー登録をすることができます。

OpenShiftにユーザー登録をする手順

パスワードファイルの作成

htpasswdコマンドを使って、パスワードファイル htpasswd.txt にユーザーを登録します。htpasswdコマンドがなければ、httpd-tools パッケージをインストールしてください。

$ htpasswd -c -B -b /home/student/htpasswd.txt admin redhat
Adding password for user admin

$ htpasswd -B -b /home/student/htpasswd.txt developer1 developer1
Adding password for user developer1

$ htpasswd -B -b /home/student/htpasswd.txt developer2 developer2
Adding password for user developer2

$ cat /home/student/htpasswd.txt
admin:$2y$05$MQIky766yZpTgUnKNmBd/un8puWwapeD1x5WBuwPrTef5sB4DsVmq
developer1:$2y$05$R5oV0dBkF9qeyjICGCNhP.Xr0edegIvbDSPfH2vDYsMA9x1GdHhNi
developer2:$2y$05$.WYMj9WW.tt5VLPjpnt7POMtw6sgxSlDu6cZDhbXAC.Rl2PE0VVy2

WebコンソールでOAuthの設定

Webコンソールにkubeadminでログインし、ナビゲーションメニューから [管理] > [クラスター設定] をクリックし、[設定] タブを開きます。

クラスター設定のページをスクロールして OAuth のリンクを探してクリックします。

OAuthの詳細画面が開いたら、画面の下の方にあるアイデンティティープロバイダーの表示を探します。

アイデンティティープロバイダーの [追加] のメニューを開いて HTPasswd を選択します。

HtPaawdファイルの [参照] ボタンを押して、作成済みのパスワードファイルhtpasswd.txtを読み込ませます。ここでは、[名前] はデフォルトのhtpasswdのままにしておきますが、別の名前に変更することもできます。

パスワードファイルが読み込まれたら [追加] ボタンを押します。

追加した後は、アイデンティティプロバイダーとして developer の行の下にhtpasswdという設定が追加されていることが確認できます。

ログインの確認

kubeadminでログインしていたWebコンソールをログアウトし、adminという名前でログインし直します。ログイン画面に、htpasswdという表示が新たに追加されました。[htpasswd]の方をを押して、ログイン画面を表示します。

注意
ログイン画面に入り口が2つありますが、次のように使い分けてください。
[developer] は、OpenShift Localのデフォルトユーザー (developer, kubeadmin)でログインするときの入り口です。
[htpasswd] は、今回新規に登録したユーザー(admin, developer1, developer2)でログインするときの入り口です。

ログイン画面で、ユーザー名 admin、パスワード redhat でログインします。ログインに失敗した場合は、少し時間を空けて再度ログインしてみてください。

ログインに成功すると、画面右上のユーザー名に admin と表示されていることがわかります。

同様に、developer1developer2でもログインできるはずです。こちらはCLIコマンドで確認してみましょう。

$ oc login -u developer1 -p developer1
Login successful.

You don't have any projects. You can try to create a new project, by running

    oc new-project <projectname>

$ oc whoami
developer1

$ oc login -u developer2 -p developer2
Login successful.

You don't have any projects. You can try to create a new project, by running

    oc new-project <projectname>

$ oc whoami
developer2

クラスター管理者の権限設定

ユーザーadminは、名前は管理者ですが、実際にはまだ管理者の権限をもっていません。oc loginでkubeadminでログインし、以下のコマンドを実行してadminにcluster-adminを権限を付与してください。


$ oc adm policy add-cluster-role-to-user cluster-admin admin

その後、oc loginでadminとしてログインし直します。管理者しか実行できない oc get nodeを実行できることを確認します。

$ oc login -u admin -p redhat
Login successful.

You have access to 66 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "default".


$ oc get node
NAME   STATUS   ROLES                         AGE   VERSION
crc    Ready    control-plane,master,worker   31d   v1.30.4

adminがクラスター管理者になったので、Webコンソールからadminでログインすると、kubeadminと同様に、すべての種類のリソースにアクセスできるようになっていることがわかります。

おわりに

いかがでしょうか。Webの画面スナップショットの枚数が多いので一見、複雑に見えるかもしれませんが、htpasswd.txtファイルさえ手元に準備してあれば、非常に簡単にユーザー登録ができますので、ぜひ試してみてください。

この記事の手順で登録したユーザーは、crc deleteでcrcインスタンスを消してしまうと一緒に消えてしまいます。crc startして再起動した後にhtpasswd.txtを読み込ませて再度ユーザーを登録してください。

いいなと思ったら応援しよう!