2.9. ノードアクセス用のコアユーザーパスワードの変更
デフォルトでは、Red Hat Enterprise Linux CoreOS (RHCOS) はクラスター内のノードに core という名前のユーザーを作成します。core ユーザーを使用して、クラウドプロバイダーのシリアルコンソールまたはベアメタルベースボードコントローラーマネージャー (BMC) を介してノードにアクセスできます。これは、たとえば、ノードがダウンしていて、SSH または oc debug node コマンドを使用して、そのノードにアクセスできない場合に役立ちます。ただし、デフォルトでは、このユーザーにはパスワードがないため、パスワードを作成しないとログインできません。
マシン設定を使用して、core ユーザーのパスワードを作成できます。Machine Config Operator (MCO) がパスワードを割り当て、そのパスワードを /etc/shadow ファイルに挿入して、core ユーザーでログインできるようにします。MCO はパスワードハッシュを調べません。そのため、パスワードに問題がある場合、MCO は報告できません。
- パスワードは、クラウドプロバイダーのシリアルコンソールまたは BMC を介してのみ機能します。SSH では動作しません。
-
/etc/shadowファイルまたはパスワードを設定する systemd ユニットを含むマシン設定がある場合、パスワードハッシュよりも優先されます。
必要に応じて、パスワードの作成に使用したマシン設定を編集して、パスワードを変更できます。また、マシン設定を削除することでパスワードを削除できます。マシン設定を削除しても、ユーザーアカウントは削除されません。
手順
オペレーティングシステムでサポートされているツールを使用して、ハッシュ化されたパスワードを作成します。たとえば次のコマンドを実行し、
mkpasswdを使用してハッシュ化されたパスワードを作成します。$ mkpasswd -m SHA-512 testpass出力例
$ $6$CBZwA6s6AVFOtiZe$aUKDWpthhJEyR3nnhM02NM1sKCpHn9XN.NPrJNQ3HYewioaorpwL3mKGLxvW0AOb4pJxqoqP4nFX77y0p00.8.coreユーザー名とハッシュ化されたパスワードを含むマシン設定ファイルを作成します。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: set-core-user-password spec: config: ignition: version: 3.4.0 passwd: users: - name: core1 passwordHash: <password>2 次のコマンドを実行して、マシン設定を作成します。
$ oc create -f <file-name>.yamlノードは再起動せず、しばらくすると使用可能になります。次の例に示すように、
oc get mcpを使用して、マシン設定プールが更新されるのを監視できます。NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-d686a3ffc8fdec47280afec446fce8dd True False False 3 3 3 0 64m worker rendered-worker-4605605a5b1f9de1d061e9d350f251e5 False True False 3 0 0 0 64m
検証
ノードが
UPDATED=True状態に戻ったら、次のコマンドを実行してノードのデバッグセッションを開始します。$ oc debug node/<node_name>次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして
/hostを設定します。sh-4.4# chroot /host/etc/shadowファイルの内容を確認します。出力例
... core:$6$2sE/010goDuRSxxv$o18K52wor.wIwZp:19418:0:99999:7::: ...ハッシュ化されたパスワードは、
coreユーザーに割り当てられます。