- 22, Oct 2024
- #1
Моя цель — разместить мою виртуальную сеть и подсеть в отдельной группе ресурсов от других частей моей инфраструктуры, то есть виртуальных машин.
У меня есть короткая книга, которая создает группу ресурсов для моей сети (виртуальная сеть и подсеть), и она работает нормально. Я могу создать виртуальную машину через портал, и все в порядке.
Моя другая книга пьес создает группу ресурсов, создает виртуальную машину и виртуальную машину. Этот сборник сценариев ссылается на виртуальную сеть и подсеть, созданные в другой группе ресурсов.
Я столкнулся с ошибкой (см. ниже) при обращении к ресурсам в созданной мной группе сетевых ресурсов. Я нашел предыдущий пост это помогло, предложив использовать модуль «set_fact».
Я пробовал разные способы ввода значений ключа set_fact (полный путь к ресурсу/частичный путь к ресурсу), но продолжаю получать ошибку. Я подозреваю, что это может быть из-за интерполяции? Обратите внимание на двойной символ «//» в сообщении об ошибке.
Может ли кто-нибудь подсказать, где я ошибаюсь, пожалуйста?
Сообщение об ошибке:
фатальный: [localhost]: НЕ ПРОШЛО! => {"changed": false, "msg": "Ошибка создания или обновления сетевого интерфейса test-vm-vnic1 - Ошибка Azure: InvalidRequestFormat\nСообщение: невозможно проанализировать запрос.\nСведения об исключении:\n\tКод ошибки: InvalidJsonReferenceFormat\ n\tMessage: идентификатор ссылки /subscriptions/REMOVED-SUB-ID/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks//providers/Microsoft.Network/virtualNetworks/vnet-ansible-test/subnets//subnets/snet -ansible-test имеет неправильный формат. Ожидается, что идентификатор будет ссылаться на ресурсы типа virtualNetworks/subnets. Путь Properties.ipConfigurations[0].properties.subnet."}
Часть пьесы:
tasks:
- set_fact:
vnet_rg_id: "/subscriptions/REMOVED-SUB-ID/resourceGroups/rg-ansible-test"
vnet_id: "/providers/Microsoft.Network/virtualNetworks/vnet-ansible-test"
snet_id: "/subnets/snet-ansible-test"
- name: Create resource group
azure_rm_resourcegroup:
name: "{{ rg }}" # this is var declared earlier in the playbook
location: "{{ location }}" # this is var declared earlier in the playbook
- name: Create virtual network inteface cards for VM
azure_rm_networkinterface:
resource_group: "{{ rg }}" # this is var declared earlier in the playbook
name: "{{ nic_name }}" # this is var declared earlier in the playbook
virtual_network: "{{ vnet_id }}"
subnet: "{{ snet_id }}"
location: "{{ location }}" # this is var declared earlier in the playbook
#ansible #azure-devops #azure