CLIコンフィグレット(コンフィグ変更の自動化)

概要

システム変更やメンテナンス時に、ネットワーク装置のコンフィグを行うケースがあります。また、同じ変更を複数装置で実行する場合もあります。通常、作業者はそれらのコンフィグ変更を手動で1台ずつの装置に投入していきますが、対象装置数や変更量が多いと、負荷や工数の増加に加え、人的ミスを誘発する可能性が高くなります。
Network Configuration Managerに実装されている「コンフィグレット」機能により、これらの課題をサポートします。


コンフィグレットによるコンフィグ変更のメリット

  • コンフィグレットは、事前にコマンドセットを作成することで、同じコマンド内容を複数の装置に一括で実行することができます。
  • コンフィグレットは、即時的に実行することも時間指定によるスケジュールで実行することも可能です。実行漏れを減らし、任意のタイミングで実行できます。
  • 人的ミスと減らし、コンフィグ変更の作業効率を向上させます。

コンフィグレットタイプ

コンフィグレット機能で作成できるタイプには大きく2つあります。

  1. ファイル転送(TFTP)モード:
    TFTPプロトコルを使用し、単体または複数装置の部分的なコンフィグ変更をアップロードします。
  2. スクリプト実行モード:
    CLIベースで、作成したコマンドが実行されます。スクリプト実行モードには、さらに以下の2種類があります。
    • スクリプト実行モード
    • アドバンスドスクリプト実行モード
ファイル転送モード スクリプト実行モード アドバンスドスクリプト実行モード

ファイル転送モードは、TFTPプロトコルでコンフィグ変更をアップロードします。


例:

  • Telnetサービスを有効化
  • SNMPコミュニティの変更
  • syslogメッセージの転送
  • インターフェースの変更

※ファイル転送モードを使用する場合、対象機器ならびに適用されている装置テンプレートが、TFTPプロトコルに対応している必要があります。

CLIベースでコマンドを実行します。


例:

  • Running & Startupのコンフィグを同期
  • ログインパスワード変更
  • NTPサーバーの更新
  • "show"コマンドの実行結果を取得

