2016-10-16 3 views
1

У меня есть шаблон виртуальной машины ARM построен следующим образом: refernceAnsible: Как использовать шаблон Azure RM в модуле `azure_rm_deployment`?

{ 
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", 
    "contentVersion": "1.0.0.0", 
    "parameters": { }, 
    "variables": { }, 
    "resources": [ ], 
    "outputs": { } 
} 

с parameters.json:

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
    "adminUserName": { "value": "mytestacct1" }, 
    "adminPassword": { "value": "mytestpass1" } 
    } 
} 

Я могу успешно развернуть машину с помощью этого шаблона в PowerShell:

New-AzureRmResourceGroupDeployment -ResourceGroupName $rgName -TemplateFile VirtualMachineTemplate.json -TemplateParameterFile Parameters.json 

Однако, если я попытаюсь использовать один и тот же шаблон ели для анзибль azure_rm_deployment модуля в следующей задаче:

- name: Ensure the VM is deployed to Azure 
    azure_rm_deployment: 
    state: present 
    resource_group_name: "{{ resource_group_name }}" 
    template: "{{ lookup('file', 'VirtualMachineTemplate.json') }}" 
    parameters: "{{ lookup('file', 'Parameters.json') }}" 

Я получаю сообщение об ошибке:

fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "failed_deployment_operations": [], "msg": "Deployment failed with status code: 400 and message: The request content was invalid and could not be deserialized: 'Error converting value \" https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json \" to type 'Microsoft.WindowsAzure.ResourceStack.Frontdoor.Data.Definitions.DeploymentParameterDefinition'. Path 'properties.parameters.$schema', line 1, position 142.'."}


Ошибка вызывается parameters.json. Если я определяю параметры непосредственно в задаче:

- name: Ensure the VM is deployed to Azure 
    azure_rm_deployment: 
    state: present 
    resource_group_name: "{{ resource_group_name }}" 
    template: "{{ lookup('file', 'VirtualMachineTemplate.json') }}" 
    parameters: 
     adminUserName: 
     value: mytestacct1 
     adminPassword: 
     value: mytestpass1 

Развертывает машину.

У меня здесь потеря. Требуется ли изменение шаблона для модуля Ansible?


Примечания:

  • В то же время я могу распределять ресурсы и виртуальные машины с помощью azure_rm_storageaccount, azure_rm_virtualmachine и т.д. модулей, так что я думаю, это не проблема, библиотека; по крайней мере, не Microsoft Azure SDK для Python, который составляет 2.0.0rc5 за каждый.

  • Просто убедитесь, что я также пробовал с template_link и parameters_link, и сообщение об ошибке было таким же.

ответ

1

Я вижу это довольно старый вопрос, но я отмечаю, что есть собственное поле parameters в файле параметров, поэтому правильный вызов должен быть:

- name: Ensure the VM is deployed to Azure 
    azure_rm_deployment: 
    state: present 
    resource_group_name: "{{ resource_group_name }}" 
    template: "{{ lookup('file', 'VirtualMachineTemplate.json') }}" 
    parameters: "{{ (lookup('file', 'Parameters.json') | from_json).parameters }}" 
Смежные вопросы