Azureテンプレートを使ってみる – Azure のハブスポーク ネットワーク トポロジ

投稿者: | 9月 18, 2020

ひょんなことからAzure のハブスポーク ネットワーク トポロジを作成することに。。。そういえば、テンプレートからデプロイしたことがないから少し凝ったものを作ってみようとおもって、ハブスポーク ネットワーク トポロジをやってみた。

以下にご丁寧にテスト方法まで書いてある。ちょうどいい。

https://docs.microsoft.com/ja-jp/azure/architecture/reference-architectures/hybrid-networking/hub-spoke

Ubuntu Linux 18.04 LTSを端末として、作成した。

事前準備
事前にGit Az cli node.jsをインストールしておく

gitコマンドのインストール
apt -y install git

->Windowsならとくに不要

Az CLIのインストール
AZ CLI
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-apt?view=azure-cli-latest

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

-> Windowsなら
 https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-windows?view=azure-cli-latest&tabs=azure-cli
 でインストーラからインストール

Node.jsのインストール
https://nodejs.org/ja/download/

wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-x64.tar.xz
tar xvfJ node-v12.18.4-linux-x64.tar.xz
cd node-v12.18.3-linux-x64/
cp -R * /usr/local
node -v
v12.18.3

->Windows (未検証)
以下をインストールする
https://nodejs.org/dist/v12.18.4/node-v12.18.4-x64.msi
コマンドプロンプトで(パスが通っているか?)
node -v

必要なモジュールのインストール
npm install -g @mspnp/azure-building-blocks

さて、あとでつまずく。以下が必要らしい。

sudo vi /usr/local/lib/node_modules/@mspnp/azure-building-blocks/src/azCLI.js
以下のようにする。(情報ソース https://github.com/mspnp/template-building-blocks/issues/418)
これをしないと、数分後に以下のエラーが発生してとまる。
  error: error executing az
  message:
  status: null
  arguments: vm list-skus –resource-type virtualMachines –zone false –subscription XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ

以下の赤字を追加
spawnOptions = spawnOptions || {
stdio: ‘pipe’,
shell: true,
maxBuffer : 1024x1024x20

};

デプロイメントファイルの入手

git clone https://github.com/mspnp/reference-architectures
cd reference-architectures/hybrid-networking/hub-spoke/
 ->Windowsあるいはgitが面倒なら以下をダウンロードでもいい
 https://raw.githubusercontent.com/mspnp/reference-architectures/master/hybrid-networking/hub-spoke/hub-spoke.json

viやエディタで置換
vi hub-spoke.json

以下を書き換える。

ログイン名とパスワード。パスワードはAzureで使えるような複雑なパスワードのほうがいいかも。

[replace-with-username]    –> youradmin
[replace-with-password]    –> Yourpassword

あと共有キー。これは適当複雑なもので。
[replace-with-shared-key]  –> Sharedkey

Azureへログイン
az login
[
  {
    “cloudName”: “AzureCloud”,
    “homeTenantId”: “XXXXXXXXXXXXXXXXXXXX”,
    “id”: “XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ”,
    “isDefault”: true,
    “managedByTenants”: [],
    “name”: “従量課金”,
    “state”: “Enabled”,
    “tenantId”: “XXXXXXXXXXXXXXXXXXXXXXXXXXXX”,
    “user”: {
      “name”: “useraaaa@example.com”,
      “type”: “user”
    }
  }
]

リージョン名を確認
az account list-locations  | grep -i japan
    “displayName”: “Japan East”,
    “id”: “/subscriptions/XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ/locations/japaneast”,
          “id”: “/subscriptions/XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ/locations/japanwest”,
          “name”: “japanwest”,
    “name”: “japaneast”,
    “regionalDisplayName”: “(Asia Pacific) Japan East”,
    “displayName”: “Japan”,
    “id”: “/subscriptions/XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ/locations/japan”,
    “name”: “japan”,
    “regionalDisplayName”: “Japan”,
    “displayName”: “Japan West”,
    “id”: “/subscriptions/XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ/locations/japanwest”,
          “id”: “/subscriptions/XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ/locations/japaneast”,
          “name”: “japaneast”,
    “name”: “japanwest”,
    “regionalDisplayName”: “(Asia Pacific) Japan West”,

Japanestを使う。まぁテストだったら安いリージョンでもいい。

以下のコマンドでデプロイ実行!
azbb -s XXXXXXXX-YYYY-ZZZZ-PPPP-QQQQQQQQQQQQ -g onprem-vnet-rg -l japaneast -p hub-spoke.json –deploy

長々と実行される40分。

以下の環境ができあがります。ちょっと見づらいが。。。

B9830358 D9BF 4711 A075 A91E614F7544

オンプレミスネットワークにあるWindowsとLinuxのVMのみが外からログイン可能です。

注意点

VPNが2回線も貼られているので、全てのVMを止めても課金が発生しますので、必要がなければデコミしたほうがいいです。

リソースグループ削除
以下の順番でないと消せない。
az group delete –name spoke1-vnet-rg
az group delete –name spoke2-vnet-rg
az group delete –name onprem-jb-rg    
az group delete –name onprem-vnet-rg
az group delete –name hub-vnet-rg

コメントを残す