Join the Gitter channel! https://gitter.im/uyuni-project/hackweek

Currently there are a few distributions that are completely untested on Uyuni or SUSE Manager (AFAIK) or just not tested since a long time, and could be interesting knowing how hard would be working with them and, if possible, fix whatever is broken.

The idea is testing Salt and Salt-ssh clients, but NOT traditional clients.

To consider that a distribution has basic support, we should cover at least:

  1. Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
  2. Onboarding (both salt and salt-ssh) (this will probably require adding OS to the bootstrap repository creator)
  3. Package management
  4. Patching
  5. Applying any basic salt state
  6. Salt remote commands

If something is breaking: we can try to fix it, but the main idea is research how supported it is right now. Beyond that it's up to each project member how much to hack :-)

If you don't have knowledge about some of the steps: ask the team. If you still don't know what to do: switch to another distribution and keep testing. This card is for EVERYONE. Not just developers.

In progress

Amazon Linux 2

https://aws.amazon.com/amazon-linux-2/

PR: https://github.com/uyuni-project/uyuni/pull/1919

This could be really interesting, as it's heavily used on AWS. I could have use a product like SUSE/Manager Uyuni at my former job to take care of over 100 Amazon Linux instances plus some Red Hat, Ubuntu and CentOS we had.

It's neither CentOS 7 or 8 as they do their own maintenance, but the package manager is still yum, and not dnf (so more CentoS7 like, but without binary compatibility, as they can -for example- add packages that break repositories intended for CentOS7 -as it happened to me in the past with Puppet's yum repository-).

