Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS 自動化スクリプトのグローバル パラメーターと変数

Junos OS は、自動化スクリプトの実行時に自動的に入力を提供します。スクリプトはこの入力を参照できます。これには、デバイスホスト名、スクリプトタイプ、スクリプトを実行するユーザーなど、スクリプト実行環境に関するデバイス固有の情報が含まれます。この情報は、さまざまな複雑なシナリオに対応するスクリプトを作成するのに役立ちます。

junos.xsl ファイルをインポートする SLAX および XSLT スクリプトは、ノードセットであるグローバル変数を$junos-context使用してこの情報を参照できます。junos.xsl インポート ファイルでは、スクリプトがこの情報のサブセットをより簡単に参照できるように、事前定義された複数のグローバル パラメーターも宣言します。Python スクリプトは辞書を通じてこの情報をjunos.Junos_Context参照できます。辞書はスクリプトにインポートする必要があります。

SLAX スクリプトおよび XSLT スクリプトで定義済みのパラメーターまたはグローバル変数を使用するには、XSLT スクリプトのスタイル シート宣言にタグを含めるか、SLAX スクリプトに ステートメントを含import<xsl:import>め、次のサンプル コードに示すように junos.xsl ファイルの場所を指定して、junos.xsl ファイルをインポートする必要があります。

XSLT 構文

SLAX 構文

Python

Python スクリプトの情報を参照するには、辞書をインポートします Junos_Context

スクリプト入力については、以下のセクションで詳しく説明します。

SLAX および XSLT スクリプトで使用可能なグローバル パラメーター

junos.xsl ファイルをインポートする SLAX および XSLT 自動化スクリプトでは、いくつかの定義済みグローバル パラメーターを使用できます。パラメーターは、Junos OS 環境に関する情報を提供します。表 1 は、組み込み引数を示しています。

表 1: SLAX および XSLT スクリプトで使用可能な定義済みパラメーター

名前

説明

$hostname

ローカル デバイスのホスト名

東京

$localtime

スクリプトの実行時のローカル時間

2010年12月10日(金)11:42:21

$localtime-iso

スクリプトの実行時のローカル時間(ISO 形式)

2010-12-10 11:42:21 PST

$product

ローカル デバイスのモデル

m10i

$script

実行中のスクリプトのファイル名

test.slax

$user

スクリプトを実行しているユーザーのローカル名

ルート

事前定義されたグローバルパラメーターは、 junos.xsl ファイルで宣言されています。これらのパラメーターを使用するために、スクリプトで宣言する必要はありません。次の例に示すように、パラメーター名の前にドル記号($)を付けて、スクリプト内のグローバル パラメーターの値にアクセスします。

SLAX構文:

XSLT 構文:

自動化スクリプトで使用可能なグローバル変数

コミット スクリプト、イベント スクリプト、op スクリプトは、実行時にスクリプトに提供される特定の環境情報にアクセスできます。この情報にアクセスするには、Python スクリプトで辞書をjunos.Junos_Contextインポートして参照する必要があります。junos.xsl ファイルをインポートする SLAX および XSLT スクリプトはグローバル変数を$junos-context参照しJunos_Context$junos-context対応するスクリプト言語に適した形式で同じ情報を含めることができます。

変数は $junos-context ノードと以下の階層を <junos-context> 含むノードセットで、すべてのスクリプトのソースツリーに共通で埋め込まれます。

さらに、実行されるスクリプトの種類に応じて、スクリプト固有の情報を利用できます。op スクリプトの場合、要素 <op-context>op スクリプトに提供されるソース ツリーにも含まれます。

コミット スクリプトの場合、 <commit-context> 要素はコミット スクリプトに提供されるソース ツリーにも含まれます。

表 2 は、変数ノードセットの各ノードを $junos-context 識別し、ノードの簡単な説明を示し、スクリプトに空のタグとして入力されていない要素の値の例を示します。

表 2: SLAX および XSLT スクリプトで使用可能なグローバル変数$junosコンテキスト

親ノード

