New operating system enablement - uyuni-project/uyuni GitHub Wiki

Introduction

It is often requested to add a new Linux distribution or even different operating system to Uyuni.

This wiki page describes what is required to enable an operating system, using Manjaro Linux as the example.

Manjaro is based on Arch Linux and Salt supports Arch Linux, so as of this writing (07.02.2020), Manjaro might work as a Salt client. It will be limited, though.

Mirror packages

There is currently no support for mirroring Manjaro repositories, as the package format is completely different.

Alternatives:

Content Lifecycle Management

Content Lifecycle Management functionality is completely dependent on how good the implementation of reposync for Manjaro is.

Also, it's important to look at the package version comparison algorithm used by Manjaro: if it's different from the one used by RPMs and DEBs, then implementation is required. Read the discussion in https://github.com/uyuni-project/uyuni/pull/1412 for more details.

Bootstrap repository

Currently, there is no bootstrap repository for Manjaro (same as Debian), so clients will need to be bootstrapped manually (i. e. install Salt on the client, then accept the key in the server).

Bootstrap repositories may go away in the near future, so it might very well be the case that this is no longer a problem for Debian, Manjaro or any other operating system.

Salt packages

No Salt packages are available from Uyuni.

Arch Linux (base for Manjaro) includes Salt packages but they are missing the Uyuni patches (fixes and some new features, e. g. virtualization).

Recommendation: take the Arch package, add Uyuni's patches and build your own packages. Not trivial.

https://www.archlinux.org/packages/community/any/salt/ https://build.opensuse.org/package/show/systemsmanagement:saltstack:testing/salt

Patch information

No patch information is available for Manjaro, so no CVE audit capabilities (same as Debian and Ubuntu, the patches concept does not exist on those OSs). It can be implemented externally, similar to the external service we documented for CentOS: https://www.uyuni-project.org/uyuni-docs/uyuni/client-configuration/clients-centos.html#_manage_errata

For Manjaro, it will have to be implemented on the Server side. It is not too complex, actually, as the CVE information can be obtained from Arch Linux (https://security.archlinux.org) which is the base for Manjaro. These scripts can be used as a starting point: https://github.com/rust84/spacewalk-scripts

Conclusion

Adding support for a new operating system is not a trivial task, especially if the package manager is completely new (i. e. not RPM or DEB).

If you still want to proceed, go for it! And join and ask our community resources: GitHub repository, mailing lists, IRC and Gitter.

https://www.uyuni-project.org