ページの先頭行へ戻る
ServerView Resource Orchestrator V3.4.0 検疫ネットワークへの自動隔離機能 使用手引書
FUJITSU Software

D.6.2 スクリプトファイル

スクリプトファイルの作成方法について説明します。

スクリプトの構造

スクリプトの構造について説明します。

スクリプトの処理記載範囲は、対象ネットワークデバイスとのtelnetまたはsshコネクションの確立からtelnetまたはsshコネクションの解放までを記載します。

以下に基本的な構造を示します。

変数定義部

可変情報は、パラメーターファイルやDBから得た情報が変換され、変数として定義されます。

接続(login)

変数定義された管理IPアドレスに対してtelnetコネクションを確立します。

変数定義されたログインアカウントを送信します。

変数定義されたログインパスワードを送信します。

コマンド送信部
  • コマンドファイルがある場合

    コマンドファイルに記載された内容を1行ずつ送信します。

  • コマンドファイルがない場合

    スクリプトのコマンド送受信処理を実行します。

実行結果の確認

コマンド処理が正常なら復帰値[正常]を設定します。

コマンド処理が異常なら復帰値[異常]を設定します。

切断(logout)

変数[ログアウト文字]を送信します。

telnetコネクションを切断します。

注意

スクリプトには、必ず接続から切断までの処理を記述してください。

スクリプトで使用できる可変情報

スクリプトで使用する変数は、変数定義部で定義します。

定義する変数の内、可変情報を含むものについては以下のように、予約変数"%Unm_DefineStart%"と"%Unm_DefineEnd%"の間に定義します。

# %Unm_DefineStart%

ここに可変情報を含む変数を定義します。

# %Unm_DefineEnd%

スクリプトの中で扱える予約された可変情報(予約変数名)は、他の文字列と識別するために先頭に"Unm_"をつけた英数字とアンパサンド("&")、アンダースコア("_")、ハイフン("-")の記号で構成された文字列です。また、文字列中のアンパサンド("&")はL-Server名やネットワークリソース名といった意味のある文字列を分離するために使用する記号です。

スクリプトの中で扱える予約変数名を以下に示します。

表 D.3 スクリプトで扱える予約変数
情報種別 変数名 変換後の扱い
可変情報書き換え範囲(開始) %Unm_DefineStart% (注1)

スクリプト内の可変情報を変換対象にする範囲の開始位置を指定します。

スクリプト内に1回コメント行として記述します。

可変情報書き換え範囲(終了) %Unm_DefineEnd% (注1)

スクリプト内の可変情報を変換対象にする範囲の終了位置を指定します。

スクリプト内に1回コメント行として記述します。

コマンドファイル名 %Unm_CommandFileName% (注2) コマンドファイル名
VLAN-ID %Unm_VlanId% (注3) VLAN-ID値
VLAN-ID %Unm_VlanId&ネットワークリソース名% (注3) VLAN-ID値
管理IPアドレス %Unm_MyLoginIp% 自動設定対象機器へのSSH/TELNET用ログインIPアドレス
ログインアカウント1 %Unm_MyLoginAccount1% 自動設定対象機器へのSSH/TELNET用ログインアカウント名
ログインアカウント2 %Unm_MyLoginAccount2% 自動設定対象機器へのFTP 用ログインアカウント名
ログインパスワード1 %Unm_MyLoginPass1% 自動設定対象機器へのSSH/TELNET用ログインパスワード
ログインパスワード2 %Unm_MyLoginPass2% 自動設定対象機器へのFTP 用ログインパスワード
管理者パスワード1 %Unm_MyAdminPass1% 自動設定対象機器の管理者権限(admin)へ移行するパスワード
管理者アカウント %Unm_MyAdminAccount% 自動設定対象機器の管理者権限(admin)アカウント名
管理者パスワード2 %Unm_MyAdminPass2% 自動設定対象機器の管理者権限(admin)パスワード
ログインポート %Unm_LoginPort% 自動設定対象機器へのSSH/TELNET用ログインポート
FTP管理IPアドレス %Unm_FtpLoginIp% 自動設定対象機器からのFTP用ログインIPアドレス
FTPログインポート %Unm_FtpLoginPort% 自動設定対象機器からのFTP用ログインポート
FTPログインアカウント %Unm_FtpLoginAccount% 自動設定対象機器からのFTP用ログインアカウント名
FTPログインパスワード %Unm_FtpLoginPass% 自動設定対象機器からのFTP用ログインパスワード
隣接L2スイッチ1 %Unm_SwNode1% (注4)

