筆者は、BIP-IPを複数パーティションに分けて利用することはこれまでなかったのだが、とうとうパーティション分割する機会を得た。バッチ処理を作ろうとして困ったのでメモしておこうと思う。
運用を考えたとき、バッチ処理で処理情報や設定情報を取得したり、設定を更新したりしたいことがある。その場合、デフォルトのパーティションのCommonへの操作はBIG-IPへrootユーザーでログインしてtmshコマンドが発行できれば操作可能だ。
パーティション分割した場合、パーティションにアクセスするためのアカウントを作成するのだが、そのアカウントでリモートログインすると、tmshモードのコンソールになり、許可されたパーティション情報の参照や設定のみできる。tmshモードではバッチ処理が動かせないため、rootユーザーからtmshコマンドで処理したいが、Common以外のパーティションを参照するには工夫が必要であった。
tmshでパーティションを変更するには、cd命令を使う。
たとえば、Fogeパーティションがあるとすると、
(/Common) (tmos)# cd /Foge
(/Foge)(tmos)#
といった具合だ。
tmshコマンドでも、
# tmsh cd /Foge
といった具合にできるのだが、1リクエストのみしか処理できないため、パーティションを選択して終了という具合になる。
では、tmshコマンドで、FogeパーティションのVLAN一覧を表示させる方法で説明する。
tmshモードでVLANを表示させるコマンドは、「list net vlan」なので、以下のように実行する。
# ( echo "cd /Foge"; echo "list net vlan") | tmsh
このように実行することで、cd処理と、list処理を同時に実行可能である。
なお、printfでも可能となる。
# printf "cd /Foge\nlist net vlan" | tmsh
このように、tmshモードで実行するコマンドを先に出力処理しておき、パイプでtmshコマンドにつなげることで、tmshモードにならなくても指定のパーティションに対して操作ができるようになる。
BIG-IPではiRuleを使って自作のWEBページを応答するような機能を実装することがある。Sorryページ応答などで主に使われる方法だが、iRuleにHTMLコードを書くと、編集などの運用が面倒である。そのため、iFileという機能を使って、ファイルをBIG-IPにインポートしておき、iRuleから呼び出すことで実現することが多いと思う。
さて、今回はその方法の話ではない。インポートしたiFileをエクスポートする方法について記載する。
BIG-IPのWEBコンソールにはiFileのインポート機能はあっても、エクスポート機能がない。(v11.1-v14.1 201910時点)
公式にガイドもないため、非公式となるが後述する方法で取得可能になるので紹介する。