IaaS Switch API: Sandbox でスイッチの管理手順を確認する

スイッチは、サーバやアプライアンスを L2 接続する仮想的な機器です。通常のスイッチはプライベートネットワークに使います。このチュートリアルでは、skr iaas-api switch を使い、tk1v の Sandbox ゾーンにテスト専用スイッチを1個作成して、検索、参照、名称変更、削除までの管理手順を確認します。ルータ+スイッチやサーバの作成・接続は行いません。

[!WARNING] この手順は、選択中のプロファイルが指すプロジェクトの tk1v ゾーンにリソースを作成・更新・削除します。操作前に対象プロファイルとプロジェクト、変更内容について承認を確認してください。この手順で作成したスイッチだけを削除してください。接続済みのリソースがあるスイッチは削除できません(スイッチの作成・削除)。

前提条件

作成するリソースと順序

作成するのは、tk1v の通常のスイッチ1個だけです。作成結果の ID を使って参照と名称を変更し、同じ ID のスイッチを削除します。サーバ、インターフェース、ルータ+スイッチなどの追加リソースは作成しません。通常のスイッチがローカルネットワーク用であることはスイッチの概要で確認できます。

Step 1: 対象環境とヘルプを確認する

$ skr config current
$ skr iaas-api --help
$ skr iaas-api switch --help
$ skr iaas-api switch create --help
$ skr iaas-api switch find --help
$ skr iaas-api switch read --help
$ skr iaas-api switch update --help
$ skr iaas-api switch delete --help

config current で意図したプロファイルが選択されていることを確認してください。環境変数による認証の場合も、対象プロジェクトと権限を別途確認してください。各操作には --zone などのフラグか、--request で JSON オブジェクトを渡します。両方を指定するとエラーになります。JSON はコマンドに直接指定するか、@ファイル名 で読み込めます。JSON のキー名と値の種類は各操作の --help に記載されています。各操作では対象ゾーン名を指定してください。ゾーン名として all は使用できません。API の結果は JSON で出力し、--query で必要な項目を抽出できます。

Step 2: テスト用スイッチを作成する

TEST-SWITCH-NAME は自分のテスト専用の一意な名前に置き換えてください。create には作成先ゾーン --zone とスイッチ名 --name が必要です。タグは --tags にカンマ区切りで指定できます。スイッチのみを作成するため、この例では他のリソースの ID は渡しません。

$ skr iaas-api switch create --zone tk1v --name TEST-SWITCH-NAME --description "Temporary switch for skr API tutorial" --tags tutorial,managed

複雑な値を指定するときや JSON 入力を使うときは、create --help に記載されたキー名を使って JSON ファイルを作り、--request @switch-create.json で渡します。JSON 経路でタグを設定する場合は Tags 配列を含めます。例えば次の内容を switch-create.json として保存し、名前を置き換えてください。JSON と個別フラグは併用できないため、こちらを使用する場合は上のフラグを使った作成コマンドは実行しません。

{
  "Zone": "tk1v",
  "Name": "TEST-SWITCH-NAME",
  "Description": "Temporary switch for skr API tutorial",
  "Tags": ["test"]
}
$ skr iaas-api switch create --request @switch-create.json

--request と個別フラグは併用できません。成功時は既定で Switch の JSON オブジェクトが出力されます。後続の操作と削除に使用する ID を控えてください。実際のアカウントの出力や ID を共有・公開しないでください。

Step 3: スイッチを検索し、変更を確認する

TEST-SWITCH-NAME は、作成時に指定した名前へ置き換えてください。検索条件の Names は名前の文字列配列で、フラグでは指定できません。Zone とともに JSON で単一ゾーンを検索します。--query で ID と名前だけを取り出し、作成結果と照合します。次は CLI テストで確認した出力形式の例です。ID と名前は置き換えています。

$ skr iaas-api switch find --request='{"Zone":"tk1v","Names":["TEST-SWITCH-NAME"]}' --query 'map({ID,Name})'
[
  {
    "ID": 123456789012,
    "Name": "TEST-SWITCH-NAME"
  }
]

123456789012 は仮の数値です。Step 2 で得た ID に置き換えてください。

$ skr iaas-api switch read --zone tk1v --id 123456789012

出力の Name、ID、Tags が作成したスイッチの値に一致することを確認します。次に、同じ ID で名前とタグを更新します。UPDATED-TEST-SWITCH-NAME も一意なテスト専用名に置き換えてください。update で省略した項目は変更されないため、Description は指定しません。

$ skr iaas-api switch update --zone tk1v --id 123456789012 --name UPDATED-TEST-SWITCH-NAME --tags tutorial,updated
$ skr iaas-api switch read --zone tk1v --id 123456789012

読み取った Name と Tags が更新後の値、Description が作成時の値であることを確認してください。これはスイッチの 設定の管理 を確認する手順です。Sandbox ではインターネットに接続できず、スイッチのネットワーク通信やサーバ間の接続性までは検証できません(Sandbox の制限)。

Step 4: 作成したスイッチを削除する

削除前に read --zone tk1v --id 123456789012 で ID と Name を再確認します。接続したリソースがある場合は削除しないでください。スイッチに接続したリソースがあると削除できないことはスイッチの削除手順に記載されています。この手順ではスイッチ以外のリソースを作成しないため、依存リソースの削除は不要です。

--fail-if-not-found を指定すると、削除対象が見つからない場合もエラーになります。仮の ID を作成したスイッチの ID に置き換えてください。

$ skr iaas-api switch delete --zone tk1v --id 123456789012 --fail-if-not-found
$ skr iaas-api switch find --request='{"Zone":"tk1v","Names":["UPDATED-TEST-SWITCH-NAME"]}' --query 'map({ID,Name})'

削除成功時、delete は標準出力に何も出しません。find の結果に削除した ID が含まれていないことを確認します。該当するスイッチがない場合の出力は次のとおりです。

[]

削除後に read --zone tk1v --id 123456789012 を実行して、対象が見つからないエラーになることも確認できます。既存のスイッチが検索結果にあっても削除しないでください。

参考情報