You could use Major Public Cloud Providers (AWS, Azure, GCP) or any other Location (Hetzner Cloud, Linode, digitalOcean etc) [list]that is supported by Packer.
With Packer you can build and maintain your system image and customize it.
Each time you want to upgrade you can build a new image. By building the new image you can choose the base image version ...
Assuming you can connect to the machine (say, using a local connection), you can interrogate the host facts.
It should expose a list ansible_interfaces, which will include the name of your ethernet interface. Each device will have a key in the facts. If your device is called eth0, you will have a dict called ansible_eth0.
The keys should include: