スクリプトプロパティは、展開を自動化し、他の自動化の目標を達成するのに役立ちます。ゲストシェルのコンテキストで Day0 に Python または bash スクリプトを実行する場合は、Scripts プロパティで Python または bash
スクリプトのパブリック URL と引数を指定することで同じことを実現できます。
スクリプトには、スクリプトの最初の行にシバン(!)文字を含むコードを含める必要があります。この行は、スクリプトコードの解析に使用する必要があるスクリプトインタープリタ(Python または Bash)を Cisco IOS-XE に通知します。たとえば、Python
スクリプトの最初の行には #!/usr/bin/env python
を含めることができますが、bash スクリプトの最初の行には #!/bin/bash
を含めることができます。この行により、Python または Bash スクリプトを Linux 環境で実行可能コードとして実行できます。
スクリプトを実行すると、Cisco Catalyst 8000V インスタンスのゲストシェルコンテナでスクリプトが実行されます。ゲストシェルコンテナにアクセスするには、guestshell EXEC モードコマンドを使用します。ゲストシェルコマンドの詳細については、『Programmability Configuration Guide』を参照してください。
Scripts プロパティを設定するには、次の形式に従います。
Section: scripts
public_url <arg1> <arg2>
このスクリプトでは、プロパティの最初の行に Section: Scripts
と記載する必要があります。
プロパティの 2 行目に、スクリプトの URL とスクリプトの引数を入力します。スクリプトは、python または bash スクリプトのいずれかです。Cisco Catalyst 8000V インスタンスの作成時にブートストラップファイルがアップロードされると、最初の起動時にゲストシェルでスクリプトが実行されます。
スクリプトのその他の例については、https://github.com/csr1000v/customdata-examples の「Scripts」セクションを参照してください。また、次の 2 つの例も参照してください。
例 1
Section: Script
https://raw.githubusercontent.com/csr1000v/customdata-
examples/master/scripts/smartLicensingConfigurator.py --idtoken "<token_string>" --throughput <throughput_value>
Scripts プロパティの 2 行は、指定された URL の customdata-examples
リポジトリから smartLicensingConfigurator.py
スクリプトを取得します。スクリプトは、引数 idtoken
と throughput
を使用して、Cisco Catalyst 8000V のゲストシェルコンテナで実行されます。
例 2
Section: Scripts
ftp://10.11.0.4/dir1/dir2/script.py -a arg1 -s arg2
Scripts プロパティのこれらの 2 行は、IP アドレス 10.11.0.4 の FTP サーバーから script.py
スクリプトを取得し、引数 arg1 と arg2 を使用して Cisco Catalyst 8000V の ゲストシェルコンテナで ./script.py -a arg1 -s arg2
bash コマンドでスクリプトを実行します。
(注)
|
Scripts プロパティのスクリプトで、標準の CentOS Linux リリース(ゲストシェルで使用される CentOS Linux リリース。現在は CentOS Linux リリース 7.1.1503)に含まれていない Python パッケージが必要な場合は、Python
パッケージプロパティの Python パッケージに関する情報を含める必要があります。詳細については、Python パッケージプロパティの設定を参照してください。
|
ブートストラップファイルをアップロードして bash または Python スクリプトを実行する前に、Scripts プロパティで使用する予定の URL をテストすることをお勧めします。ftp://10.11.0.4/dir1/dir2/script.py -a arg1 -s arg2
URL をテストするには、最初に curl ソフトウェアツールを実行してスクリプトファイルをダウンロードします。ゲストシェルで、次の例に示すように、curl コマンドを入力します。
curl -m 30 --retry 5 --user username:password
ftp://10.11.0.4/dir1/dir2/script_needs_credentials.py.
curl コマンドが成功すると、URL が正しいかどうかを確認する Python スクリプトのコピーがダウンロードされます。