Network configuration with SUSE® Rancher Prime OS Manager
SUSE® Rancher Prime OS Manager cloud-config support does not include declarative networking at the moment.
The defaul OS channel shipped with SUSE® Rancher Prime OS Manager provides SLE Micro OS images with NetworkManager which enables DCHP ethernet configuration automatically.
SUSE® Rancher Prime OS Manager cloud-config allows to create NetworkManager connection profile configuration files in order to customize the host network.
To define custom network configuration for your SUSE® Rancher Prime OS Manager OS deployment the required steps are:
-
Identify the content of the desired NetworkManager connection profile configuration files
-
Include a
write_files
cloud-config snippet in the SUSE® Rancher Prime OS Manager MachineRegistration resource to create configuration files with content identified in the previous step
The cloud-config configuration put in the SUSE® Rancher Prime OS Manager MachineRegistration is applied on the installed system only, not on the generated ISO/Image. This means that when booting from the SUSE® Rancher Prime OS Manager ISO/Image the MachineRegistration cloud-config is not applied on the host: it will be applied only after the OS is installed and rebooted. Host configuration during SUSE® Rancher Prime OS Manager ISO/Image boot is possible adding the cloud-config customization in the SeedImage resource instead of the MachineRegistration one. |
Identify NetworkManager connection profile configuration files content
NetworkManager supports multiple connection profile storage formats. While one could focus on any of the supported configuration file plugins, the keyfile plugin is the one we recommend: it allows to store all the possible connection profile data and has a quite simple syntax.
NetworkManager keyfiles can be written directly following the nm-settings-keyfile man page.
Anyway, it could be easier to instruct NetworkManager to configure a connection profile if a live system is available: NetworkManager then creates the keyfiles for us in the /etc/NetworkManager/system-connections/
directory.
There are multiple different ways to interact with NetworkManager and create connection profiles. The most used and handy configuration tools include:
Finally, to generate NetworkManager keyfiles offline using a declarative approach, one could use the nm-configurator project.
nmcli connection add \
con-name fixed-ip \
type ethernet \
ipv4.method manual \
ipv4.addresses 192.168.1.2/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns 192.168.1.1
After running the above command, you will find your keyfile at
/etc/NetworkManager/system-connections/fixed-ip.nmconnection
.
SUSE® Rancher Prime OS Manager cloud-config
The NetworkManager connection profile keyfiles can be injected in a [MachineRegistration](machineregistration-reference) using the write_files
module.
The content
can be either plain text or base64 encoded (encoding: b64
).
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
name: fire-nodes
namespace: fleet-default
spec:
config:
cloud-config:
users:
- name: root
passwd: root
write_files:
- content: |
[connection]
id=fixed-ip
uuid=9039a243-452d-4f01-9424-78648404d50b
type=ethernet
[ipv4]
address1=192.168.1.2/24,192.168.1.1
dns=192.168.1.1;
method=manual
path: /etc/NetworkManager/system-connections/fixed-ip.nmconnection
permissions: 600
elemental:
install:
reboot: true
device: /dev/sda
debug: true
machineInventoryLabels:
element: fire
manufacturer: "${System Information/Manufacturer}"
productName: "${System Information/Product Name}"
serialNumber: "${System Information/Serial Number}"
machineUUID: "${System Information/UUID}"
The connection profile keyfile file permissions should allow read and write access to the root user only, otherwise NetworkManager will refuse to load the connection profile: ensure to set |