コマンドだけ知りたいって方は、すっ飛ばしてください。
大したことをやってないのに、無駄に長い記事になりました。
あと対象はIX2215としていますが、ファームウェアバージョン10系のIXであればだいたいいけると思います。
(9系は手元にないので未検証)
ことの始まり
ある日、東京のオフィスから西日本のとある拠点のIX2215の設定をSSHでいじっていた私。
予め用意していたコンフィグをブロック毎に確認しながらコピーし、ターミナルに貼り付けてはエンターキーをッターンッ!と叩いて投入していた。
途中までは順調。
が、とある設定のブロックをターミナルに貼り付け、エンターキーを叩いた瞬間に悲劇は起こった。
ターミナルが反応しない
なんどエンターキーを叩いても、一向にプロンプトが返ってこない。
慌ててNetMeisterの画面を確認するがオフライン
インターネット接続が途絶える=死
な状況に陥ってしまい、慌てて現地にいるメンバーに電話をしてIXの電源をOFF/ONしてもらって復旧した。
幸い10分ほどで復旧はできたが、設定ミスでインターネット接続が途絶え、しかもリモートから復旧させる手段がないというのは精神衛生上大変宜しくない。
ふと、IXの機能紹介ページを見ていたら
コンフィグロールバック(保守作業トラブル回避)
定期的に再起動する設定をリモート作業中のみ投入しておくことで、設定ミスでアクセスできなくなってしまった場合でも、一定時間経過後に元の設定に戻ります。
とあるではないか。
これだ
早速設定に取り掛かろうと思ったが、どこを探してもコンフィグのサンプルが見当たらない。
「お前の探し方が悪いだけだろ」とか「はぁ?今の時代、生成AIでコンフィグも書けるだろ」とか言われそうだが、
投入したいときにパッと投入できてこそ、コンフィグというものである。(意味不明)
そんなわけで、盛大な前置きに続いて実コンフィグをメモとして残しておく。
設定
設定の詳細な解説はコマンドリファレンスを参照のこと。
まずは、コマンドアクション機能を使って、再起動するコマンドを定義する。
(以下は全てグローバルコンフィグモードで投入)
command-action list reload-ix
command 10 reload yes
コマンドアクション名として「reload-ix」としているが、ここは自由に設定できる。
command 10は、実際のコマンドを指定しており、10は実行順を示す値を適当に指定する。
reload yesは、言わずもがなIXの再起動コマンドだが、yes を後ろに付けることで、プロンプトを出さずに再起動する。
これを指定しないと動作しないので注意。
さて、賢明なIX諸氏は、ここで write memory してコンフィグを保存するだろうが、誤ったコンフィグごと保存しては意味がないので、その点だけ注意が必要だ。
問題なさそうであれば、write memoryしておくことをオススメする。
続いて、コマンドアクションをスケジューラー機能に登録する。
スケジューラー機能は、日時指定、インターバル指定の両方に対応している。
自分の作業と復旧までの許容時間に応じて使い分けるのがいいだろう。
時刻指定
scheduler timetable LIST datetime HOUR MINUTE [DAY [MONTH [YEAR]]]
(例)毎時10分に実行する
scheduler timetable reload-ix datetime * 10
インターバル指定
scheduler timetable LIST interval [hour HOURS] [minute]
(例)10分毎に実行する(HOURSは省略可能で省略時は0扱い)
scheduler timetable LIST interval 10
scheduler timetable を投入した瞬間から有効になるので、後はコンフィグをぽちぽち進めればよい。
ただし、ぽちぽちの最中にwrite memoryをしてはいけない。
scheduler timetableまで保存されてしまい、永遠と自動で再起動するIXになってしまう。
また、作業中は指定した時間に自動で再起動してしまうので注意する。
作業完了後はscheduler timetableを必ず削除してwrite memoryする。
(作業完了後)
no scheduler timetable reload-ix datetime * 10
wri mem
終わりに
なぜコンフィグを事前に検証しなかったのか
という至極当然で真っ当極まりないご意見は受け付けません。
だって会社にIXの予備機が無かったんだもん…。
逸般の誤家庭であればIXの数台くらいあるんでしょうけど、うちは逸般の誤家庭ではないので、NEC IX2215/YAMAHA RTX1200と、ホコリ被ってるRTX1100/RTV700くらいしかないんですもん…。