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スクリプトのスタイルシート宣言に<xsl:import>タグを含めるか、SLAXスクリプトにimportステートメントを含め、junos.xslファイルの場所を指定して、junos.xslファイルをインポートする必要があります。

XSLT 構文

SLAX 構文

ニシキヘビ

Python スクリプトで情報を参照するには、 Junos_Context ディクショナリをインポートします。

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

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

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

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

名前

形容

$hostname

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

東京

$localtime

スクリプトが実行される現地時間

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

$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-contextJunos_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マトリクス)psd、rsd(JCS)その他

<ホスト名>

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

東京

<現地時間>

スクリプトが実行される現地時間

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

<localtime-iso>

スクリプトが実行されたときの ISO 形式のローカル時刻

2010年12月10日午前11時42分21秒PST

<pid>

CScriptプロセスID

5257

<製品>

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

M10i

<リマスター/>

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

 

<routing-engine-name>

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

RE0

<スクリプトタイプ>

実行中のスクリプトの種類

オペアンプ

<tty>

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

/dev/ttyp1

<junos-context> <user-context>

<クラス名>

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

スーパーユーザ

<ログイン名>

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

jsmith

<uid>

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

2999

<ユーザー>

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

<junos-context> <op-context>

(op スクリプトのみ)

<URL経由>

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

 

<junos-context> <commit-context>

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

<commit-boot/>

ブート時にコミットが発生したときに含まれる空の要素

 

<commit-check/>

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

 

<コミットコメント>

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

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

<commit-confirm/>

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

 

<commit-sync/>

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

 

<database-path/>

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

 

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

Python スクリプトは、スクリプトに提供される環境情報にアクセスするために、junos モジュールから Junos_Context ディクショナリをインポートする必要があります。Junos_Context ディクショナリー内の鍵の名前は、表 2 で概説した$junos-contextノードの名前と同じです。user-contextop-contextcommit-context など、junos-context ノードの下に入れ子になっている子要素を持つノードは、キーがノード名で値がノードの子要素のディクショナリである Junos_Context の項目にマップされます。例えば:

以下の出力例では、ローカルで実行された op スクリプトの Junos_Context ディクショナリを表示しています。op スクリプトの入力には op-context キーが含まれていますが、このシナリオでは空です。

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

ディクショナリ内の個々の値にアクセスするには、キー名を指定します。例えば: