Commit Graph
7 Commits
Author SHA1 Message Date
Jeremy Cline 4b4a83b33f Add a WSL definition and config snippets
This introduces the beginnings of an image definition for Windows
Subsystem for Linux (WSL).

The package list is based on the core and standard grouplists. Some
packages, like the kernel, dracut, and so on, are omitted as they are
unnecessary. Others, like audit, don't work in the environment. Finally,
many packages are omitted since I thought "people probably won't want
that", so the package list is completely up for debate. This is just a
reasonable starting point that works.

Build/test instructions:

To build the tarball:

  $ ./kiwi-build --image-profile=WSL-Base --image-type=tbz --output-dir=./build/

Get it to a Windows host with WSL installed. To boot it with cgroupsv2,
add the following to `.wslconfig` in the Windows host home folder:

[wsl2]
kernelCommandLine=systemd.unified_cgroup_hierarchhy=1 cgroup_no_v1=all

This assumes the latest WSL release is installed, at least version 2.4.4:

  $ wsl --install --from-file .\path\to\the\fedora.tar.xz

Alternatively, if you're using something prior to version 2.4.4:

  $ wsl --import --version=2 Fedora C:\path\to\storage\Fedora\ .\path\to\the\fedora.tar.xz

Finally, run it with:

  $ wsl -d Fedora

If you are using 2.4.4+, you will be prompted for a username and then
dropped into an interactive shell with that user and passwordless sudo
access.

If you're using an older version, you need to do:

  $ wsl -d Fedora -u root
  # /usr/libexec/wsl/oobe.sh

Signed-off-by: Jeremy Cline <jeremycline@linux.microsoft.com>
2025-01-31 10:52:54 -05:00
Jeremy Cline 319e5e8153 container: update package list to match f39 more closely
Gary Buhrmaster noticed gzip was missing from the Fedora 40 container.
An extremely quick and gross diff produced by doing:

podman run -it --rm --entrypoint /usr/bin/rpm fedora:39 -qa \
  | sort | uniq | awk '{ split($0,a,"-[0-9]"); print a[1] }' > f39.txt

shows the following for Fedora Minimal 39 -> 40:

-abattis-cantarell-vf-fonts
+audit-libs
-default-fonts-core-sans
-fonts-filesystem
-google-noto-fonts-common
-google-noto-sans-mono-vf-fonts
-google-noto-sans-vf-fonts
-google-noto-serif-vf-fonts
-gpg-pubkey
+gpg-pubkey-a15b79cc
+json-c
-langpacks-core-en
-langpacks-en
-langpacks-fonts-en
+libcap-ng
+libeconf
-libsigsegv
+libtool-ltdl
+pam-libs
-systemd-libs
-util-linux-core
-zlib
+zlib-ng-compat

For Fedora 39 -> 40:

-authselect
-authselect-libs
-cracklib
-gpg-pubkey
+gpg-pubkey-a15b79cc
-gzip
-libdb
-libpwquality
-libsigsegv
+libtool-ltdl
-pam
-sudo
-systemd-libs
-util-linux-core
-zlib
+zlib-ng-compat

This adds gzip and sudo back to the non-minimal container, as well as
bzip2, xz, and zstd to round out the set of [de]compression tools.
2024-03-18 11:57:38 -04:00
Jeremy Cline f874d413eb No longer enable waagent.service via config.sh
The service is now enabled via systemd presets.
2024-02-29 11:24:53 -05:00
Jeremy Cline 9322f54b49 azure: install the hyperv-daemons package
This pulls in a number of services to integrate a guest running under
Hyper-V. These services are all automatically activated via udev rules.
2024-02-23 00:31:35 +00:00
Jeremy Cline 83a43059d3 azure: support accelerated networking feature
Azure provides an optional "Accelerated Networking" feature. Enabling
this feature when creating a VM enables SR-IOV and provides the guest
with a virtual function.

Supporting this requires two changes. Firstly, the kernel-modules
package is required as it contains the Mellanox drivers required for the
VF provided to the guest. Secondly, the interface needs to be ignored by
NetworkManager or it'll try and fail to bring up the device and the VM
will be unreachable except by serial console. If this is observed, it's
likely new hardware has been deployed and additional drivers need to be
added to the NetworkManager config.

See https://learn.microsoft.com/en-us/azure/virtual-network/accelerated-networking-overview
for details.
2024-02-23 00:31:35 +00:00
Jeremy Cline d9584ccd70 azure: ensure early boot messages are directed to the serial console
In the event that there's an issue with early boot, setting
earlyprintk=ttyS0 ensures that the messages are routed to the serial
console so it can be debugged.

This particular option is documented as required in the Azure VM
certification FAQ[0].

[0] https://learn.microsoft.com/en-us/partner-center/marketplace/azure-vm-certification-faq#linux-test-cases
2024-02-23 00:31:35 +00:00
Jeremy Cline 78ea0154a4 azure: enable the Azure Linux Agent service
The WALinuxAgent package was already being installed, but the service
was enabled. This ensures it'll start when the VM is created.
2024-02-23 00:31:35 +00:00