Updated install methode,

added support for centos/DNF
This commit is contained in:
2020-12-02 12:32:47 +01:00
parent 398f274355
commit 3137fd17a4
8 changed files with 225 additions and 35 deletions

49
conf.sh
View File

@@ -1,18 +1,43 @@
###Fetch Config #Set repo
mrepo=https://git.ictmaatwerk.com/VPS-scripts/Unattended-Security-Updates mrepo=https://git.ictmaatwerk.com/VPS-scripts/Unattended-Security-Updates
mbranch=master mbranch=master
#OS Detection if not provided by external installer
if [ -z ${shortdist+x} ]; then
dist_ver=$(grep --color=never -Po "^VERSION_ID=\K.*" "/etc/os-release")
dist=$(grep --color=never -Po "^ID=\K.*" "/etc/os-release")
###OS Detection if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then
source /etc/os-release shortdist=ubu1804
if [ "$ID" = "debian" ]; then echo set
LinVer=Debian elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then
elif [ "$ID" = "ubuntu" ]; then shortdist=ubu2004
LinVer=Ubuntu echo set
else elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then
echo "this OS is not supported" shortdist=deb10
echo set
elif [[ "${dist}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then
shortdist=cent8
echo set
else
echo "This os in not supported"
fi
fi fi
###Fetching Confgs #OS Handeler
curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/config/Universal_20auto-upgrades -o /etc/apt/apt.conf.d/20auto-upgrades > $OUTPUT 2>&1
curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/config/"$LinVer"_50unattended-upgrades -o /etc/apt/apt.conf.d/50unattended-upgrades > $OUTPUT 2>&1 if [ "$shortdist" = "ubu1804" ] || [ "$shortdist" = "ubu2004" ] || [ "$shortdist" = "deb10" ] ; then
##Setting Configname
if [ "$shortdist" = "ubu1804" ] || [ "$shortdist" = "ubu2004" ] ; then
LinVer=Ubuntu
elif [ "$shortdist" = "deb10" ]; then
LinVer=Debian
fi
##Fetching Confgs
curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/config/apt/Universal_20auto-upgrades -o /etc/apt/apt.conf.d/20auto-upgrades > $OUTPUT 2>&1
curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/config/apt/"$LinVer"_50unattended-upgrades -o /etc/apt/apt.conf.d/50unattended-upgrades > $OUTPUT 2>&1
elif [ "$shortdist" = "cent8" ]; then
##Fetching Confgs
curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/config/dnf/Cent8_automatic.conf -o /etc/apt/apt.conf.d/50unattended-upgrades > $OUTPUT 2>&1
fi

1
config/dnf.pkg.list Normal file
View File

@@ -0,0 +1 @@
dnf-automatic

View File

@@ -0,0 +1,81 @@
[commands]
# What kind of upgrade to perform:
# default = all available upgrades
# security = only the security upgrades
upgrade_type = security
random_sleep = 0
# To just receive updates use dnf-automatic-notifyonly.timer
# Whether updates should be downloaded when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
download_updates = yes
# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
apply_updates = yes
[emitters]
# Name to use for this system in messages that are emitted. Default is the
# hostname.
# system_name = my-host
# How to send messages. Valid options are stdio, email and motd. If
# emit_via includes stdio, messages will be sent to stdout; this is useful
# to have cron send the messages. If emit_via includes email, this
# program will send email itself according to the configured options.
# If emit_via includes motd, /etc/motd file will have the messages. if
# emit_via includes command_email, then messages will be send via a shell
# command compatible with sendmail.
# Default is email,stdio.
# If emit_via is None or left blank, no messages will be sent.
emit_via = stdio
[email]
# The address to send email messages from.
email_from = root@localhost
# List of addresses to send messages to.
email_to =
# Name of the host to connect to to send email messages.
email_host = localhost
[command]
# The shell command to execute. This is a Python format string, as used in
# str.format(). The format function will pass a shell-quoted argument called
# `body`.
# command_format = "cat"
# The contents of stdin to pass to the command. It is a format string with the
# same arguments as `command_format`.
# stdin_format = "{body}"
[command_email]
# The shell command to use to send email. This is a Python format string,
# as used in str.format(). The format function will pass shell-quoted arguments
# called body, subject, email_from, email_to.
# command_format = "mail -s {subject} -r {email_from} {email_to}"
# The contents of stdin to pass to the command. It is a format string with the
# same arguments as `command_format`.
# stdin_format = "{body}"
# The address to send email messages from.
email_from = root@localhost
# List of addresses to send messages to.
email_to =
[base]
# This section overrides dnf.conf
# Use this to filter DNF core messages
debuglevel = 1

View File

@@ -1,40 +1,123 @@
#!/bin/bash #!/bin/bash
###################################
# Unattended Security Updates #
###################################
############################### ###############################
# @author: Bram Prieshof # # @author: Bram Prieshof #
# @author: Branco van de Waal # # @author: Branco van de Waal #
############################### ###############################
##--------------## ##-----------------##
# Pre-Config # # Defining Vars #
##--------------## ##-----------------##
if [ -z "$PKGI" ] || [ -z "$PKGM" ]
then #Enforcing Legacy Mode
PKGM="apt" APTMODE="apt"
PKGI="${PKGM} install -y" OUTPUT='/dev/tty'
IMODE=l
#OS Detection
dist_ver=$(grep --color=never -Po "^VERSION_ID=\K.*" "/etc/os-release")
dist=$(grep --color=never -Po "^ID=\K.*" "/etc/os-release")
if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then
PKGM="$APTMODE"
PKGI="${PKGM} install -y --no-install-recommends"
PKGLIST="apt"
shortdist=ubu1804
elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then
PKGM="$APTMODE"
PKGI="${PKGM} install -y --no-install-recommends"
PKGLIST="apt"
shortdist=ubu2004
elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then
PKGM="$APTMODE"
PKGI="${PKGM} install -y --no-install-recommends"
PKGLIST="apt"
shortdist=deb10
elif [[ "${dist}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then
PKGM="dnf"
PKGI="${PKGM} install --setopt=install_weak_deps=False --best -y"
PKGLIST="dnf"
shortdist=cent8
exit
else
echo "This OS is not supported"
exit
fi fi
unset dist_ver dist APTMODE
#Repo Vars
repo=https://git.ictmaatwerk.com/VPS-scripts/Unattended-Security-Updates
branch=master
branchtype=branch
mtype=""$repo"/raw/"$branchtype"/"$branch""
#SelfBuilding Vars
PKGI="${PKGM} install -y"
##---------------##
# Functions #
##---------------##
msg () {
echo "$1"
}
##--------------------------##
# Installer-Requirements #
##--------------------------##
msg " Starting installer" 8 78
$PKGM update > $OUTPUT 2>&1
$PKGI curl > $OUTPUT 2>&1
##-------------------------##
# Generating APT list #
##-------------------------##
#General aptList
if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/generic.pkg.list; then
curl "$mtype"/generic.pkg.list >>/tmp/pkg.list
fi
if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/"$PKGLIST".pkg.list; then
curl "$mtype"/"$PKGLIST".pkg.list >>/tmp/pkg.list
fi
##--------------------##
# Pre-Requirements #
##--------------------##
msg " Preconfiguring"
$PKGM update $PKGM update
$PKGM upgrade -y
##-------------## ##-------------##
# Installer # # Installer #
##-------------## ##-------------##
$PKGI unattended-upgrades
##----------------## $PKGM update
# OS Detection # cat /tmp/pkg.list | xargs $PKGI
##----------------##
source /etc/os-release
if [ "$ID" = "debian" ]; then ##---------------##
LinVer=Debian # Configuring #
elif [ "$ID" = "ubuntu" ]; then ##---------------##
LinVer=Ubuntu
else if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/conf.sh; then
echo "this OS is not supported" source <(curl --retry 7 --retry-delay 5 -s "$mtype"/conf.sh)
fi fi
##-----------##
# Configs # ##-------##
##-----------## # end #
curl --retry 7 --retry-delay 5 -s https://git.ictmaatwerk.com/VPS-scripts/Unattended-Security-Updates/raw/branch/master/config/Universal_20auto-upgrades -o /etc/apt/apt.conf.d/20auto-upgrades ##-------##
curl --retry 7 --retry-delay 5 -s https://git.ictmaatwerk.com/VPS-scripts/Unattended-Security-Updates/raw/branch/master/config/"$LinVer"_50unattended-upgrades -o /etc/apt/apt.conf.d/50unattended-upgrades
msg " Done!"