物理ラックサーバのNICと接続する隣接L2スイッチのネットワークデバイス名 または

物理ラックサーバの冗長構成NICと接続するペアの隣接L2スイッチの一方のネットワークデバイス名

隣接L2スイッチ2 %Unm_SwNode2% (注4) 物理ラックサーバの冗長構成NICと接続するペアの隣接L2スイッチのもう一方のネットワークデバイス名
隣接L2スイッチポート1 %Unm_SwPort1% (注4)

物理ラックサーバのNICと接続する隣接L2スイッチのポート名 または

物理ラックサーバの冗長NICと接続する隣接L2スイッチの一方のポート名

隣接L2スイッチポート2 %Unm_SwPort2% (注4) 物理ラックサーバの冗長NICと接続する隣接L2スイッチのもう一方のポート名
ネットワークデバイスのIPv4アドレス %Unm_Ipv4&通番&ネットワークリソース名% (注5) 自動設定対象機器のインターフェースに設定するIPv4アドレス
ネットワークデバイスのIPv4サブネット %Unm_Ipv4Subnet&ネットワークリソース名% 自動設定対象機器のインターフェースに設定するIPv4サブネット
ネットワークデバイスのIPv4サブネットマスク %Unm_Ipv4SubnetMask&ネットワークリソース名% 自動設定対象機器のインターフェースに設定するIPv4サブネットマスク
ネットワークデバイスのIPv4サブネットマスク長 %Unm_Ipv4SubnetMaskLength&ネットワークリソース名% 自動設定対象機器のインターフェースに設定するIPv4サブネットマスク長
ネットワークデバイスのIPv6アドレス %Unm_Ipv6&通番&ネットワークリソース名% (注5) 自動設定対象機器のインターフェースに設定するIPv6アドレス
ネットワークデバイスのIPv6プレフィックス %Unm_Ipv6Prefix&ネットワークリソース名% 自動設定対象機器のインターフェースに設定するIPv6プレフィックス
ネットワークデバイスのIPv6プレフィックス長 %Unm_Ipv6PrefixLength&ネットワークリソース名% 自動設定対象機器のインターフェースに設定するIPv6プレフィックス長
VRID %Unm_Vrid&ネットワークリソース名% 自動設定対象機器のインターフェースに設定するVRID
L-Platform名 %Unm_LplatformName% 処理しているL-Platform名
L-PlatformID %Unm_LplatformId% 処理しているL-PlatformのリソースID
ファイアーウォール名 %Unm_FirewallName% L-Platformの処理しているファイアーウォール名
ファイアーウォールのリソースID %Unm_FirewallId% L-Platformの処理しているファイアーウォールリソースID
サーバロードバランサー名 %Unm_SlbName% L-Platformの処理しているサーバロードバランサー名
サーバロードバランサーのリソースID %Unm_SlbId% L-Platformの処理しているサーバロードバランサーリソースID
冗長構成のネットワークデバイスの管理IPアドレス一覧 %Unm_Group&グループ番号%

スクリプトのグループ番号に対応する冗長構成のネットワークデバイスの管理IPアドレス一覧

グループ番号はスクリプトリストに指定した値

退避先ディレクトリ %Unm_BackupDir% (注6) 退避先ディレクトリの絶対パス名
現在の設定情報 %Unm_Present&変数名% (注7) 直前の設定に使用した変数名の内容
インフラ管理者が指定する可変情報 %Unm_Set_可変文字&ネットワークリソース名% インターフェース設定ファイルに、システムで規定された予約変数以外の可変情報を指定した場合の値

注1) 可変情報の変換スクリプトで使用できる可変情報対象範囲の扱いについて

  • %Unm_DefineStart%が定義されていて%Unm_DefineEnd%が定義されていない場合

    %Unm_DefineStart%の変数宣言されている以降の行からファイルの最終行までが可変情報の変換対象となります。

  • %Unm_DefineStart%が定義されてなく%Unm_DefineEnd%が定義されている場合

    対象のファイル内での可変情報の変換は行われません。

  • %Unm_DefineStart%、%Unm_DefineEnd%が複数定義されている場合

    ファイルの先頭行から最初に記述した%Unm_DefineStart%、%Unm_DefineEnd%の間の可変情報が変換対象となります。

注2) コマンドファイル名について

コマンドファイル名の可変情報には、システムが規定のコマンドファイル名の前に"exec_識別番号(8~10桁)"を付加した名前を設定します。

