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 }}"
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": "rgtestelab********1",
"public_ip_allocation_method": "Static",
"image": {
"sku": "2********16-Datacenter",
"publisher": "MicrosoftWindowsServer",
"version": "2********16.127.2********18********613",
"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': '2********18-********8-2******** 18:****************:21.********8155********', 'stdout': '********\\n********\\n********', 'cmd': ['********', '********', '********', '********', '********', 'kvlabapp********1', '********', '********', '********', '********'], 'rc': ********, 'failed': False, 'stderr': '', 'delta': '********', 'stdout_lines': ['********', '********', '********'], 'start': '********'********",
"network_interface_names": [
"nicvmtestelab********1********2"
],
"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********1********2",
"ad_user": null,
"network_interfaces": "nicvmtestelab********1********2",
"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"
}