Ansible — Ссылки На Ресурсы Azure

  • Автор темы DimaRu
  • Обновлено
  • 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

DimaRu


Рег
05 Sep, 2011

Тем
63

Постов
206

Баллов
531
  • 25, Oct 2024
  • #2

Методом проб и ошибок мне удалось определить значения для моих переменных «vnet_id» и «snet_id».

Я обнаружил, что использую полный идентификатор виртуальной сети и не имею «/» до того, как значение переменной подсети (snet_id) устранило мою проблему.

На данный момент я не до конца понимаю, как Ansible/Azure объединяет все это, но это дало мне достаточно информации, чтобы начать понимать.

Если бы кто-нибудь мог указать мне на документацию, объясняющую построение/интерполяцию переменных, это было бы полезно.

  tasks:

- set_fact:

vnet_rg_id: "/subscriptions/REVMOVED-SUB-ID/resourceGroups/rg-ansible-test"

vnet_id: "/subscriptions/REVMOVED-SUB-ID/resourceGroups/rg-ansible-test/providers/Microsoft.Network/virtualNetworks/vnet-ansible-test"

snet_id: "snet-ansible-test"

- name: Create resource group

azure_rm_resourcegroup:

name: "{{ rg }}" # declared earlier in the playbook

location: "{{ location }}" # declared earlier in the playbook

- name: Create virtual network inteface cards for VM

azure_rm_networkinterface:

resource_group: "{{ rg }}" # declared earlier in the playbook

name: "{{ nic_name }}" # declared earlier in the playbook

virtual_network: "{{ vnet_id }}"

subnet: "{{ snet_id }}"

location: "{{ location }}" # declared earlier in the playbook
 

Shulz


Рег
19 Aug, 2008

Тем
75

Постов
182

Баллов
587
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно