Bit more investigation, looks like this might be an issue with a specific module, so I'll gather some notes and go raise an issue on Github.
azure_rm_virtualmachine_facts appears to be having the issues. Here's the output of a simple playbook that uses azure_rm_publicipaddress_facts and azure_rm_virtualmachine_facts - it fails on the virtualmachine facts part.
PLAY [VM Management Role] ******************************************************
TASK [vm.mgmt : Check for Public IP] *******************************************
ok: [rhel01 -> localhost]
ok: [rhel02 -> localhost]
TASK [vm.mgmt : Override ansible_host with public IP] **************************
ok: [rhel02]
ok: [rhel01]
TASK [vm.mgmt : Show public ip] ************************************************
ok: [rhel02] => {
"msg": "server ip is x.y.a.b"
}
ok: [rhel01] => {
"msg": "server ip is x.y.a.b"
}
TASK [vm.mgmt : Get VM detail] *************************************************
fatal: [rhel01]: FAILED! => {"changed": false, "msg": "Do you have packaging installed? Try `pip install packaging`- No module named packaging.version"}
fatal: [rhel02]: FAILED! => {"changed": false, "msg": "Do you have packaging installed? Try `pip install packaging`- No module named packaging.version"}
PLAY RECAP *********************************************************************
rhel01 : ok=3 changed=0 unreachable=0 failed=1
rhel02 : ok=3 changed=0 unreachable=0 failed=1