rancheros

[rancherOS]rancherユーザのパスワードを設定する手順メモ

More than 1 year has passed since last update.

rancherOSで使用するユーザ"rancher"のパスワード変更の方法がわからず、rancherjp slackのqaチャンネルに質問したところ、 @yamamoto-febc@FoxBoxsnet にさらっと解決頂いたので、備忘としてメモしておきます。

※本記事はrancherOS 1.1.0で検証しています

手順

最初にやり方を記載します。

sudo passwd rancher
-> 新パスワード設定
sudo ros config syslinux
-> "rancher.password=HOGEHOGE"の用に新パスワードを変更or追記

ログイン中にオンラインで設定

sudo passwd rancher

ISOからの初回起動時やsshログイン後の変更はこちらで、ごく普通のlinuxのコマンドですね。
しかしこのままOS再起動をすると初期化されてしまうので、永続的な設定を行う必要があります(rancherOSはOS自体がsystem-dockerというdocker上で起動するためです)

(永続設定)OSイメージのディスクインストール時に設定

sudo ros install -c cloud-config.yml -d /dev/<ディスクデバイス> --append "rancher.password=password"

@FoxBoxsnet さんの[RancherOS で インストール後パスワードでログインする方法]の記事にもあるとおりです。
rancherOSをディスクへインストールする際に、カーネルのブートパラメタとして設定します。

(永続設定)カーネルのブートパラメタ設定

sudo ros config syslinux
-> カーネルブートパラメタの編集モードになるため"rancher.password=HOGEHOGE"を追記

例)APPEND printk.devkmsg=on rancher.state.dev=LABEL=RANCHER_STATE rancher.state.wait console=tty0 rancher.password=HOGEHOGE

カーネルのブートパラメタを変更します。反映は次回の再起動後になりますので、オンラインでの変更とセットで実行することになるでしょう。
公式ドキュメントはこちらです->Kernel boot parameters
(@yamamoto-febc さんに教えて頂きました、Thx!)

なぜパスワードを設定する必要があるのか?

「パスワードなんて脆弱!sshなら鍵認証があるじゃろ」と思った方に、私もそう思って痛い目を見たのでお伝えしたい。
  『いざという時の為に設定しておいた方がいいよ(><)!』
ネットワークが死亡するなどした際にいざという時にパスワード認証ができないと、コンソールログインしようにもパスワードがわからなくて詰みます。
私の場合はOS再起動後にDHCPでIPが何故か取れない事象が発生し、sshが出来ない状況に詰みました...orz

なお同様の事が[Qiita:RancherOS on XenServer]に記載されておりました。(私はハマるまでその必要性を理解していなかったので反省...)