スクリプトでコマンドファイルを複数使用する場合、コマンドファイル名の予約変数名+n(nが通番の数値)として、スクリプトに記載する必要があります。

例
"%Unm_CommandFileName%1.cli"
"%Unm_CommandFileName%2.cli"
"%Unm_CommandFileName%3.cli"
...

注3) ネットワークリソースのVLAN-ID値について

可変情報として使用できるVLAN-ID値は、自動設定対象機器によって異なります。

ネットワークリソースのVLAN-ID値を可変情報として使用する場合、以下のようにスクリプトに記載することで、値をシステムが解決します。

  • 自動設定対象機器がL2-Switchの場合

    • VLAN-ID値 : %Unm_VlanId%

      自ネットワークリソースに設定されたVLAN-IDを可変情報として設定します。

  • 自動設定対象機器がファイアーウォールの場合

    • VLAN-ID値 : %Unm_VlanId&ネットワークリソース名(最大32文字)%

      指定されたネットワークリソース名のネットワークリソースに設定されたVLAN-IDを可変情報として設定します。

      指定できるネットワークリソース名はL-Platformで使用しているセグメントのネットワークリソースです。

  • 自動設定対象機器がサーバロードバランサーの場合

    • VLAN-ID値 : %Unm_VlanId&ネットワークリソース名(最大32文字)%

      指定されたネットワークリソース名のネットワークリソースに設定されたVLAN-IDを可変情報として設定します。

      指定できるネットワークリソース名はサーバロードバランサーが配置されているセグメントのネットワークリソースです。

注4) 物理ラックサーバのNICが冗長構成の場合の予約変数名について

物理ラックサーバのNICが冗長構成の場合、予約変数名は以下のように対応します。

図 D.2 ラックマウント型サーバのNICが冗長構成の場合の予約変数名の対応
ラックマウント型サーバのNICが冗長構成の場合の予約変数名の対応

注5) 通番について

通番は、設定したい用途のIPv4/IPv6アドレスに対応する値を指定します。

ネットワークデバイスのインターフェースに設定する運用側実IPv4/IPv6アドレス、待機側実IPv4/IPv6アドレスや仮想IPv4/IPv6アドレスなど、ネットワークデバイスで必要なIPv4/IPv6アドレスに、用途別に通番を割り当てます。

インターフェース設定ファイルの以下のタグにおいて、各用途のIPv4/Ipv6アドレスと割り当てた通番との対応を指定します。

  • Ipv4Addressタグ
  • Ipv6Addressタグ

注6) 退避先ディレクトリについて

退避先ディレクトリの絶対パス名には、以下の定義ファイルの情報が設定されます。

  • 定義ファイルの格納場所

    【Windowsマネージャー】

    インストールフォルダー\SVROR\Manager\etc\customize_data\manager_backup.rcxprop

  • 定義ファイルのパラメーター書式

    ruleset_backup_dir=保存先ディレクトリ

    保存先ディレクトリ:保存先ディレクトリ名を絶対パスで指定します。

    本パラメーターを指定しない場合、保存先ディレクトリ名は以下になります。

    【Windowsマネージャー】

    インストールフォルダー\SVROR\Manager\var\lserver_repair\ruleset_backup

注7) 現在の設定情報について

ファイアーウォールのリソースの作成から削除、およびサーバロードバランサーのリソースの作成から削除までの間、情報の取得が可能です。

ファイアーウォールのソースの作成または変更、およびサーバロードバランサーのリソースの作成または変更の操作において、2種類以上のスクリプトを実行した場合、現在までにスクリプト実行で利用した変数名が、現在の設定情報として利用できます。

現在の設定情報を利用したい場合、可変情報はスクリプトリスト内の各スクリプト単位に値を変更することや、各スクリプトで異なる可変情報名として使用することはできません。スクリプトリスト全体で同一の可変情報名や値とする必要があります。

本予約変数の"変数名"の部分に使用できる変数名は、以下の予約変数名とパラメーターファイルに記載したユーザ作成の変数名です。

表 D.4 "変数名"に使用できる予約変数名
情報種別 予約変数名
コマンドファイル名 %Unm_CommandFileName%
VLAN-ID %Unm_VlanId&ネットワークリソース名%
L-Platform名 %Unm_LplatformName%
L-PlatformのリソースID %Unm_LplatformId%
ファイアーウォール名 %Unm_FirewallName%
ファイアーウォールのリソースID %Unm_FirewallId%
サーバロードバランサー名 %Unm_SlbName%
サーバロードバランサーのリソースID %Unm_SlbId%
冗長構成のネットワーク機器の管理IPアドレス一覧 %Unm_Group&グループ番号%