ノード

説明

コンテンツの例

<junos-context>

<シャーシ>

ルーティング マトリクスルート システム ドメイン(RSD)、または保護システム ドメイン(PSD)のコンポーネントでスクリプトを実行するかどうかを指定します。

scc、lcc(TX Matrix)psd、rsd(JCS)その他

<ホスト名>

ローカル デバイスのホスト名

東京

<ローカルタイム>

スクリプトの実行時のローカル時間

2010年12月10日(金)11:42:21

<localtime-iso>

スクリプトの実行時のローカル時間(ISO 形式)

2010-12-10 11:42:21 PST

<pid>

cscript プロセス ID

5257

<製品>

ローカル デバイスのモデル

m10i

<re-master/>

スクリプトがプライマリ ルーティング エンジンで実行される場合に含まれる空の要素

 

<ルーティングエンジン名>

スクリプトが実行されるルーティング エンジン

re0

<スクリプトタイプ>

実行されるスクリプトの種類

Op

<ぎ>

ユーザーのセッションの TTY

/dev/ttyp1

<junos-context><ユーザーコンテキストです>

<クラス名>

スクリプトを実行しているユーザーのログイン クラス

スーパーユーザ

<login-name>

スクリプトを実行しているユーザーのログイン名。 AAA アクセスの場合、これはRADIUS/TACACSユーザー名です。

ジェイスミス

<uid>

デバイス設定で定義されたスクリプトを実行しているユーザーのユーザー ID 番号

2999

<ユーザー>

スクリプトを実行しているユーザーのローカル名。Junos OS は、認証にローカル名を使用します。AAA 認証に使用する login-name 方法とは異なる場合があります。

ルート

<junos-context><op-context>

(op スクリプトのみ)

<via-url>

コマンドを使用してリモート op スクリプトを実行する場合に含まれる空の op url 要素

 

<junos-context> <commit-context>

(コミット スクリプトのみ)

<commit-boot/>

起動時にコミットが発生した場合に含まれる空の要素

 

<commit-check/>

実行時に含まれる空の commit check 要素

 

<コミットコメント>

コミットに関するユーザーコメント

転送の問題を解決するコミット

<commit-confirm/>

実行時に含まれる空の commit confirmed 要素

 

<commit-sync/>

実行時に含まれる空の commit synchronize 要素

 

<データベースパス/>

セッションの事前継承候補構成の場所を指定する要素。通常の構成セッションの場合、 要素の値は通常の候補データベースの場所です。プライベート構成セッションの場合、 要素の値はプライベート候補データベースの場所です。属性がこの<get-configuration>database-path値に設定されている場合、コミット スクリプトは、対応する継承前候補設定を取得します。

 

変数は $junos-context ノードセットです。そのため、適切な XPath 式を含めることで、スクリプト全体で子要素にアクセスできます。次の SLAX コミット スクリプトは、初期起動時にコミットが実行された場合、システム ログ ファイルにメッセージを書き込みます。このメッセージには ファシリティ 値が の daemon 、重大度値が . info詳細については、 syslog()を参照してください。

Python スクリプトは、スクリプトにJunos_Context提供された環境情報にアクセスするためにモジュールからjunos辞書をインポートする必要があります。辞書にあるJunos_Contextキーの名前は、表 2 で説明した$junos-contextノードの名前と同じです。、 、および などのcommit-contextuser-contextop-contextノードの下junos-contextにネストされた子要素を持つノードは、 内のJunos_Contextアイテムにマップされます。キーはノード名であり、値はノードの子要素の辞書です。例えば:

次の出力例では、ローカルで Junos_Context 実行された op スクリプトの辞書が表示されます。op スクリプト入力にはキーが op-context 含まれており、このシナリオでは空です。

次の出力例では、操作中に Junos_Context 実行されたコミット スクリプトの辞書が commit check 表示されます。コミット スクリプト入力にはキーが含まれていることに commit-context 注意してください。

辞書内の個々の値にアクセスするには、キー名を指定します。例えば: