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]に記載されておりました。(私はハマるまでその必要性を理解していなかったので反省...)