Ubuntu Clients
Support for Ubuntu Clients was added in SUSE Manager 3.2. Currently, Salt minions running Ubuntu 16.04 LTS and 18.04 LTS are supported.
Ubuntu clients must be Salt minions. Traditional clients are not supported. |
Bootstrapping is supported for starting Ubuntu clients and performing initial state runs such as setting repositories and performing profile updates.
However, the root user on Ubuntu is disabled by default, so in order to use bootstrapping, you will require an existing user with sudo
privileges for Python.
Other supported features:
-
Synchronizing
.deb
channels -
Assigning
.deb
channels to minions -
GPG signing
.deb
repositories -
Information displayed in System details pages
-
Package install, update, and remove
-
Package install using
Package States
-
Configuration and state channels
Some actions are not yet supported:
-
Patch and errata support
-
Bare metal installations, PXE booting, and virtual host provisioning
-
Live patching
-
CVE Audit
-
If you use are using a repository from storage media (
server.susemanager.fromdir = …
option in rhn.conf), Ubuntu Client Tools will not work.
Prepare to Register Ubuntu Clients
Some preparation is required on before you can register Ubuntu clients to SUSE Manager Server.
Before you begin, ensure you have the Ubuntu product enabled, and have synchronized the Ubuntu channels:
For Ubuntu 18.04:
-
Product: Ubuntu Client 18.04
-
Mandatory channels:
ubuntu-18.04-pool-amd64
For Ubuntu 16.04:
-
Product: Ubuntu Client 16.04
-
Mandatory channels:
ubuntu-16.04-pool-amd64
The mandatory channels do not contain Ubuntu upstream packages. The repositories and channels for synchronizing upstream content must be configured manually. |
-
Ensure that you have the appropriate software channels available on your system. In the SUSE Manager Web UI, navigate to
. You should see a base channel and a child channel for your architecture, for example:ubuntu-18.04-pool for amd64 | +- Ubuntu-18.04-SUSE-Manager-Tools for amd64
-
Create custom repositories to mirror the Ubuntu packages. For example:
For
main
:-
Repository Label: ubuntu-bionic-main
-
Repository URL: http://ubuntumirror.example.com/ubuntu/dists/bionic/main/binary-amd64/
-
Repository Type: deb
For
main-updates
: -
Repository Label: ubuntu-bionic-main-updates
-
Repository URL: http://ubuntumirror.example.com/ubuntu/dists/bionic-updates/main/binary-amd64/
-
Repository Type: deb
-
-
Create custom channels under the
pool
channel, mirroring the vendor channels.Ensure the custom channels you create have
AMD64 Debian
architecture.Create this structure:
ubuntu-18.04-pool for amd64 (vendor channel) | +- Ubuntu-18.04-SUSE-Manager-Tools for amd64 (vendor channel) | +- ubuntu-18.04-amd64-main (custom channel) | +- ubuntu-18.04-amd64-main-updates (custom channel)
-
Associate the custom channels with the appropriate custom repositories.
-
Synchronize the new custom channels. You can check the progress of your synchronization from the command line with this command:
tail -f /var/log/rhn/reposync.log /var/log/rhn/reposync/*
-
To use bootstrap with Ubuntu, you will need to create a bootstrap repository. You can do this from the command line with
mgr-create-bootstrap-repo
:mgr-create-bootstrap-repo --with-custom-channels
For more information on creating custom repositories, see administration:channel-management.adoc.
-
Synchronize the new custom channels. You can check the progress of your synchronization from the command line with this command:
tail -f /var/log/rhn/reposync.log /var/log/rhn/reposync/*
-
To use bootstrap with Ubuntu, you will need to create a bootstrap repository. You can do this from the command line with
mgr-create-bootstrap-repo
:mgr-create-bootstrap-repo --with-custom-channels
The root user on Ubuntu is disabled by default.
You can enable it by editing the sudoers
file.
-
On the client, edit the
sudoers
file:sudo visudo
Grant
sudo
access to the user by adding this line to thesudoers
file. Replace<user>
with the name of the user that will be used to bootstrap the client in the Web UI:<user> ALL=NOPASSWD: /usr/bin/python, /usr/bin/python2, /usr/bin/python3