Can I setup static IPs without a MAC address on Windows?
Hello everyone, I use Ansible to provision Windows VMs on VCenter and we currently evaluating cloudbase-init.
With our workflow it's not possible to know the MAC of the VM before we build the VM. So, our metadata look like this:
network:
version: 2
ethernets:
id0:
match:
name: "Ethernet*"
addresses:
- 192.168.0.100
gateway4: 192.168.0.254
nameservers:
addresses:
- 192.168.0.1
- 192.168.0.2
However, cloudbase-init doesn't configure the IP and the logs have the following:
INFO cloudbaseinit.init [-] Executing plugin 'NetworkConfigPlugin'
ERROR cloudbaseinit.init [-] plugin 'NetworkConfigPlugin' failed with error ''NoneType' object has no attribute 'lower''
ERROR cloudbaseinit.init [-] 'NoneType' object has no attribute 'lower': AttributeError: 'NoneType' object has no attribute 'lower'
ERROR cloudbaseinit.init Traceback (most recent call last):
ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\init.py", line 66, in _exec_plugin
ERROR cloudbaseinit.init (status, reboot_required) = plugin.execute(service,
ERROR cloudbaseinit.init ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 307, in execute
ERROR cloudbaseinit.init return self._process_network_details_v2(network_details)
ERROR cloudbaseinit.init ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 295, in _process_network_details_v2
ERROR cloudbaseinit.init NetworkConfigPlugin._process_physical_links(
ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 197, in _process_physical_links
ERROR cloudbaseinit.init adapter_name =
ERROR cloudbaseinit.init osutils.get_network_adapter_name_by_mac_address(
ERROR cloudbaseinit.init |
ERROR cloudbaseinit.init ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\osutils\windows.py", line 804, in get_network_adapter_name_by_mac_address
ERROR cloudbaseinit.init iface_index_list = [
ERROR cloudbaseinit.init ^
ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\osutils\windows.py", line 808, in <listcomp>
ERROR cloudbaseinit.init net_addr["mac_address"].lower() == mac_address.lower()]
ERROR cloudbaseinit.init ^^^^^^^^^^^^^^^^^^^
ERROR cloudbaseinit.init AttributeError: 'NoneType' object has no attribute 'lower'
ERROR cloudbaseinit.init
which is strange because I have seen in the code that it tries to find the interface by name if MAC is not defined. Thus, I suppose my configuration is wrong.
Can someone help me on this?