Lorsque j’installe un serveur Oracle Linux – qu’il s’agisse d’une machine locale ou d’un serveur dédié avec une ouverture frontale sur Internet – je pars généralement d’une installation minimale que je configure ensuite « aux petits oignons ». La configuration post-installation d’une machine comporte toute une série d’opérations potentiellement chronophages.
- Peaufiner le shell Bash et l’éditeur Vim
- Rendre la console plus lisible
- Configurer les dépôts de paquets officiels et tiers
- Installer un jeu complet d’outils en ligne de commande
- Supprimer une poignée de paquets inutiles
- Rendre les logs système accessibles à l’utilisateur initial
- Désactiver l’IPv6 si l’on ne l’utilise pas
- Rendre le mot de passe persistant pour
sudo
- Etc.
Un principe de base de l’administration système, c’est qu’à partir du moment où une tâche est exécutée plusieurs fois, on va chercher à l’automatiser. La manière la plus simple de faire cela, c’est d’utiliser un script shell.
Je sais qu’il existe des solutions de configuration sophistiquées comme Ansible, Chef et Puppet. Pour ma part, j’ai toujours eu un faible pour les outils avec un os dans le nez, et j’utilise un bon vieux script shell fait maison. Différents chemins mènent à Saint-Bauzille-de-Putois.
Pour les impatients
Voici ce qu’il faut faire pour disposer d’un serveur Oracle Linux 7 « aux petits oignons ».
- Installer un système minimal Oracle Linux 7.
- Créer un utilisateur initial avec les privilèges d’administrateur.
- Installer Git :
sudo yum install git
- Récupérer le script :
git clone https://gitlab.com/kikinovak/oracle.git
- Changer dans le répertoire nouvellement créé :
cd oracle/
- Exécuter le script :
sudo ./linux-setup.sh --setup
- Boire un café en attendant que le script gère à peu près tout.
- Redémarrer.
Le cas échéant, on pourra passer le système en anglais pour l’utilisateur initial.
# ~/.bashrc ... LANG=en_US.utf8 export LANG
Détails techniques
Le script linux-setup.sh
fournit une série d’options dont voici les détails.
Configurer Bash et Vim et rendre la console plus lisible :
$ sudo ./linux-setup.sh --shell
Configurer les dépôts de paquets officiels et tiers :
$ sudo ./linux-setup.sh --repos
Pour en savoir plus sur les dépôts de paquets que j’utilise au quotidien, jetez un oeil sur cet article. Le cas échéant, lisez cette page pour en savoir plus sur les dépôts de paquets pour Oracle Linux 7.
Activer DeltaRPM et mettre à jour le système :
$ sudo ./linux-setup.sh --fresh
Installer les groupes de paquets Core
et Base
et quelques outils supplémentaires :
$ sudo ./linux-setup.sh --extra
Supprimer une poignée de paquets inutiles :
$ sudo ./linux-setup.sh --strip
Rendre les logs système accessibles à l’utilisateur initial :
$ sudo ./linux-setup.sh --logs
Désactiver l’IPv6 et reconfigurer les services de base ;
$ sudo ./linux-setup.sh --ipv4
Rendre le mot de passe persistant pour sudo
:
$ sudo ./linux-setup.sh --sudo
Exécuter toutes ces opérations de A à Z :
$ sudo ./linux-setup.sh --setup
Élaguer le système pour ne garder que le système de base amélioré :
$ sudo ./linux-setup.sh --reset
Afficher l’aide sur les options :
$ sudo ./linux-setup.sh --help
Si vous êtes curieux de savoir ce qui se passe exactement sous le capot, vous pouvez très bien ouvrir un deuxième terminal et afficher les logs à chaud.
$ tail -f /tmp/linux-setup.log
La procédure a été dûment testée sur une série de machines. Si vous l’utilisez sur vos serveurs et que vous rencontrez des problèmes, n’hésitez pas à m’en faire part dans les commentaires.
Pour l’instant, le script linux-setup.sh
est prévu pour une installation minimale d’Oracle Linux 7. En principe, il fonctionne déjà sous Oracle Linux 8 avec quelques différences, notamment pour les dépôts. Je m’y intéresserai de plus près en temps et en heure.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.