Uyuni is a configuration and infrastructure management tool that saves you time and headaches when you have to manage and update tens, hundreds or even thousands of machines.
Uyuni supports all of the enterprise Linux operating systems, and we keep adding. This technical presentation explains how to add a new client operating system, using AlmaLinux as a practical example.
Guest: Jack Aboutboul, AlmaLinux Community Manager, who presents what is AlmaLinux and why it exists.
Watch the video on YouTube: https://youtu.be/mX5XRI_l-1M
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Enabling new client operating systems in Uyuni. AlmaLinux as an example.
1. Pau Garcia Quiles
Product Owner &TechnicalProjectManager
SUSE Manager
pau.garcia@suse.com
Enabling new client
operating systems in Uyuni
19.06.2021
Jack Aboutboul
CommunityManager
AlmaLinux
jack@almalinux.org
2. Tanja Batz Product Manager
2
Product Owner & Technical Project
Manager
Pau Garcia Quiles
Pau Garcia Quiles
Product Owner & Technical Project Manager
SUSE Manager
Former Debian Developer
Former KDE developer
Former... more things
LiberaChat: pagarcia / pgquiles
Gitter: pagarcia
E-mail: pau.garcia@suse.com
3. Tanja Batz Product Manager
3
Product Owner & Technical Project
Manager
Pau Garcia Quiles
Jack Aboutboul
Community Manager, AlmaLinux
Long-Time Fedora Contributor
Former Red Hat Community Architect
Fell in love with Open Source and never looked back
LiberaChat: themayor
E-mail: jack@almalinux.org
5. What?
⚫ Systems management solution
⚫ Deploy and manage all kind of workloads from a single place
⚫ Automate audit and reporting capabilities
⚫ Hardware and software inventories
⚫ Configuration management: automatically maintain standard configurations
⚫ Virtualization
⚫ Supported client operating systems: most enterprise Linux
⚫ Runs on openSUSE Leap (port to CentOS in the works)
5
8. Features
⚫ System deployment
⚫ Patch management
⚫ Service Pack migration
⚫ Configuration management
⚫ Bare-metal provisioning
⚫ Schedule action chains to be performed on systems
⚫ Compliance management: OpenSCAP and CVE Audit! Get alerts and fix in 1-click!
⚫ API
8
9. Cool features
⚫ Transparent integration with Salt and Ansible
⚫ Manage on-prem, cloud, hybrid cloud or multi-cloud systems
⚫ Content Lifecycle Management: define stages (DEV, TEST, PRO) for your software channels and apply
filters to add/remove contents and create new channels
⚫ Recurring actions and recurring highstate
⚫ Build OS and container images
⚫ Compliance: CVE audit, SCAP, subscription matching
⚫ Virtualization management (including HA virtualization cluster with KVM/Xen)
⚫ Monitoring (Prometheus & Grafana stack), including federation
⚫ Formulas with Forms: create YAML automation templates, no programming skills required!
9
10. Manage all your enterprise Linux
⚫ SLES 11, 12, 15
⚫ openSUSE Leap 15
⚫ RHEL 6*, 7, 8
– Oracle Linux 6*, 7, 8
– CentOS 6*, 7, 8
– SLES Expanded Support 6*, 7, 8
– AlmaLinux 8
– Soon: Rocky Linux 8
⚫ Ubuntu 16.04*, 18.04, 20.04
⚫ Debian 9, 10
⚫ Amazon Linux 2
⚫ Alibaba Cloud Linux 2 (soon: 3)
⚫ MicroFocus Open Enterprise Server 2018
⚫ SLE Micro 5.0 (partial support)
10
Expanded Support
* Deprecated, but functional
11.
12. 12
AlmaLinux? Who?
• We are an Open Source and forever-free enterprise Linux distribution and
community. We are 1:1 binary compatible with RHEL. A CentOS alternative.
• 501(c)(6) non-profit that is owned, governed and driven by the community.
Graciously sponsored and supported by awsome open source-focused companies
and organizations. (See them all on our site)
• A team with over a decade of experience focused on Long-Term stability and
security.
• Available Now! 2 Stable Releases so far 8.3 and 8.4. ARM in Beta. Stable coming
soon (~1 Week). Secure Boot, OpenSCAP, Errata....
13. Aaaand what brings you to this part of the woods?
Not all those who wander are lost. --Gandalf
14. We believe in community and collaboration
• The CentOS announcement created lots of confusion and FUD in the
community. That's not good for anyone.
• We decided that we want to be a bridge and build bridges
• OBS was the inspiration for our backend build services
• A rising tide lifts all boats and openSUSE is a big part of the ecosystem
• Our philosophy and goals are to foster cross community collaboration across
the whole ecosystem
15. What can we do for you? How can you contribute?
• https://chat.almalinux.org
• https://github.com/AlmaLinux/
• https://almalinux.org and https://wiki.almalinux.org
• https://bugs.almalinux.org/
• https://www.reddit.com/r/AlmaLinux/
18. First things to look at
⚫ Is the new client OS available on the Open Build Service?
⚫ Is the new client OS a variation of an existing supported client?
⚫ Salt-only or Salt+traditional?
⚫ Is the new client OS known by Salt already?
18
19. Is the new client OS available on OBS?
a) Yes: you are good to go
b) No: ask OBS admins to add it (the case of AlmaLinux)
⚫ In some cases, you can consider reusing binaries from another OS (e. g. for AlmaLinux we could have
used CentOS 8 client tools binaries)
19
20. Variation of existing client?
⚫ Yes, AlmaLinux 8 is a RHEL8 clone
⚫ All the complex stuff should already be there: modules and appstreams, special-casing here or there,
etc
⚫ No need to build specific client tools but we did because we want to leave CentOS 8 behind and use
AlmaLinux 8 as the base for new EL-class support
20
21. Salt-only or Salt+traditional?
⚫ Officially, Salt-only
⚫ Actually, Salt+traditional was implemented because we are not actual developers
21
22. Is the new client OS known by Salt?
⚫ No but we added the grain: https://github.com/openSUSE/salt/pull/340
⚫ Don’t forget to upstream the grain! https://github.com/saltstack/salt
22
23. Setting up a development branch
⚫ Fork and clone locally source code: https://github.com/uyuni-project/uyuni/
⚫ Create OBS fork of Uyuni master: https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Master
⚫ Create OBS fork of Uyuni client tools master:
https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Master:CentOS8-Uyuni-Client-Tools
⚫ Everything explained in detail in the wiki:
https://github.com/uyuni-project/uyuni/wiki/Uyuni-development-in-no-time
23
24. Code
⚫ INI file with new client OS repositories
⚫ Salt
⚫ Python
⚫ Extra mile: Java + SQL
24
https://github.com/uyuni-project/uyuni/pull/3455
https://github.com/uyuni-project/uyuni/pull/3718
https://github.com/uyuni-project/uyuni/pull/3854
25. Repositories
⚫ Add the new client OS repositories to spacewalk-common-channels.ini
⚫ If repositories are protected by token, certificate, user+password, etc, then it becomes a bit more
complex
25
https://github.com/uyuni-project/uyuni/pull/3455
26. Repositories
⚫ Add the new client OS client tools repositories to spacewalk-common-channels.ini, even if they are the
same as some other OS
26
https://github.com/uyuni-project/uyuni/pull/3455
27. Python
⚫ Bootstrap scripts: tell Uyuni how to identify a client OS and what client tools (bootstrap repository) to use
for the identified client OS
27
29. Salt
⚫ Teach Uyuni how to identify a client OS when Salt is installed
29
30. Salt
Bootstrap from WebUI/API: tell Uyuni how to identify a client OS and what bootstrap repository is to be
used.
30
31. Salt
⚫ And what SSL certificate clients connected to that Uyuni Server clients must trust (actually it’s always
the same certficiate not matter the client OS, we are simplifying this now)
31
32. Extra mile: SQL
⚫ Required for Uyuni Server to show in the WebUI who signed the packages
32
33. Extra mile: Java
⚫ Required if you want to be able to use checkboxes to enable monitoring, container building, etc
– Those features are functional without this Java enablement but they are a bit less convenient to use
⚫ Also required by SUSE Manager to show the product name instead of “Unknown product” in System
Details
⚫ Check the output of salt-call --local grains.items, especially the ‘os’, ‘osfullname’ and ‘osfamily’
grains
⚫ AlmaLinux 8 is matched by the RHEL8 matching code, therefore we need to special-case it
33
43. TL;DR
⚫ Enabling a new client operating system requires some Python and Salt coding (~10 files)
⚫ Full enablement (monitoring, container building,OS image building, showing the vendor name
everywhere in the WebUI, etc) requires extra coding in Java and SQL (~30 additional files)
⚫ Enabling AlmaLinux 8 took 3 days by 2 non-developers
⚫ Julio González Gil (SUSE Manager & Uyuni Release Engineer)
⚫ Pau Garcia Quiles (SUSE Manager ProductOwner & Technical ProjectManager)
⚫ What operating system are YOU going to enable!?
43
44. github.com/uyuni-project
gitter.im/uyuni-project
@UyuniProject
Join us at uyuni-project.org
Uyuni is the upstream project for SUSE Manager
• Community-supported
• Monthly meeting: Uyuni Community Hours
(last Friday of the month, 4pm CET)
• Runs on openSUSE Leap
• Monthly releases
• Rolling-release
• Product import using CLI tool (vs wizard in SUSE Manager)
• All translations enabled by default (even community ones)
45. License
This slidedeckis licensed under the CreativeCommons Attribution-ShareAlike4.0International license.
It canbeshared and adapted for any purpose(evencommercially)as long as Attributionis givenand any
derivativeworkis distributed under thesamelicense.
Details canbefound at https://creativecommons.org/licenses/by-sa/4.0/
GeneralDisclaimer
This documentis not to beconstrued as a promiseby any participatingorganisationtodevelop, deliver,
or marketa product. Itis not a commitmenttodeliver any material, code, or functionality,and should
not be relied uponinmaking purchasing decisions.openSUSE makes norepresentations or warranties
withrespectto the contents of this document, and specifically disclaims anyexpress or implied
warranties of merchantability or fitness for any particular purpose. Thedevelopment, release, andtiming
of features or functionality describedfor openSUSE products remains atthesolediscretionof openSUSE.
Further, openSUSE reserves the rightto revisethis documentand to makechanges toits content, atany
time, without obligationtonotify any personor entity of suchrevisions or changes. All openSUSE marks
referenced inthis presentationaretrademarks or registered trademarks of SUSE LLC, intheUnited
States and other countries. All third-party trademarks aretheproperty of their respectiveowners.
Credits
Template &Design
PauGarciaQuiles
pau.garcia@suse.com
Inspiration
openSUSE DesignTeam
http://opensuse.github.io/branding-guidelines/