There's also Amazon Linux 1, but it's less interesting as Standard Support ends on December 2020, and the Maintenance Support phase will only patch a few packages (https://aws.amazon.com/amazon-linux-ami/)

  • [W] Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
  • [W] Onboarding (both salt and salt-ssh) (this will probably require adding OS to the bootstrap repository creator)
  • [W] Package management
  • [ ] Patching
  • [W] Applying any basic salt state
  • [W] Salt remote commands

IMPORTANT NOTE: Despite salt seems to work, it shows this at the minion log: 2020-02-14 16:38:31,902 [salt.loaded.int.grains.core:1854][ERROR ][5673] Broken CPE_NAME format in /etc/os-release! ** Seems to be a problem in our salt package. The ion squad should have a look (discussed at Rocket.Chat). Doesn't affect functionality.

AlmaLinux8

https://almalinux.org/

PR: https://github.com/uyuni-project/uyuni/pull/3455

As of today, seems to be the most successful successor to CentOS8

  • [W] Reposync But for now we do not support the mirrorlist. See the PR
  • [F] Onboarding (both salt and salt-ssh) (salt requires promotion, will be ready soon)
  • [ ] Package management
  • [ ] Patching
  • [ ] Applying any basic salt state
  • [ ] Salt remote commands

Astra Linux

https://astralinux.ru/en/

PR: https://github.com/uyuni-project/uyuni/pull/1915

Originally it was a GNU/Linux developed for the Russian army and intelligence agencies, but it now offers a free (as in free beer) version for general usage. It is based on Debian GNU/Linux, so maybe getting some basic support will not be that hard.

Our team in Russia told me about it, so I joined their Telegram support channel some months ago.

Right now there are more than 1600 users at their Telegram channel (linked to Matrix.org with a bridge, which I suspect is what most of the users use) with a lot of traffic each day talking not only about support, but also about news regarding the distribution.

The distribution is now Linux Foundation Corporate Member (Silver).

  • [W] Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    1. After adding the repositories to spacewalk-common-channels works fine.
  • [W] Onboarding (both salt and salt-ssh)
    1. WebUI works (salt and salt-ssh), with some caveats: https://github.com/uyuni-project/uyuni/pull/1915
    2. I can bootstrap using a script.
  • [W] Package management
    1. Works!
  • [ ] Patching
    1. Can't test yet, no patches available.
  • [W] Applying any basic salt state
    1. Works!
  • [W] Salt remote commands
    1. Works!

Alibaba Cloud Linux 2

https://www.alibabacloud.com/help/doc-detail/111881.htm

Distribution compatible with CentOS7. Since this is CentOS7, the traditional stack is available as well.

  • [ ] Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
  • [ ] Onboarding
    • salt, salt-ssh and traditional via WebUI
    • salt and traditional via Bootstrap Script
  • [ ] Package management (salt and traditional)
  • [ ] Patching (salt and traditional)
  • [ ] Applying any basic salt state (salt and traditional)
  • [ ] Salt remote commands (salt and traditional)

Already implemented

Oracle Linux

NOTE: Already implemented

Debian 10/9

NOTE: Already implemented

Others

Interested on testing other distributions? Ping me and let's try.

[W] = works [F] = Fails [P] = in Progress

Looking for hackers with the skills:

uyuni susemanager distribution linux management testing java bash python

This project is part of:

Hack Week 19 Hack Week 20

Activity

  • 7 months ago: vzhestkov joined this project.
  • 7 months ago: j_renner liked this project.
  • 8 months ago: juliogonzalezgil added keyword "python" to this project.
  • 8 months ago: juliogonzalezgil added keyword "bash" to this project.
  • 8 months ago: juliogonzalezgil added keyword "java" to this project.
  • over 1 year ago: Pharaoh_Atem liked this project.
  • over 1 year ago: pagarcia liked this project.
  • over 1 year ago: jcavalheiro liked this project.
  • over 1 year ago: nicoladm joined this project.
  • over 1 year ago: keichwa joined this project.
  • All Activity

    Comments

    • nicoladm
      over 1 year ago by nicoladm | Reply

      Hi, nice project. I was trying to help with the debian 9 onboarding testing https://github.com/uyuni-project/uyuni/issues/1356 since the process is still fairly manual. Looks like mgr-create-bootstrap-repo needs tweaking https://github.com/uyuni-project/uyuni/issues/1495 i am not a developer but i can probably tweak scripts and help with some guidance

    • juliogonzalezgil
      over 1 year ago by juliogonzalezgil | Reply

      Hi @nicoladm

      If that's the only think that's failing, it's not so hard to fix.

      The packages to be added to a bootstrap repository by mgr-create-bootstra-repo are at https://github.com/uyuni-project/uyuni/blob/master/susemanager/src/mgrbootstrapdata.py

      You just need to add a new variable PKGLISTDEBIAN9 with the list of packages required to bootstrap with salt (salt itself and all dependencies). Most probably the list will be similar to Ubuntu18.04.

      Then at DATA you need a new entry debian8-amd64-uyuni (similar to ubuntu-18.04-amd64-uyuni) using the basechannel debian-9-pool-amd64 and adapting the rest.

      And finally, you maybe you will need to adjust https://github.com/uyuni-project/uyuni/tree/master/susemanager-utils/susemanager-sls/salt/bootstrap (specifically init.sls) if the bootstrap procedure itself fails to find the repository.

      It would be good if you can add both Debian9 and Debian10 :-)

      • nicoladm
        over 1 year ago by nicoladm | Reply

        systems used: KVM VM openSUSE Leap 15.1 with Uyuni 2020.01 KVM VM debian 9.9 Salt minion version: salt-minion2019.2.0+ds-1all.deb

        NOTE: The following repo as mentioned by mateiw on github should contain the patch for salt-minion deb package that suppose to fix the problems related with removing/disabling Debian repos during the bootstrap hence i am using this version salt patch (https://build.opensuse.org/package/show/systemsmanagement:saltstack:products:testing:debian/salt): https://download.opensuse.org/repositories/systemsmanagement:/saltstack:/products:/testing:/debian/Debian_10/

        Debian 9 repos synced successfully, created a test/qa channel using the Content lifecycle section and created an activation key (1-qa-debian9-test) with the qa channels added to it.

        spacecmd softwarechannel_listchildchannels 
        
        debian-9-amd64-main-security
        debian-9-amd64-main-updates
        debian9-opensuse-salt
        debian9-servers-qa-debian9-debian-9-amd64-main-security
        debian9-servers-qa-debian9-debian-9-amd64-main-updates
        debian9-servers-qa-debian9-debian9-opensuse-salt
        
        spacecmd activationkey_listchildchannels 1-qa-debian9-test
        
        debian9-servers-qa-debian9-debian-9-amd64-main-security
        debian9-servers-qa-debian9-debian-9-amd64-main-updates
        debian9-servers-qa-debian9-debian9-opensuse-salt
        

        After the bootstrap the file pushed by salt is empty.

        /etc/apt/sources.list.d/susemanager\:channels.list 
        

        First question that is puzzling me: Is it normal that the channels are not subscribed automatically even if the activation key has the debian channells assigned correctly? Has this something to do with the susemanager-sls state you have mentioned right?

        I will have a closer look to the below files on the uyuni server tomorrow and start play with them

        /usr/share/susemanager/mgr_bootstrap_data.py
        /usr/sbin/mgr-create-bootstrap-repo
        

        • juliogonzalezgil
          over 1 year ago by juliogonzalezgil | Reply

          What's the content of /etc/apt/sources.list.d/susemanager\:channels.list

          Is it normal that the channels are not subscribed automatically even if the activation key has the debian channells assigned correctly?

          Well, if the activation key had the channels assigned BEFORE the onboarding, then that's a bug.

          If you add channels to an activation key AFTER the onboarding, then already onboarded clients will not get the channels.

          • nicoladm
            over 1 year ago by nicoladm | Reply

            What's the content of /etc/apt/sources.list.d/susemanager:channels.list

            root@debian9-uyuni:~# cat /etc/apt/sources.list/susemanager\:channels.list 
            # Channels managed by SUSE Manager
            # Do not edit this file, changes will be overwritten
            

            To double check I have tried to deselect and reselect the debian channels from the activation key and bootstrapped again and i can confirm I had the same behaviour - i needed to manually subscribe the channels from Systems --> Debian host --> Software --> Software channels because shown as none, disable service.

            Where is the place to raise this bug?

            • juliogonzalezgil
              over 1 year ago by juliogonzalezgil | Reply

              Did the onboarding complete without issues?

              • nicoladm
                over 1 year ago by nicoladm | Reply

                Not yet, at least not automatically.

                I am facing like a chicken and the egg situation where i need salt-minion-2019.2.0+ds-1.all-deb to be installed in order for the bootstrap to work properly (disable default debian channels and assign the susemanager channels and so on).

                I am looking at the bootstrap script there might be something we need to tweak there as well which is failing with:

                pkg_|-salt-minion-package_|-salt-minion_|-latest(retcode=2): No     information found for 'salt-minion'. file_|-/etc/salt/minion.d/susemanager.conf_|-/etc/salt/minion.d/susemanager.conf_|-managed(retcode=2): One or more requisite failed: bootstrap.salt-minion-package file_|-/etc/salt/pki/minion/minion.pub_|-/etc/salt/pki/minion/minion.pub_|-managed(retcode=2): One or more requisite failed: bootstrap.salt-minion-package service_|-salt-minion_|-salt-minion_|-running(retcode=2): One or more requisite failed: bootstrap.salt-minion-package, bootstrap./etc/salt/pki/minion/minion.pem, bootstrap./etc/salt/minion.d/susemanager.conf, bootstrap./etc/salt/pki/minion/minion.pub, bootstrap./etc/salt/minion_id file_|-/etc/salt/minion_id_|-/etc/salt/minion_id_|-managed(retcode=2): One or more requisite failed: bootstrap.salt-minion-package file_|-/etc/salt/pki/minion/minion.pem_|-/etc/salt/pki/minion/minion.pem_|-managed(retcode=2): One or more requisite failed: bootstrap.salt-minion-package<\code>
                

                Regarding the mgr-bootstrap i made the changes you suggested to /usr/share/susemanager/mgrbootstrapdata.py and it seems to be working fine:

                mgr-create-bootstrap-repo --with-custom-channels
                1. SLE-12-SP4-x86_64
                2. debian9-amd64-uyuni
                Enter a number of a product label: 2
                Creating bootstrap repo for debian9-amd64-uyuni
                
                copy 'libsodium18-1.0.11-2.amd64-deb'
                copy 'dctrl-tools-2.24-2+b1.amd64-deb'
                copy 'libzmq5-4.2.1-4+deb9u2.amd64-deb'
                copy 'python-chardet-2.3.0-2.all-deb'
                copy 'python-croniter-0.3.12-2.all-deb'
                copy 'python-crypto-2.6.1-7.amd64-deb'
                copy 'python-dateutil-2.5.3-2.all-deb'
                copy 'python-enum34-1.1.6-1.all-deb'
                copy 'python-ipaddress-1.0.17-1.all-deb'
                copy 'python-jinja2-2.8-1.all-deb'
                copy 'python-markupsafe-0.23-3.amd64-deb'
                copy 'python-minimal-2.7.13-2.amd64-deb'
                copy 'python-msgpack-0.4.8-1.amd64-deb'
                copy 'python-openssl-16.2.0-1.all-deb'
                copy 'python-pkg-resources-33.1.1-1.all-deb'
                copy 'python-psutil-5.0.1-1.amd64-deb'
                copy 'python-requests-2.12.4-1.all-deb'
                copy 'python-six-1.10.0-3.all-deb'
                copy 'python-systemd-233-1.amd64-deb'
                copy 'python-tornado-4.4.3-1.amd64-deb'
                copy 'python-tz-2016.7-0.3.all-deb'
                copy 'python-urllib3-1.19.1-1.all-deb'
                copy 'python-yaml-3.12-1.amd64-deb'
                copy 'python-zmq-16.0.2-2.amd64-deb'
                copy 'python-pycurl-7.43.0-2.amd64-deb'
                copy 'salt-common-2019.2.0+ds-1.all-deb'
                copy 'salt-minion-2019.2.0+ds-1.all-deb'
                copy 'dmidecode-3.0-4.amd64-deb'
                Exporting indices...
                
                ll /srv/www/htdocs/pub/repositories/debian/9/bootstrap/
                 total 0
                drwxr-xr-x 1 root root  26 Feb 11 23:21 conf
                drwxr-xr-x 1 root root 154 Feb 11 23:21 db
                drwxr-xr-x 1 root root  18 Feb 11 23:21 dists
                drwxr-xr-x 1 root root   8 Feb 11 23:21 pool
                

                • juliogonzalezgil
                  over 1 year ago by juliogonzalezgil | Reply

                  Is it normal that the channels are not subscribed automatically even if the activation key has the debian channells assigned correctly?

                  Then in this case, I think it normal. The first thing the bootstraping does is disabling the repositories, and then add the bootstrap repository.

                  no information found for 'salt-minion' seems to show that the package was not found, despite I can at the log you offer.

                  First, check that you can find the package at /srv/www/htdocs/pub/repositories/debian/9/bootstrap/(most probably you will).

                  If that's the case, then it's time to check the susemanage-sls package, as there is where the association between an OS and the bootstrap repository happens, according to the salt grains available during bootstrap (check susemanager-utils/susemanager-sls/salt/bootstrap/).

                  Maybe a patch is needed there, most probably at the init.sls file.

                  • juliogonzalezgil
                    over 1 year ago by juliogonzalezgil | Reply

                    BTW, if you can join Rocket.chat maybe we'll be able to collaborate faster than only using the website :-)

    • juliogonzalezgil
      over 1 year ago by juliogonzalezgil | Reply

      Having a look at Amazon Linux 2 already :-)

      • juliogonzalezgil
        8 months ago by juliogonzalezgil | Reply

        Just discovered that Amazon Linux 2 is now publishing XML information, and not just sqlite:

        http://amazonlinux.default.amazonaws.com/2/core/2.0/x8664/34112b4f91c3e1ecf2b2e90cfd565b12690fa3c6a3e71a5ac19029d2a9bd3869/repodata/repomd.xml http://amazonlinux.default.amazonaws.com/2/core/2.0/x8664/34112b4f91c3e1ecf2b2e90cfd565b12690fa3c6a3e71a5ac19029d2a9bd3869/repodata/primary.xml.gz

        So it seems we I will be able to bring this back to life without maybe any changes to reposync.

        Plan is reopen my PR, test again, and if it works see if I can fix the product detection (no promisies) and some more stuff.

        As for Astra Linux, let's see if I can convince OBS guys to fix the repos they added, so I can enable for Uyuni.

    • nicoladm
      over 1 year ago by nicoladm | Reply

      @juliogonzalezgil thanks Julio for the suggestions!! will start to do some testing hopefully this afternoon/evening

    • Pharaoh_Atem
      over 1 year ago by Pharaoh_Atem | Reply

      @juliogonzalezgil What about OpenMandriva? They seem interesting... add-emoji

    • juliogonzalezgil
      over 1 year ago by juliogonzalezgil | Reply

      @Pharaoh_Atem join and try :-D

      So far I will be happy if can complete Amazon Linux, Astra Linux and (maybe) Oracle Linux. No more time during this hackweek :-\

      So either for next hackweek, or you (or someone else) can have a look :-)

      • juliogonzalezgil
        over 1 year ago by juliogonzalezgil | Reply

        For reference, we are using a rocket.chat channel as so far only Nicola and I working on this.

        If someone from the community wants to join during this hackweek, we can move to Freenode or Gitter.

    • truquaeb
      over 1 year ago by truquaeb | Reply

      I'm trying to move away from Spacewalk, but getting stuck with my Fedora clients. It seems there aren't Uyuni client tools built for Fedora, I've got the repo's syncing and salt seems to work, machines are registered. Can't access the susemanager repos. I assume client tools need to be built, but where can I start?

      • juliogonzalezgil
        over 1 year ago by juliogonzalezgil | Reply

        Well, that depends. New distributions will only support salt (unless community actually takes care of maintaining traditional for them)

        You could start by creating an OBS repository based on Fedora and try to build salt there. You can use https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Master:CentOS8-Uyuni-Client-Tools as inspiration.

        But I guess we'd also need changes at other packages, so Uyuni is able to recognize this new distribution. My PR to Add Astra Linux (https://github.com/uyuni-project/uyuni/pull/1915) can also be used as insperation (Astra Linux is Debian Based, but even with this in mind, it can be of help).

    • pagarcia
      8 months ago by pagarcia | Reply

      More to add: Alibaba Cloud Linux 2 (WIP here: https://github.com/paususe/uyuni/commits/paususe-aliyun), Alma Linux and Rocky Linux.

      • juliogonzalezgil
        8 months ago by juliogonzalezgil | Reply

        As soon as we have someone to take care of them, I will add them :-)

        I understand you want to take care of Alibaba, right @pagarcia?

        • pagarcia
          8 months ago by pagarcia | Reply

          Yes, I will try to have Alibaba Cloud Linux 2 done before Hackweek even.

          • juliogonzalezgil
            8 months ago by juliogonzalezgil | Reply

            Alibaba Clolud Linux 2 added, with all checkboxes. Please add join the project, using the button above.

            If you will also handle Alma, let me know and I'll add it.

            • pagarcia
              7 months ago by pagarcia | Reply

              Other than traditional stack (untested), everything else tested and works for Alibaba Cloud Linux 2

    Similar Projects

    Uyuni/SUSE Manager: build Python APE and a Salt+Python bundle to support ANY client operating system by pagarcia

    Uyuni/SUSE Manager build client tools for each ...


    Modern frontend build tooling for Uyuni by Etheryte

    Project Description

    At the moment, Uyuni ...


    Uyuni as a Bootstrap theme by Etheryte

    Project Description

    Currently, Uyuni has ...


    UYUNI-CLI by RDiasMateus

    UYUNI-CLI

    This a unified CLI tool for ...


    Create short "videos/screencasts" demoing cool stuff in 5 minutes by PSuarezHernandez

    [comment]: # (Please use the project descriptio...


    Uyuni as a Bootstrap theme by Etheryte

    Project Description

    Currently, Uyuni has ...


    Uyuni/SUSE Manager containerization project by moio

    Deploy Uyuni as an **app from the Rancher marke...


    Uyuni/SUSE Manager: build Python APE and a Salt+Python bundle to support ANY client operating system by pagarcia

    Uyuni/SUSE Manager build client tools for each ...


    Modern frontend build tooling for Uyuni by Etheryte

    Project Description

    At the moment, Uyuni ...


    Uyuni/SUSE Manager: Windows client support by pagarcia

    I'll continue the effort I started at last Hack...


    MicroOS Desktop by RBrownSUSE

    [Video Recording of openSUSE Conference sessio...


    Phoebe - where AI meets Linux by mvarlese

    Project Description

    Phoeβe (/ˈfiːbi/) wan...


    Uyuni/SUSE Manager: Windows client support by pagarcia

    I'll continue the effort I started at last Hack...


    RISC-V boot deep dive (Boot FLOW from 0 to Linux Kernel) by clin

    RISC-V boot deep dive (Boot FLOW from 0 to ...


    Alexa on Linux - voice commands for SUSE products by calmeidadeoliveira

    What is it about?

    Learn about AVS (Alexa Vo...


    One of couple of Python projects by mcepl

    There are couple of projects I work on, which n...


    Script that loads dummy data into HANA database for testing purposes. by rangelino

    [comment]: # (Please use the project descriptio...


    Build Microservice Architecture with Kubernetes by aqsa_malik

    Project Description

    The aim of the project ...


    YAML 1.2 Schema support for PyYAML by tinita

    [comment]: # (Please use the project descriptio...


    Create short "videos/screencasts" demoing cool stuff in 5 minutes by PSuarezHernandez

    [comment]: # (Please use the project descriptio...