Шаблон Azure ARM - установите NSG и подсеть для одного входного параметра

В процессе создания шаблона Azure, основанного на виртуальной машине, на основе набора заданных вопросов. На данный момент у меня есть два поля параметров, относящихся к сетевой стороне: одно - это имя подсети (существующая подсеть), а другое - имя NSG (опять же, уже существующее).

В этом шаблоне я не хочу создавать новые подсети или группы безопасности сети, и то, как мы настроили среду, является расширением нашей сети, поэтому каждая подсеть привязана к определенной группе безопасности сети, потому что у них есть конкретная цель; например, подсеть приложения / NSG, подсеть SQL / NSG, веб-подсеть / NSG и т. д., и в них определены правила.

Мой вопрос в том, что вместо того, чтобы люди выбирали для каждой подсети и NSG (где они могли бы технически выбрать два отдельных, и правила не были бы согласованы = нет подключения), я хотел бы предложить им в параметре указать серверы «цель» (приложение, SQL, Интернет, DMZ и т. д.) и на основе их ответа автоматически устанавливает, какие NSG и подсеть также необходимо добавить новой виртуальной машине.

Мысли?


person Terry Hashley    schedule 30.11.2017    source источник


Ответы (1)


Что ж, если связь между приложением \ sql \ dmz и подсетью \ nsg фиксированная и предопределенная, вы можете легко это сделать. создать переменные и вычислить значение:

"subnet": "[concat(parameters('purpose'), ' Subnet')]",
"nsg": "[concat(parameters('purpose'), ' Subnet/NSG')]",

вы можете использовать объект для отображения:

subnets: {
    "application": "purposesubnet",
    "sql": "nopurposesubnet",
    ...
},
subnet: "[variables('subnets')[parameters('applicationPurpose')]]"

то же самое и с ГЯП

person 4c74356b41    schedule 30.11.2017
comment
Пример: Сервер приложений = Цель Подсеть = Под-EUS-Приложение NSG = NSG-EUS-Приложение У меня возникает ощущение, что мне нужно сделать что-то вроде: Назначение сервера = (Приложение, Интернет, DMZ и т. Д.) переменные с операторами if, например: "nsgName": { (if(equals(parameters('serverPurpose'),'Application'),'NSG-E‌​US-App, [nested if]) } - person Terry Hashley; 30.11.2017