azure_rm_virtualmachine error when using zeros...

Hello,

I have a case here were I need to create VMs with a name based on a sequence and that sequence will generate numbers from 01 to 05 for example.
When I use the same sequence with azure_rm_networkinterface and azure_rm_securitygroup, is works fine and uses the same value for the name.

Once I get to that part, the vmName gets all his 0 replaced by 8=*, so yeah, eight asterisk. I’ve also hardcode the VM part with a static value, with vmtestelab111, so then the error message about the vmName goes away. But then again I get an error about the sku, which contains 0. So is it really an issue with the module ? Or I’m doing something wrong ? At the bottom the original error message.

  • name: “get {{vmadminuser}} password”
    command: >
    az keyvault secret show --vault-name “{{ keyvault.name }}” --name “{{ vmadminuser }}” --query “{token: value}”
    no_log: true
    register: pass
  • debug:
    msg: “nsg{{vmName}}”
  • name: Create security group
    azure_rm_securitygroup:
    resource_group: “{{ rg_name }}”
    name: “nsg{{ vmName }}”
    rules:
  • name: “rdp”
    protocol: Tcp
    destination_port_range: 3389
    source_address_prefix: “{{srcAddressPrefix}}”
    access: Allow
    priority: 100
    direction: Inbound
  • name: “winrm”
    protocol: Tcp
    destination_port_range: 5589
    source_address_prefix: “{{srcAddressPrefix}}”
    access: Allow
    priority: 101
    direction: Inbound
  • debug:
    msg: “nic{{vmName}}”
  • name: Create NIC
    azure_rm_networkinterface:
    resource_group: “{{ rg_name }}”
    name: “nic{{ vmName }}”
    virtual_network: “{{ env[envName].vnet.ressourceid }}”
    subnet: “{{ env[envName].subnet.name }}”
    public_ip_name: None
    ip_configurations:
  • name: ipconfig1
    primary: True
    security_group: “nsg{{ vmName }}”
    os_type: “{{ srvtype[os].os }}”
  • debug:
    msg: “{{vmName}}”
  • name: Create VM
    azure_rm_virtualmachine:
    resource_group: “{{ rg_name }}”
    name: “vmtestelab111”
    admin_username: “{{ vmadminuser }}”
    admin_password: “{{ pass }}”
    image:
    offer: “{{ srvtype[os].offer }}”
    publisher: “{{ srvtype[os].publisher }}”
    sku: “{{ srvtype[os].sku }}”
    version: “{{ srvtype[os].version }}”
    vm_size: Standard_D2s_v3
    managed_disk_type: Standard_LRS
    network_interfaces: “nic{{ vmName }}”
    os_type: “{{ srvtype[os].os}}”
    tags:
    niveau_service: “{{ niveau_service }}”
    changed_when: false

{
“_ansible_parsed”: true,
“invocation”: {
“module_args”: {
“virtual_network_resource_group”: null,
“resource_group”: “rgtestelab1",
“public_ip_allocation_method”: “Static”,
“image”: {
“sku”: "2
16-Datacenter”,
“publisher”: “MicrosoftWindowsServer”,
“version”: “216.127.218613",
“offer”: “WindowsServer”
},
“secret”: null,
“managed_disk_type”: “Standard_LRS”,
“ssh_public_keys”: null,
“storage_container_name”: “vhds”,
“allocated”: true,
“ssh_password_enabled”: true,
“storage_blob_name”: null,
“remove_on_absent”: [
“all”
],
“availability_set”: null,
“append_tags”: true,
“cloud_environment”: null,
“cert_validation_mode”: null,
“short_hostname”: null,
“virtual_network_name”: null,
“state”: “present”,
“subnet_name”: null,
“admin_password”: "
‘stderr_lines’: , ‘changed’: True, ‘end’: ‘218-8-2 18:****************:21.8155’, ‘stdout’: '\n********\n********’, ‘cmd’: [‘', '’, ‘', '’, ‘', 'kvlabapp1’, ‘', '’, ‘', '’], ‘rc’: , ‘failed’: False, ‘stderr’: ‘’, ‘delta’: '‘, ‘stdout_lines’: [’', '', ‘'], ‘start’: '",
“network_interface_names”: [
"nicvmtestelab
12"
],
“subscription_id”: null,
“location”: null,
“profile”: null,
“tags”: {
“niveau_service”: “9a5”
},
“started”: true,
“open_ports”: null,
“restarted”: false,
“plan”: null,
“client_id”: null,
“auth_source”: null,
“vm_size”: “Standard_D2s_v3”,
“password”: null,
“tenant”: null,
“name”: "vmtestelab
12",
“ad_user”: null,
“network_interfaces”: "nicvmtestelab
12",
“admin_username”: “VALUE_SPECIFIED_IN_NO_LOG_PARAMETER”,
“custom_data”: null,
“api_profile”: “latest”,
“os_type”: “Windows”,
“storage_account_name”: null,
“data_disks”: null,
“os_disk_caching”: “ReadOnly”
}
},
“changed”: false,
“_ansible_no_log”: false,
“msg”: "Error creating or updating virtual machine vmtestelab
1********2 - Azure Error: InvalidParameter\nMessage: The supplied password must be between 8-123 characters long and must satisfy at least 3 of password complexity requirements from the following: \r\n1) Contains an uppercase character\r\n2) Contains a lowercase character\r\n3) Contains a numeric digit\r\n4) Contains a special character\r\n5) Control characters are not allowed\nTarget: adminPassword”
}

I think this is something you should file an issue to change if the other modules accept names like that or it may be this module only accepts names that way. I took a quick look at the issues and did not see anything reported.

Yeha, at first I was unsure if it was maybe me. But I did a lot of testing, I was about to create a bug report. Thanks for the confirmation Jonathan! :slight_smile: