cobbler2.4では、指定方法がわかりづらかったのでメモしておく。
Cobblerは、対象サーバ(Cobblerではsystemと呼ぶ)の電源操作もサポートしている。
また、どのコマンドを使用するかは、systemを登録するときに指定することができる。どのコマンドが使用可能なのかは、下記の2つのパスのfence_という接頭辞のものが使える。(システム登録時はfence_のtypeの部分だけ指定する)
- /sbin/fence_command_type
- /usr/sbin/fence_command_type
で、今回の本題は、この先にあって、ここで指定したコマンド実行時に特定の標準入力を渡したいというパターンがある。
例えば、fence_ipmilanコマンドでipmi2.0を使用したいとき標準入力に、ipaddr情報など以外に、 lanplus 文字列を渡す必要がある
念のため書いておくと、cobblerではipアドレス情報やパスワード情報はコマンド引数として渡すのではなく、標準入力で渡している
んじゃ、もとの話題に戻ってその標準入力の値をカスタマイズしたいとき、cobblerではどうやって定義したらいいのか?を調べた。
どうやら、powerアクションのコマンドの引数は、templateで定義することができて、下記のパスのtemplateが参照される
- /etc/cobbler/power/fence_command_type
command_typeの部分は、指定したcommand_typeのものに置き換えて考えてください。なので、fence_ipmilanコマンド用の引数なら /etc/cobbler/power/fecne_ipmilan が参照される。
実際に例として、ipmi2.0に対応させたときのtemplateファイルを下記に示す。
action=$power_mode
ipaddr=$power_address
login=$power_user
passwd=$power_pass
lanplus
cobbler2.4では、インストール後に、/etc/cobbler/power/power_command_typeというtemplateファイルが入っているが、実はそれは参照されないので注意。
また、標準入力をカスタマイズするtemplateファイルのサンプルがインストールされないので注意。<=なんでだろう