@@ -116,6 +116,52 @@ install_unattendedupgrades() {
116116 fi
117117}
118118
119+ # UNATTENDED UPGRADES SETUP: Enable unattended upgrades and set the configuration
120+ setup_unattendedupgrades () {
121+ # Check and configure unattended-upgrades config file
122+ unattended_config_file=" /etc/apt/apt.conf.d/50unattended-upgrades"
123+ if [ ! -f " $unattended_config_file " ]; then
124+ echo -e " \e[31m \n\n WARNING: $unattended_config_file should have been created by the unattended-upgrades package \n\n \e[0m" 2>&1 | tee -a $LOG_FILE
125+ return 1
126+ fi
127+
128+ # Enable automatic removal of unused dependencies and disable automatic reboot
129+ modify_config_file " $unattended_config_file " ' Unattended-Upgrade::Remove-Unused-Dependencies' ' true'
130+ modify_config_file " $unattended_config_file " ' Unattended-Upgrade::Automatic-Reboot' ' false'
131+
132+ # Check and configure auto-upgrades config file
133+ auto_upgrades_file=" /etc/apt/apt.conf.d/20auto-upgrades"
134+ if [ ! -f " $auto_upgrades_file " ]; then
135+ # Create the file
136+ echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean true | debconf-set-selections
137+ dpkg-reconfigure -f noninteractive unattended-upgrades
138+
139+ # Check if the file was created
140+ if [ ! -f " $auto_upgrades_file " ]; then
141+ echo -e " \e[31m \n\n WARNING: $auto_upgrades_file could not be created \n\n \e[0m" 2>&1 | tee -a $LOG_FILE
142+ return 1
143+ fi
144+ fi
145+
146+ # Enable automatic updates and unattended-upgrades (file should exist now)
147+ modify_config_file " $auto_upgrades_file " ' APT::Periodic::Update-Package-Lists' ' 1'
148+ modify_config_file " $auto_upgrades_file " ' APT::Periodic::Unattended-Upgrade' ' 1'
149+
150+ echo -e " \e[32m \n\n Verified unattended-upgrades installation and setup. \n\n \e[0m" 2>&1 | tee -a $LOG_FILE
151+ }
152+
153+ # UNATTENDED UPGRADES SETUP: Auxiliary function to modify a setting in a config file
154+ modify_config_file () {
155+ local config_file=" $1 "
156+ local config_setting_key=" $2 "
157+ local config_setting_value=" $3 "
158+ # Remove any appearances of the key from the file
159+ sed -i " /^$config_setting_key .*/d" " $config_file "
160+ # Add the updated setting
161+ echo " $config_setting_key \" $config_setting_value \" ;" >> " $config_file "
162+ }
163+
164+
119165# HOST UPDATE
120166host_update () {
121167 apt-get update 2>&1 | tee -a $LOG_FILE
0 commit comments