2017-02-18 12 views
1

Я пытаюсь создать сетевой интерфейс в группе ресурсов с именем «net-interface» и связать его с виртуальной сетью, принадлежащей группе ресурсов с именем «virtual-net». Я могу сделать это вручную, но когда я использую Ansible, он ожидает, что виртуальная сеть будет в сетевой группе ресурсов «net-interface». даже пытается предоставить полный URI для виртуальной сети.Использование Ansible, как я могу создать сетевой интерфейс в Azure и связать его с виртуальной сетью в другой группе ресурсов?

azure_rm_networkinterface: 
    name: testnetworkinfrastructure 
    resource_group: testsourcegroup1 
    virtual_network_name: /subscriptions/xxxxxxxxxxxxxxxxxxxxx/resourceGroups/testsourcegroup1/providers/Microsoft.Network/virtualNetworks/testvirtualnetwork 
    subnet_name: testsubnet 
    security_group_name: testsecuritygroup 
    location: West Europe 
    state: present 

failed: [localhost] (item=ansible20-nic-01) => {"failed": true, "item": "ansible20-nic-01", "msg": "Error: fetching subnet testsubnet in virtual network /subscriptions/xxxxxxxxxxxxxxxxxxx/resourceGroups/testsourcegroup1/providers/Microsoft.Network/virtualNetworks/testvirtualnetwork - Azure Error: ResourceNotFound\nMessage: The Resource 'Microsoft.Network/virtualNetworks/subscriptions' under resource group 'testsourcegroup1' was not found."}

я делаю что-то не так? Или есть обходное решение?

ответ

1

К сожалению, ваш случай, похоже, не распространяется на текущую реализацию модуля azure_rm_networkinterface.

Он checks for the presence of the subnet в той же группе ресурсов в качестве сетевого интерфейса и не корректно с сообщением вы получили:

def get_subnet(self, vnet_name, subnet_name): 
    self.log("Fetching subnet {0} in virtual network {1}".format(subnet_name, vnet_name)) 
    try: 
     subnet = self.network_client.subnets.get(self.resource_group, vnet_name, subnet_name) 
    except Exception as exc: 
     self.fail("Error: fetching subnet {0} in virtual network {1} - {2}".format(subnet_name, vnet_name, str(exc))) 

Из краткого осмотра, он выглядит как Azure SDK для Python требует группы ресурсов, чтобы быть указано, так что вы можете:

  • настроить azure_rm_networkinterface модуль для определения группы ресурсов подсети, или

  • создать развертывание шаблона Azure RM с помощью azure_rm_deployment.