I’ve been trying to set up a static IP address for MicroOS (Tumbleweed) via either combustion or ignition. Documentation for Wifi setup (https://en.opensuse.org/Portal:MicroOS/WifiSetup) kind of suggested, that this could be done via ifcfg-* files but after two days of trying all kinds of different things, I came to realize that this isn’t working; at least, it isn’t working with Tumbleweed.
Right now, I ended up with creating an appropriate *-nmconnection file under /etc/NetworkManager/system-connections. This gets me the desired result iff the system is rebooted at the end of the combustion run. Before that, I still get the IP address assigned via DHCP (I am using combustion: network because I am installing some packages). Unfortunately, things like systemctl reboot do not seem to work as part of the combustion run either.
Is this the right way to assign a static IP address to the interface in an automated way? If not, what’s the right way to do this?
If this is correct, how do I get the system to pick up the changes from my nmconnection file at the end of the combustion run?
Yes, I tried that as well. There are a few problems with that, though.
Even manually running that command does not yield the correct result. Why? Because there is now an additional nmconnection file under /run/NetworkManager/system-connections which is being preferred. What works is removing that file, then running nmcli con reload
Running systemctl restart NetworkManager from combustion results in Running in chroot, ignoring request.
Deleting anything from /run/NetworkManager/system-connections [FONT=arial]or [/FONT]/var/run/NetworkManager/system-connections [FONT=arial]will somehow break the boot process, complaining about a corrupt filesysttem[/FONT]
Running nmcli from combustion also doesn’t work and produces errors as well: [FONT=courier new]Could not create NMClient object: Could not connect: No such file or directory.[/FONT]
Okay. So when using “combustion: network”, it seems the best way to configure the static IP of the machine would be via kernel parameters. A combination work ignition and combustion seems to produce the correct result:
This ignition file will re-configure the kernel to provide an additional cmdline parameter, then restart the system. Upon restart, it will have the correct IP address and will run the combustion script…
Hmmm, so with vagrant I set the ip address, either private or physical, you can’t do that with Proxmox? FWIW, my MicroOS systems are all running wicked, only things I configure are ssh keys/access, a k3s server token and some sysctl config.
Theoretically, I could provide the IP address via my DHCP servers. I suspect vagrant is doing something similar. To be honest, I didn’t want to do that because I’d like the cluster to start up properly independent of the existence of a DHCP server. But looking at how complicated something so simple turned out to be, I am tempted to change my mind on that one.
Well, I don’t believe that vagrant is using either ignition or combustion. My question is really about: how to use the supposed mechanisms to provision the instances with a static ip address instead of DHCP…
So I’m guessing Proxmox is more like SUSE & Rancher Harvester? So there you can use vlans in my brief run of Harvester testing/playing. I just used vlan1 and untagged so it picked up the dhcp allocation for a k3s cluster.
I suggest heading over to join the SUSE & Rancher Community as there are a number of folks using Proxmox, they may have further information? https://community.suse.com