Configuration post-installation d'un conteneur LXC Ubuntu 20.04

Environnement

L'environnement est fourni à titre indicatif afin d'identifier d'éventuelles divergences de résultats en cas d'utilisation du script dans un environnement proche mais néanmoins différent.

  • Hyperviseur Proxmox 7
  • Conteneur LXC Ubuntu 20.04

Description

Ce script effectue les modifications suivantes :

  • Paramétrage des locales
  • Paramétrage du fuseau horaire
  • Mise à jour du système et des logiciels
  • Installation de divers logiciels d'administration système et réseau
  • Application automatique des mises à jour de sécurité
  • Activation de l'autocomplétion du compte root
  • Nettoyage des paquets inutiles

/!\ Dans l'ensemble du script, modifier la valeur email@domaine.lan par l'adresse email de votre choix

1. Paramétrage des locales et du fuseau horaire

#! /bin/bash
# ubuntu20.04-container-lxc-postinstall-light.sh
# Script de configuration d'un container LXC Proxmox Ubuntu 20.04

# Parametrage des locales
# Parametrage du fuseau horaire
# Mise a jour du système et des logiciels
# Installation de divers logiciels d'administration systeme et reseau
# Application automatique des mises à jour de securite
# Activation de l'autocompletion du compte root
# Nettoyage des paquets inutiles

# update 2019-01-14 : config /etc/apt/apt.conf.d/50unattended-upgrades
# update 2019-03-10 : auto-completion root
# update 2022-01-04 : adaptation a Ubuntu 20.04

echo "###############################################################################"
echo "locales & time"
echo "###############################################################################"

dpkg-reconfigure locales
dpkg-reconfigure tzdata

2. Mise à jour du système et installation des logiciels de base

echo "###############################################################################"
echo "Update"
echo "###############################################################################"

apt update
apt -y dist-upgrade
apt install -y iotop most ncdu vfu iptraf iftop htop tree sysstat mc lshw net-tools locate

3. Installation quotidienne des mises à jour de sécurité

apt install -y unattended-upgrades
echo "###############################################################################"
echo "Installation quotidienne des mises à jour de securite"
echo "###############################################################################"

cp -p /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak

sed -i 's,//Unattended-Upgrade::AutoFixInterruptedDpkg "true";,Unattended-Upgrade::AutoFixInterruptedDpkg "true";,' /etc/apt/apt.conf.d/50unattended-upgrades
sed -i 's,//Unattended-Upgrade::MinimalSteps "true";,Unattended-Upgrade::MinimalSteps "true";,' /etc/apt/apt.conf.d/50unattended-upgrades
sed -i 's,//Unattended-Upgrade::Mail "";,Unattended-Upgrade::Mail "email@domaine.lan";,' /etc/apt/apt.conf.d/50unattended-upgrades
sed -i 's,//Unattended-Upgrade::MailReport "on-change";,Unattended-Upgrade::MailReport "on-change";,' /etc/apt/apt.conf.d/50unattended-upgrades
sed -i 's,//Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";,Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";,' /etc/apt/apt.conf.d/50unattended-upgrades
sed -i 's,//Unattended-Upgrade::Remove-New-Unused-Dependencies "true";,Unattended-Upgrade::Remove-New-Unused-Dependencies "true";,' /etc/apt/apt.conf.d/50unattended-upgrades
sed -i 's,//Unattended-Upgrade::Remove-Unused-Dependencies "false";,Unattended-Upgrade::Remove-Unused-Dependencies "true";,' /etc/apt/apt.conf.d/50unattended-upgrades
echo 'APT::Periodic::Download-Upgradeable-Packages "1";' >> /etc/apt/apt.conf.d/20auto-upgrades
echo 'APT::Periodic::AutocleanInterval "7";' >> /etc/apt/apt.conf.d/20auto-upgrades
apt install apticron -y
cp -p /usr/lib/apticron/apticron.conf  /etc/apticron/apticron.conf
sed -i 's/EMAIL="root"/EMAIL="email@domaine.lan"/' /etc/apticron/apticron.conf

4. Auto-completion root

echo "if [ -f /etc/bash_completion ] && ! shopt -oq posix; then" >> /root/.bashrc
echo "    . /etc/bash_completion" >> /root/.bashrc
echo "fi" >> /root/.bashrc

5. Nettoyage

echo "###############################################################################"
echo "Nettoyage"
echo "###############################################################################"

apt clean
apt autoclean
apt autoremove