azure_preview_modules
azure_preview_modules copied to clipboard
Key Error with ansible azure module azure_rm_networkinterface
There is a bug with ansible azure module azure_rm_networkinterface
which gives Key Error for name
parameter.
I am using ansible version: 2.9.0 Python Version: 3.6.9 and also tried(2.7.5)
Below is my playbook for creating VM in azure
$ cat new_vm_Creation.yml
---
- name: create azure vm
hosts: localhost
connection: local
tasks:
- include_vars: azure_vars.yml
- set_fact:
host: "{{ azure_vm_name.split('.') }}"
- set_fact:
domain: "{{ host.1 }}.{{ host.2 }}"
- debug:
var: domain
# using Python's capacities of Ansible, we can use the index() method of a list to target the element of all the
# variables eg: azure_location being at the same position as domain in azure_domain.
- set_fact:
location: "{{ azure_location[azure_domain.index(domain)] }}"
- debug:
var: location
- set_fact:
res_group: "{{ azure_res_group[azure_domain.index(domain)] }}"
- debug:
var: res_group
- set_fact:
vnet: "{{ azure_vnet[azure_domain.index(domain)] }}"
- debug:
var: vnet
- name: set azure env "{{ azure_account[azure_domain.index(domain)] }}"
shell: "az account set -s {{ azure_account[azure_domain.index(domain)] }}"
- debug:
var: azure_account
- name: create network security group that allows ssh
azure_rm_securitygroup:
resource_group: "{{ res_group }}"
location: "{{ location }}"
name: "{{ azure_vm_name }}-nsg"
rules:
- name: ssh
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 100
direction: Inbound
- name: create virtual network interface card
azure_rm_networkinterface:
name: "{{ azure_vm_name }}-nic1"
resource_group: "{{ res_group }}"
location: "{{ location }}"
subnet: "{{ azure_subnet_name }}"
virtual_network: "{{ vnet }}"
security_group: "{{ azure_vm_name }}-nsg"
enable_accelerated_networking: true
public_ip: no
state: present
- name: create vm
azure_rm_virtualmachine:
resource_group: "{{ res_group }}"
location: "{{ location }}"
name: "{{ azure_vm_name }}"
vm_size: Standard_D4s_v3
admin_username: xyz
ssh_password_enabled: false
ssh_public_keys:
- path: /home/xyz/.ssh/authorized_keys
key_data: "{{ public_key }}"
network_interfaces: "{{ azure_vm_name }}-nic1"
os_disk_name: "{{ azure_vm_name }}-osdisk"
managed_disk_type: "{{ azure_os_disk_type }}"
os_disk_caching: ReadWrite
os_type: Linux
image:
id: "{{ azure_image_id }}"
publisher: redhat
plan:
name: rhel-lvm78
product: rhel-byos
publisher: redhat
- name: Add the managed disk to VM
azure_rm_manageddisk:
name: "{{ azure_vm_name }}-datadisk01"
location: "{{ azure_location }}"
resource_group: "{{ res_group }}"
disk_size_gb: "{{ azure_disk_size }}"
managed_by: "{{ azure_vm_name }}"
storage_account_type: "{{ azure_data_disk_type }}"
attach_caching: read_only
- name: Ensure VM was created properly
assert:
that:
- azure_vm.properties.provisioningState == 'Succeeded'
- azure_vm.properties.availabilitySet.id
- name: "wait for 3 Min"
pause:
minutes: 3
- name: "Add post-install host to inventory"
add_host:
name: "{{ azure_vm_name }}"
groups: postinstall_group
- name: "Start post install"
hosts: postinstall_group
gather_facts: True
become: yes
become_method: sudo
become_user: root
tasks:
- name: "Post install"
include_role:
name: azure_license
...
Below is the Error details and this is only for azure_rm_networkinterface
module.
TASK [create virtual network interface card] ****************************************************************************************************************
task path: /home/xyz/ansible_work/new_vm_Creation.yml:50
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: xyz
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /tmp/ansible-tmp-1601448152.1657674-70974823509213 `" && echo ansible-tmp-1601448152.1657674-70974823509213="` echo /tmp/ansible-tmp-1601448152.1657674-70974823509213 `" ) && sleep 0'
Using module file /usr/local/lib/python3.6/dist-packages/ansible/modules/cloud/azure/azure_rm_networkinterface.py
<127.0.0.1> PUT /home/xyz/.ansible/tmp/ansible-local-2762h1jknjmk/tmpiupv02qc TO /tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /tmp/ansible-tmp-1601448152.1657674-70974823509213/ /tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /tmp/ansible-tmp-1601448152.1657674-70974823509213/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py", line 102, in <module>
_ansiballz_main()
File "/tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible.modules.cloud.azure.azure_rm_networkinterface', init_globals=None, run_name='__main__', alter_sys=False)
File "/usr/lib/python3.6/runpy.py", line 208, in run_module
return _run_code(code, {}, init_globals, run_name, mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py", line 877, in <module>
File "/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py", line 873, in main
File "/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py", line 595, in __init__
File "/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/module_utils/azure_rm_common.py", line 348, in __init__
File "/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py", line 744, in exec_module
KeyError: 'name'
fatal: [localhost]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File \"/tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py\", line 102, in <module>\n _ansiballz_main()\n File \"/tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/tmp/ansible-tmp-1601448152.1657674-70974823509213/AnsiballZ_azure_rm_networkinterface.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible.modules.cloud.azure.azure_rm_networkinterface', init_globals=None, run_name='__main__', alter_sys=False)\n File \"/usr/lib/python3.6/runpy.py\", line 208, in run_module\n return _run_code(code, {}, init_globals, run_name, mod_spec)\n File \"/usr/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py\", line 877, in <module>\n File \"/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py\", line 873, in main\n File \"/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py\", line 595, in __init__\n File \"/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/module_utils/azure_rm_common.py\", line 348, in __init__\n File \"/tmp/ansible_azure_rm_networkinterface_payload_bifcddsl/ansible_azure_rm_networkinterface_payload.zip/ansible/modules/cloud/azure/azure_rm_networkinterface.py\", line 744, in exec_module\nKeyError: 'name'\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}