※実行するコマンドが一行の場合や、コマンド実行時にプロンプト情報(#,>)が変化しない場合にこちらのモードをご利用いただけます。

コマンドラインで装置に接続して、一連のコマンドを実行する際、プロンプト情報(#,>)が変化する場合に使用します。

例:
TFTPサーバーを指定して現在のIOSイメージをバックアップする

  • 「copy flash (filename) tftp」を使用するためのコマンド
    filename:現在のIOSイメージの場所
  • TFTPサーバーのIPを指定
  • コピー先のファイルを指定

上記の一連のコマンド実行は、次のように高度なスクリプトに変換できます。

<command prompt=']?'>copy flash:/%SOURCE_FILE_NAME% tftp</command>
<command prompt=']?'>%TFTP_SERVER_IP%</command>
<command timeout='70'>%DESTINATION_FILE_NAME%</command>
その他の例:
  • OSイメージのアップロード、ファームウェアのアップグレード
  • バナーメッセージの設定
  • フラッシュからファイルを削除

コンフィグレットの作成

コンフィグレットを作成するには、以下の手順を実施します。

  1. [コンフィグ自動化]→[コンフィグレット]→[CLIコンフィグレット]画面に遷移し、画面右上の[+]をクリック
    ※ビルド12.5.221以下の場合、[設定]→[コンフィグレット]→[すべてのコンフィグレット]画面から追加します。
  2. [コンフィグレットの追加]画面で、任意のコンフィグレット名、説明を入力し、実行モードを以下より選択
    • スクリプト実行モード
    • アドバンスドスクリプト実行モード
    • ファイル転送モード
  3. [コンフィグレット内容]に、投入予定のコマンドを入力(コンフィグレットには、変数を入力することも可能です)
    例:snmp-server community %COMMUNITY% RO
    変数を含むコマンドを追加した場合、コンフィグレット実行時に、変数に指定する値を求められます。
  4. [コンフィグバックアップ]にチェックを入れ、保存
    コンフィグレットの実行前後に、コンフィグバックアップを実行します。

「アドバンスドスクリプト実行モード」のガイドライン

コマンドラインで装置に接続し、プロンプト変化を伴う一連のコマンドを実行する場合、「アドバンスドスクリプト実行モード」を指定します。
以下に各フォーマット例を記載します。

設定内容 フォーマット例
コマンドラインに実行するコマンドを入力

<command>xyz</command>

例:
<command>copy startup-config tftp</command>

コマンド実行後に表示されるプロンプトを指定

ファームウェアのアップグレードやOSイメージのバックアップなどのスクリプトで使用できます。

<command prompt=']?'>xyz</command>

例:
<command prompt=']?'>copy startup-config tftp</command>

(ここで、プロンプト']?'は置き換えられます)  

メモ:プロンプトの指定がなければ、デフォルトのプロンプトが使用されます。

コマンド実行後、数秒間待機する必要があるコマンドの場合は、秒単位で時間の制限を指定できます。

ファームウェアのアップグレードやOSイメージのバックアップなどのスクリプトで使用できます。

<command timeout='70'>copy startup-config tftp</command>

例:
<command timeout='70'>copy startup-config tftp</command>

メモ:デフォルトのタイムアウトは30秒です。

コマンド実行中、クエリの応答を指定後、"ENTER"を入力する必要が無い場合に、この文法を使用します。

例:
レスポンスに"Y"または"N"を入力後、"ENTER"を実行する必要がない場合

これは、ファームウェアのアップグレードやOSイメージのバックアップのためのスクリプトで使用されます。

例:
<command suffix='$NO_ENTER'>y</command>

メモ:接尾辞のデフォルト値は「ENTER」で、改行を意味します。

コマンド実行後に返されるプロンプトを指定

これは、ファームウェアのアップグレードやOSイメージのバックアップのためのスクリプトで使用されます。

<command prompt='confirm'>xyz</command>

例:
<command prompt='confirm'>%DESTINATION_FILE_NAME%</command>

コマンド実行後、コマンドシーケンスでプロンプトの応答が無い場合、この文法が使用されます。
コマンド実行後、暫く待機するようなタイムアウトを一緒に使用できます。

例:Cisco装置のバナーメッセージを設定するために使用できます。

<command prompt='$NO_RESPONSE' timeout='5'>xyz</command>

例:<command prompt='$NO_RESPONSE' timeout='5'>banner %DELIMITING_CHAR%</command>

装置からダウンロードしたファイルに、ホスト名とタイムスタンプを自動で付与できます。  

例のように、プレースホルダーを追加します。

<command prompt=']?'>copy running-config tftp:</command>

<command prompt=']?'>%TFTP_IP%</command>

<command>%File_Name%_<HOSTNAME_TIMESTAMP> </command>


コンフィグレットの実行

作成したコンフィグレットは、コンフィグレットの一覧ページに追加されます。
単一装置または複数装置に対して、以下の手順でコンフィグレットを実行します。

  1. ビルド12.5.334以降の場合:[コンフィグ自動化]→[コンフィグレット]→[CLIコンフィグレット]画面に遷移
    ビルド12.5.221以下の場合:[設定]→[コンフィグレット]→[すべてのコンフィグレット]画面に遷移
  2. 対象のコンフィグレット右の[実行]をクリック
  3. 表示されたUIで変数を定義する場合、以下のいずれかのオプションから選択します。
    • すべての装置へ同じ値:
      コンフィグレットを実行する対象機器に共通して同じ変数を指定する場合に選択します。
      例として、'%COMMUNITY%'では、値として'public'を指定できます。
    • それぞれの装置へ異なる値:
      複数機器に対して個々の変数を指定する場合に選択します。
      このオプションを選択した場合、以下のフォーマットに沿ったテキストファイルまたはCSVファイルをインポートします。

      フォーマット:RESOURCE,<VARIABLENAME>,<VARIABLENAME>
      ※"RESOURCE"カラムは必須です。

      例1:
      RESOURCE,PASSWORD
      192.168.1.1,abcd
      de-host,dced

      例2:
      RESOURCE,IPADDRESS,MGMTINTERFACE
      de-host,192.168.122.2,vlan-mgmt
  4. コンフィグレットを実行する対象機器を選択
    • 特定の装置を選択
    • 装置グループの選択
  5. [実行前後にコンフィグのバックアップを実行する]にチェックを入れ、実行

1.コマンドラインのスクリプト実行は、プロトコルが「SNMP-TFTP」の装置ではサポートされていません。

2.実行したコンフィグレットは、以下のページより実行日時と実行ステータスを確認できます。
※実行履歴をさらにクリックすることで、CLI上での実行結果を確認できます。

  • ビルド12.5.334以降の場合:
    [コンフィグ自動化]→[コンフィグレット]→[実行履歴]
  • ビルド12.5.221以下の場合:
    [設定]→[コンフィグレット]→[実行履歴]

スクリプト実行モード、アドバンスドスクリプト実行モードの実用例


  • パスワードの変更
    configure terminal
    enable password xxxx
    exit

  • すべての装置の「show version」出力結果を取得する
    show version

  • 複数装置にNTPサーバーを指定
    configure terminal
    ntp server 192.168.x.x
    exit

  • RunningコンフィグとStartupコンフィグを同期
    copy running-config startup-config
    または
    write memory

  • OSイメージのアップロード
    OSイメージやファームウェアアップロードのコマンド実行のシーケンスは以下の通りです(※TFTPで転送されます)。
    • TFTPサーバーにOSイメージをコピー
    • イメージをコピーするためのコマンドを指定
    • TFTPサーバーのIPアドレスを指定
    • フラッシュにコピーするソースファイル名を指定
    • コピー先のファイルを指定

    上記のコマンドシーケンスは、以下のようにアドバンスドスクリプト実行モードで設定します。
    TFTPサーバーIP、ソースファイル名、コピー先ファイル名にプレースホルダーが使用されており、値を指定できます。

    <command prompt=']?'>copy tftp : flash:</command>
    <command prompt=']?'>%TFTP_SERVER_IP%</command>
    <command prompt=']?'>%SOURCE_FILE_NAME%</command>
    <command prompt='confirm'>%DESTINATION_FILE_NAME%</command>
    <command timeout='120' suffix='$NO_ENTER'>y</command>


  • 現在のIOSイメージをTFTPサーバーにバックアップ
    TFTPサーバーへ現在のIOSイメージをバックアップする場合:
    • 使用するコマンド「copy flash <filename> tftp」
      <filename>:現在のIOSイメージの場所
    • TFTPサーバーのIPアドレスを指定
    • コピー先のファイルを指定

    上記のコマンドシーケンスは、以下のようにアドバンスドスクリプト実行モードで設定します。
    TFTPサーバーIP、ソースファイル名、コピー先ファイル名にプレースホルダーが使用されており、値を指定できます。

    <command prompt=']?'>copy flash:/%SOURCE_FILE_NAME% tftp</command>
    <command prompt=']?'>%TFTP_SERVER_IP%</command>
    <command timeout='70'>%DESTINATION_FILE_NAME%</command>


  • ネットワーク装置の再起動コマンドの実行例
    再起動コマンドを実行時に、yes,noの応答がある場合:

    <command prompt='(y/n)'>execute reboot</command>
    <command prompt='NO_RESPONSE'>y</command>


  • フラッシュからファイルを削除
    OSイメージは、フラッシュメモリに保存されます。
    OSをアップデートする際、装置上で十分なメモリが確保されている必要があります。
    • 使用するコマンド:delete flash <filename>
      <filename>:削除するファイルの名前
    • シーケンスから削除の確認を求められるため、yes,noを指定

    上記のコマンドシーケンスは、以下のようにアドバンスドスクリプト実行モードで設定します。
    削除するファイル名にプレースホルダーが使用されており、値を指定できます。

    <command prompt=']?'>delete flash:/%FILE_NAME%</command>
    <command prompt='confirm'>%FILE_NAME%</command>


  • バナーメッセージの設定
    アドバンスドスクリプト実行モードを使用し、装置またはグループのバナーメッセージを編集します。
    通常、バナーメッセージは2つの区切り文字の間に入力されます。例えば、#と#の間です。2つの文字間の全ての内容はバナーメッセージとして表示されます。

    バナー メッセージの設定のコマンド実行手順は以下のとおりです。

    • グローバルコンフィグレーションモードに移行
    • バナーメッセージを設定するためのコマンドを入力
    • 区切り文字を指定
    • バナーメッセージを入力
    • 再度、メッセージの終わりに区切り文字を指定

    上記のコマンドシーケンスは、以下のようにアドバンスドスクリプト実行モードで設定します。
    区切り文字とバナーメッセージにプレースホルダーが使用されており、値を指定できます。

    <command>conf t</command>
    <command prompt='$NO_RESPONSE' timeout='5'>banner %DELIMITING_CHAR%</command>
    <command prompt='$NO_RESPONSE' timeout='5'>%BANNER_LINE_1%</command>
    <command prompt='$NO_RESPONSE' timeout='5'>%BANNER_LINE_2%</command>
    <command>%DELIMITING_CHAR%</command>
    <command>end</command>


  • HP ProCurve装置のパスワードをリセット
    アドバンスドスクリプト実行モードを使用し、パスワードをリセットします。

    パスワードリセットのコマンド実行手順は以下のとおりです。

    • グローバルコンフィグレーションモードに移行
    • パスワードリセットのためのコマンドを入力
    • 新しいパスワードを指定
    • 再度、新しいパスワードを確認

    上記のコマンドシーケンスは、以下のようにアドバンスドスクリプト実行モードで設定します。
    新しいパスワードの入力と確認にプレースホルダーが使用されており、値を指定できます。

    <command>conf t</command>
    <command prompt='$NO_RESPONSE' timeout='5'>password manager</command>
    <command prompt='$NO_RESPONSE' timeout='5'>%PASSWORD%</command>
    <command prompt='$NO_RESPONSE' timeout='5'>%PASSWORD%</command>
    <command>end</command>


コンフィグレットのスケジュール

作成したコンフィグレットはスケジュール機能を使用して、時間指定による実行や定期的な実行が可能です。
詳細は、コンフィグレットのスケジュールを参照してください。


コンフィグレットの管理(編集、削除)

編集手順

  1. [コンフィグ自動化]→[コンフィグレット]→[CLIコンフィグレット]画面を表示
  2. 編集対象のコンフィグレットをクリック
  3. [コンフィグレットの編集]画面が表示されるので、任意の変更を加え、保存

削除手順

  1. [コンフィグ自動化]→[コンフィグレット]→[CLIコンフィグレット]画面を表示
  2. 対象のコンフィグレットを確認し、アクションから削除アイコンをクリック
  3. [選択したコンフィグを除外しますか?]というメッセージが表示されるので、OKをクリックし削除

2要素認証を有効にした際の挙動

2要素認証を有効化している場合、コンフィグレット実行時に、ワンタイムパスワードの入力を要求されます。

コンフィグレットの実行権限があるユーザー場合

管理者権限やロール機能のコンフィグ管理に書き込み権限があるユーザーの場合、
コンフィグレットを実行する際、ワンタイムパスワードの入力画面が表示されます。

ワンタイムパスワードを入力することでコンフィグレットが実行されます。


コンフィグレットの実行権限がないユーザーの場合

オペレーター権限や読み込み権限のみ付与されているユーザーの場合、
コンフィグレットを実行する際、ワンタイムパスワードの入力画面が表示されます。

ワンタイムパスワードを入力すると、管理者権限のユーザーに承認リクエストが通知されます。

ワンタイムパスワードは、コンフィグレットを直接実行する場合にのみ要求されます。
スケジュール機能によるコンフィグレットでは、ワンタイムパスワードは要求されません。