Clients Update Using Recurring Actions
This workflow shows how to automate updating the clients registered at SUSE Multi-Linux Manager using recurring actions.
1. Use Case / Situation
Automated update of clients is benefitial when:
- 
update of a large number of clients is wanted
 - 
the workflow should not be re-done every execution
 - 
a dedicated maintenance window exists.
 
2. Outcome / Resolution
Successful completion of this workflow results in consistent and supportable state.
3. Preparation
Before you start, you should have a number of clients onboarded. It may make sense to have them sorted into groups you want to update together. In this workflow we use a system group named infra-services.
4. Step-by-Step Workflow Instructions
To update a client two steps are required. A third step is optional but highly recommended to finalize the update process.
- 
As an example, we create the action to update Salt itself as a recurring action for all systems in the organization. In the SUSE Multi-Linux Manager Web UI, navigate to and click Create.
 - 
Select
Action TypeCustom State and enter aSchedule Namelikeupdate-salt. - 
Select a schedule. For example, Weekly: Wednesday, 9:00 am .
 - 
Assign the
update-saltstate by selecting the checkbox. - 
Click Save Changes to save the action.
 - 
You can edit the execution order of the states if needed. Click Confirm to confirm the order.
 - 
Click Create Schedule to save the action.
 
- 
As an example we create the action to apply all updates as a recurring action for a system group called infra-services. In the SUSE Multi-Linux Manager Web UI go to and click on
infra-services. - 
Now go to
Recurring Actionsand click Create. - 
Select
Action TypeCustom State and enter aSchedule Namelikefull-system-update. - 
Select a Schedule. For example, Weekly: Wednesday, 9:30 am . Keep enough time between this action and the
update-saltaction. Theupdate-saltactions must be finished on all systems before this action should be executed. - 
Assign the states
util.syncall,certs,channelsanduptodateby selecting the checkboxes. To perform a reboot afterwards you can also addrebootorrebootifneeded. - 
Save the action by clicking Save Changes.
 - 
You can edit the execution order of the states. The order should be
util.syncall,certs,channels,uptodateand finallyrebootorrebootifneededif chosen. Click Confirm to store the order. - 
Click Create Schedule to save the action.
 
- 
As an example, we create the action to apply the highstate for the same group which was fully updated before. In the SUSE Multi-Linux Manager Web UI, navigate to and click
infra-services. - 
Go to
Recurring Actionsand click Create. - 
Select
Action TypeHighstate and enter aSchedule Namelikehighstate. - 
Select a Schedule. For example, Weekly: Wednesday, 10:30 am . Again, keep enough time between this action and the
full-system-updateaction. - 
Click Create Schedule to save the action.
 
5. Background Information on uptodate State
- 
The
uptodatestate applies critical patches to the update components.- 
On SUSE-based systems, the state executes the command:
zypper --non-interactive patch --updatestack-onlyAnd then, the state also updates Salt.
 - 
On all the other systems, not based on SUSE, the state only updates Salt.
 
 - 
 - 
The state runs the package manager, such as
dnf,yum,apt, orzypperbased on what is available on the client operating system to update the rest of the packages.- 
The state lists all of the upgradable packages, based on the synchronized package repositories in SUSE Multi-Linux Manager.
 - 
The state upgrades the packages to their latest available version by using the client’s package manager. The executed command depends on the operating system of the client:
- 
For Debian-based clients, such as Debian or Ubuntu, the action executes
apt dist-upgrade -q -y $PACKAGES. - 
For RPM-based clients that are not SUSE, such as Red Hat Enterprise Linux or SUSE Liberty Linux, the action executes
yum --quiet -y update $PACKAGESordnf --quiet -y upgrade $PACKAGES(depending on the package manager the client is using). - 
For non-transactional SUSE clients, such as SUSE Linux Enterprise 15, the action executes
zypper --non-interactive --auto-agree-with-licenses update $PACKAGES. - 
For transactional SUSE clients, the action executes the same in a transactional shell.
 
 - 
 
 - 
 
SUSE Multi-Linux Manager provides the reboot and rebootifneeded actions. Use one of the actions if you want your client to reboot after the package upgrade.
+
rebootifneeded- 
Reboot detection is specific to the client operating system.
- 
For Debian or Ubuntu, see https://www.debian.org/doc/debian-policy/ch-opersys.html#signaling-that-a-reboot-is-required.
 - 
For non-transactional SUSE clients, SUSE Multi-Linux Manager reboots the client when
zypper -x list-patchesindicates that the patches require a reboot. - 
For transactional SUSE clients, SUSE Multi-Linux Manager reboots the client if there is a pending transaction.
 - 
For the Red Hat-based clients, SUSE Multi-Linux Manager reboots the client if
dnf -q needs-restarting -rindicates that a reboot is required. 
 - 
 
+
For more information, see the reboot_info.py module: https://github.com/uyuni-project/uyuni/blob/master/susemanager-utils/susemanager-sls/src/modules/reboot_info.py
6. Related Topics
- 
For more information about recurring actions, see Recurring Actions.
 - 
For more information about custom info values, see 自定义系统信息.