CentOS and RHEL 8 or later versions

For CentOS and RHEL 8 or later versions, the dnf-automatic package is the preferred approach:

dnf install dnf-automatic

In /etc/dnf/automatic.conf set:

download_updates = yes
apply_updates = yes

Enable and start automatic updates via:

systemctl enable --now dnf-automatic.timer

Check status of dnf-automatic:

systemctl list-timers *dnf-*

CentOS and RHEL 7 or earlier versions

For CentOS and RHEL 7 or earlier versions, the yum-cron package is the preferred approach:

yum install yum-cron

In /etc/yum/yum-cron.conf set:

download_updates = yes
apply_updates = yes

Enable and start automatic updates via:

systemctl start yum-cron.service

openSUSE

First, you need to install the automatic update package

zypper install  yast2-online-update-configuration

Then start the configuration tool (ncurses based) with:

yast2 online_update_configuration

Enable the following settings:

    Automatic Online Update
    Interval: Daily
    Skip Interactive Patches
    Agree with Licenses
    Use delta rpms

Confirm your configuration with OK.

The official openSUSE documentation can be found here.