現在の設定情報は、自動設定の実行毎に以下のような情報となります。

"なし"は値がないため、変数名の変換をしないことを表します。

表 D.5 自動設定の実行毎の情報の変化例
自動設定の回数 変数名 %Unm_Present&変数名%の情報 変数名の情報
1回目 A なし 1
B なし 2
C なし 3
2回目 A 1 11
B 2 2
C 3 なし
3回目 A 11 11
B 2 2
C なし 1

参考

  • 予約変数名は、以下の場所に記載することができます。

    • コマンドファイル内の任意の場所

    • スクリプトリストの"node"オペランドおよび"param"オペランド

    • スクリプトの"%Unm_DefineStart%"記載行から"%Unm_DefineEnd%"記載行の間

  • サンプルスクリプトを使用しない場合(インフラ管理者がスクリプトを新規に自作した場合など)には、コマンドファイルやスクリプトの中で扱える可変情報は、"%・・・%"のように % で囲んだ文字列で指定します。可変情報の文字列の長さは128文字以内です。

  • %で囲む文字列には、英数字、アンダースコア("_")、ハイフン("-")が使用できます。ただし、"Unm_"は予約変数名に使用するため、ユーザーが指定する変数名には"Unm_"を含めることはできません。

  • 可変情報は、以下の場所に記載が可能です。

    • コマンドファイル内の任意の場所

    • スクリプトの"%Unm_DefineStart%"記載行から"%Unm_DefineEnd%"記載行の間

スクリプトの可変情報の変換異常時の動作

可変情報の変換が失敗した場合、可変情報は変換せずに変換前の文字列として扱われます。

スクリプトはコマンドファイルの可変情報が変換前の文字列の場合、そのコマンドと関連するコマンドを含めネットワークデバイスには送信しません。

可変情報の変換が失敗しただけでは、スクリプトの実行をエラーで復帰させません。

しかし、物理ラックサーバの隣接L2スイッチに関係する以下の可変情報の変換に失敗した場合、ネットワークデバイスの構成情報等に問題があるため、スクリプトを実行せずエラーで復帰します。

  • %Unm_SwNode1%
  • %Unm_SwNode2%
  • %Unm_SwPort1%
  • %Unm_SwPort2%

スクリプトで使用する復帰コード

スクリプト実行結果が正常だったか異常だったかの判断は、スクリプトの復帰コードにより行います。

スクリプトで通知する復帰コードの値により、正常完了させたり、処理を失敗させリカバリー動作をさせたりします。

スクリプトで使用する復帰コードは以下のとおりです。

表 D.6 スクリプトで使用する復帰コード
復帰コード 復帰コードの意味
0 スクリプトの処理は正常に完了。
4 スクリプトの処理で異常を検出したが、スクリプトの再実行は可能な異常。(コネクション切断・タイムアウト検出など)
6 スクリプトの処理で異常を検出したが、スクリプトの再実行は可能な異常。(ネットワークデバイスへの定義反映前の異常など)
8

スクリプトの処理で異常を検出し、スクリプトの再実行は不可能な異常。(上記以外)

スクリプトを実行したネットワークデバイスおよび冗長構成を組むネットワークデバイスの状態を"異常"に変更するとともに、"保守モード"を設定します。

異常への対処後、以下のコマンド操作によって"保守モード"を解除することで、装置の状態も"正常"に戻ります。

  • rcxadm netdevice setコマンドで-attr mode=activeオプションを指定

rcxadm netdeviceコマンドについては、「リファレンスガイド (コマンド/XML編) CE」の「3.8 rcxadm netdevice」を参照してください。

スクリプトの実行結果

スクリプトの実行処理の経過やスクリプト内での異常発生を認識するために、スクリプト内での処理内容を任意のファイルにlog出力するようにスクリプトを作成します。

出力されたlogの内容を参照することによりスクリプトの処理結果を確認することができます。

インフラ管理者のスクリプト作成の参考となるように、サンプルスクリプトではルールセットが格納されているフォルダー配下にlog出力しています。

内容を確認する場合、logファイルを任意の利用者フォルダーにコピーし、コピーしたlogファイルで確認を行ってください。

