presents by IT Consulting 109

Auzre – PowerShellでネットワークセキュリティグループの作成

概要

AWSをメインで利用しているエンジニアがAzure環境の構築をPowerShellで進める連載。
リソースグループの作成から仮想マシンを起動するまでを連載していく予定です。

第3回は、作成したリソースグループに、AWSで言うところのVPCに類似するサービス「仮想ネットワーク」を作成します。

  • 第01回 PowerShellでAzureに接続
  • 第02回 PowerShellでリソースグループの作成
  • 第03回 PowerShellでネットワークセキュリティグループの作成 ←★ここ
  • 第04回 PowerShellで受信セキュリティ規則の追加
  • 第05回 PowerShellで仮想ネットワークの作成
  • 第06回 PowerShellでネットワークインターフェースの作成
  • 第07回 PowerShellでパブリックIPアドレスの作成
  • 第08回 PowerShellで仮想マシンの作成
  • 第09回 PowerShellでリソースのロック

番外編

  • 第10回 PowerShellでストレージアカウントの作成
  • 第11回 PowerShellで仮想マシン用VHDイメージのアップロード
  • 第12回 PowerShellで仮想マシンをVHDイメージから作成
  • 第13回 PowerShellでディスクの拡張

手順

前提:リソースグループが作成されている事。

# リソースグループ名を設定
$private:resourceGroupName = "rg001"

# ロケーションを設定
$private:location = "japaneast"

# タグを設定
$tags = @{"環境名"="ITC109"}
##################################################
Write-Host "■■ ネットワークセキュリティグループの作成処理 ■■"
##################################################
# ネットワークセキュリティグループ名を設定
$script:nwSgPublicName = $private:resourceGroupName + "nwsg-public"  
$script:nwSgPrivateName = $private:resourceGroupName + "nwsg-private" 

# 作成予定のセキュリティグループの有無を確認
$script:nwSgPublic = Get-AzNetworkSecurityGroup -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPublicName -ErrorAction Ignore

if (-not $script:nwSgPublic) {
    try{
        # パブリック用ネットワークセキュリティグループ作成
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPublicName} を作成中...")
        $script:nsg = New-AzNetworkSecurityGroup -Location $private:location -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPublicName -Tag $tags -ErrorAction Stop
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPublicName} を作成しました。")
        Write-Host ""

    }catch{
        Write-Host "${private:resourceGroupName} のネットワークセキュリティグループ作成エラー" -ForegroundColor Red
        Write-Error -Message $_.Exception
        Write-Host ""

    }

} else {
    Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」には、既に ${script:nwSgPublicName} が存在するため作成をスキップしました。") -ForegroundColor Yellow
    Write-Host ""

}

# 作成予定のセキュリティグループの有無を確認
$script:nwSgPrivate = Get-AzNetworkSecurityGroup -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPrivateName -ErrorAction Ignore

if (-not $script:nwSgPrivate) {
    try{
        # プライベート用ネットワークセキュリティグループ作成
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPrivateName} を作成中...")
        $script:nsg = New-AzNetworkSecurityGroup -Location $private:location -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPrivateName -Tag $tags -ErrorAction Stop
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPrivateName} を作成しました。")
        Write-Host ""

    }catch{
        Write-Host "${private:resourceGroupName} のネットワークセキュリティグループ作成エラー" -ForegroundColor Red
        Write-Error -Message $_.Exception
        Write-Host ""

    }

} else {
    Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」には、既に ${script:nwSgPrivateName} が存在するため作成をスキップしました。") -ForegroundColor Yellow
    Write-Host ""

}

##################################################

ネットワークセキュリティグループの名前を設定。

$script:nwSgName = "nwsg" + $private:resourceGroupName

Get-AzNetworkSecurityGroupで既に同名のリソースが存在しないか確認。

$script:nwSg = Get-AzNetworkSecurityGroup -ResourceGroupName $private:resourceGroupName -Name $script:nwSgName -ErrorAction Ignore

if (-not $script:nwSg) {
  ※リソースが存在しない場合は、ここに作成する処理を記述。
} else {
  ※リソースが存在する場合は、ここに作成しない処理を記述。
}

New-AzNetworkSecurityGroupでネットワークセキュリティグループを作成。

New-AzNetworkSecurityGroup -Location $private:location -ResourceGroupName $private:resourceGroupName -Name $script:nwSgName -Tag $tags

try ~ catchで例外が発生したときにエラーメッセージを表示。

try {
    ※リソースの作成の作成。
} catch {
    ※リソースの作成の作成に失敗。
    Write-Error -Message $_.Exception
}

リソース ビジュアライザー

この記事を書いた人
名前:TRUE's。 千葉県育ち、神奈川県在住のIT系フリーエンジニア。 IT系のナレッジサイトを不定期で更新中。 フォトグラファー兼エンジニアとして日々勤しんでいる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です