从NSG删除子网

时间:2019-12-30 14:07:04

标签: azure ansible

当我尝试从NSG删除子网时遇到问题,因为该过程会自动破坏资源组中的某些组件。

当我尝试运行此命令时,没有问题可以删除具有一个子网的NSG关联。

- name: Dissociate NSG from subnet
  environment:
    AZURE_CONFIG_DIR: ./.azure
  shell: az network vnet subnet update -g Networks -n '{{ subnetName }}' --vnet-name '{{ vnetName }}' --network-security-group "" --subscription '{{ subscription }}'
  ignore_errors: yes

问题是当我在NSG中有2个或更多子网(用于不同组件)关联时。

如果我在Azure上的bash中运行命令,则会收到此错误:

az network vnet subnet update: error: argument --network-security-group: expected one argument
   usage: az network vnet subnet update [-h] [--verbose] [--debug]
                 [--output {json,jsonc,table,tsv,yaml,none}]

我试图查看如何解除NSG中包含的所有子网的关联,而不必为每个子网创建多个块。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

az network nsg show -n nsg_name -g rg_name --query 'subnets[].id' -o tsv

找出NSG所连接的所有子网,然后可以使用这些子网从这些子网中删除NSG。

az network vnet subnet update --ids [] (resource IDs space-delimited) --network-security-group ""

或者您可以一个一个地迭代它们:

az network nsg show -n nsg_name -g rg_name --query 'subnets[].id' -o tsv |
  xargs -L 1 az network vnet subnet update --network-security-group "" --ids