注意

  • logについては、インフラ管理者がスクリプトの動作内容を検証する目的のものです。テナント利用者およびテナント管理者が参照することを考慮していません。このため、テナント間のガードはありません。
  • 運用操作用ルールセットで使用するスクリプトファイルを除き、スクリプト実行結果の標準出力および標準エラー出力は行わないでください。標準出力および標準エラー出力するスクリプトを使用した場合、ネットワークデバイスの自動設定が、異常終了することがあります。
  • 運用操作用ルールセットで使用するスクリプトファイルにおいて、スクリプトの実行結果の標準出力および標準エラー出力を行う場合、サンプルスクリプトと同じ処理方式にする必要があります。標準出力および標準エラー出力の処理方式を独自に作成した場合、運用操作スクリプトの実行結果の取得が行えず、L-Platformの運用操作が失敗することがあります。

スクリプト実行結果が異常の場合の動作

スクリプトリストの途中でスクリプトの実行結果が異常となった場合、以降の動作はスクリプトリストの種類および定義ファイルの指定により異なります。

スクリプトリスト スクリプトの実行結果が異常の場合の動作
SCRIPT_EXECUTION_MODE=continue SCRIPT_EXECUTION_MODE=stop
  • 設定用スクリプトリスト
  • 変更用スクリプトリスト
  • サーバ隣接インターフェース設定用スクリプトリスト
  • 運用操作用スクリプトリスト

スクリプトの実行を中断します。

リカバリー用スクリプトリストが用意されている場合、リカバリー用スクリプトリストを実行します。(*1)

  • 削除用スクリプトリスト
  • サーバ隣接インターフェース削除用スクリプトリスト
スクリプトの実行を継続します。 スクリプトの実行を中断します。
  • 設定異常時リカバリー用スクリプトリスト
  • 変更異常時リカバリー用スクリプトリスト
  • サーバ隣接インターフェース設定異常時リカバリー用スクリプトリスト
リカバリー用スクリプトの実行は中断せずに、スクリプトの実行を継続します。

リカバリー用スクリプトの実行を中断します。

実行結果が異常にならない場合は、すべてのネットワークデバイスに対してリカバリー用スクリプトを実行します。

*1: 運用操作用スクリプトリストにはリカバリー用スクリプトリストはありません。

定義ファイル"SCRIPT_EXECUTION_MODE"の指定内容とパラメーターの取り得る値については、「D.7 ネットワークデバイスへの自動設定および運用操作の定義ファイル」を参照してください。

定義ファイル"SCRIPT_EXECUTION_MODE"の指定による動作の違いについて

定義ファイルの"SCRIPT_EXECUTION_MODE"に指定する値により、スクリプト実行時の動作が変わります。利用するスクリプトの仕様で"SCRIPT_EXECUTION_MODE"の指定値を決定してください。

図 D.3 SCRIPT_EXECUTION_MODEの指定に依存しないスクリプト動作例
SCRIPT_EXECUTION_MODEの指定に依存しないスクリプト動作例
図 D.4 SCRIPT_EXECUTION_MODE=continueのスクリプト動作例
SCRIPT_EXECUTION_MODE=continueのスクリプト動作例
図 D.5 SCRIPT_EXECUTION_MODE=stopのスクリプト動作例
SCRIPT_EXECUTION_MODE=stopのスクリプト動作例

リカバリー用スクリプトの実行条件

リカバリー用スクリプトの実行条件について説明します。

  • 定義ファイルに"SCRIPT_EXECUTION_MODE=continue"を指定した場合

    設定用または変更用スクリプト実行が異常となった場合に、設定用または変更用スクリプトの実行を行ったネットワークデバイスに対して、リカバリー用スクリプトを実行します。リカバリー用スクリプトの実行は、設定用および変更用スクリプトの復帰コードにより判断します。

    設定用または変更用スクリプトの復帰コード リカバリー用スクリプトの実行有無 スクリプト実行後のネットワークデバイスの状態
    0 リカバリー用スクリプトを実行します 変化しません。
    4 リカバリー用スクリプトを実行します 変化しません。
    6 リカバリー用スクリプトは実行しません 変化しません。
    8 リカバリー用スクリプトは実行しません 保守状態へ移行します。
  • 定義ファイルに"SCRIPT_EXECUTION_MODE=stop"を指定した場合

    設定用または変更用スクリプト実行が異常となった場合に、リカバリー用スクリプトリストのスクリプトをすべて実行します。

定義ファイルの指定内容とパラメーターの取り得る値については、「D.7 ネットワークデバイスへの自動設定および運用操作の定義ファイル」を参照してください。