14 sept. 2015

installation minimaliste de CentOS 7

Mieux vaut tard que jamais, j'ai commencé à jouer un peu avec CentOS 7 ! Bien que celle-ci regorge de fonctionnalités et de mécanismes intéressants, elle amène beaucoup de paquets logiciels. J'ai donc commencé par regarder ce que je pouvais retirer comme paquets, et à préparer une section _packages_ minimaliste, bien plus que l'image iso "minimal install" fournie par les miroirs. Cette liste de paquets retirés peut se voir complétée par une liste de paquets à installer, mais il s'agit d'un choix personnel. Qu'ai-je donc retiré ? Et bien c'est simple, comme il s'agit généralement d'une installation sur une machine physique ou virtuelle reliée en réseau filaire et disposant d'une adresse IP fixe (sauf lors de l'installation), j'ai retiré tous les firmwares possibles de matériel que je n'utilise probablement pas, comme les cartes Wifi. J'ai aussi enlevé, usage serveur oblige, des paquets liés au son (alsa). Un choix discutable, j'ai retiré man et les pages de manuel de base : je considère, en particulier si la machine est "en production", que la documentation n'a rien à faire à cet endroit. Je n'ai, par contre, rien à redire à l'installation des pages de manuel sur une machine de test. De plus, comme j'utilise le système de fichiers proposé par défaut (xfs), j'estime ne pas avoir besoin des outils pour gérer les systèmes ext2-3-4 ou btrfs.

Voici donc, la liste :

%packages --nobase
@core
-NetworkManager
-NetworkManager-team
-NetworkManager-tui
-aic94xx-firmware
-alsa-firmware
-alsa-lib
-alsa-tools-firmware
-atmel-firmware
-avahi-autoipd
-avahi-libs
-b43-openfwwf
-bfa-firmware
-biosdevname
-btrfs-progs
-dhclient
-dmidecode
-dnsmasq
-dracut-network
-e2fsprogs
-e2fsprogs-libs
-gnutls
-kexec-tools
-ipw2100-firmware
-ipw2200-firmware
-ivtv-firmware
-iwl100-firmware
-iwl1000-firmware
-iwl105-firmware
-iwl135-firmware
-iwl2000-firmware
-iwl2030-firmware
-iwl3160-firmware
-iwl3945-firmware
-iwl4965-firmware
-iwl5000-firmware
-iwl5150-firmware
-iwl6000-firmware
-iwl6000g2a-firmware
-iwl6000g2b-firmware
-iwl6050-firmware
-iwl7260-firmware
-libertas-usb8388
-man
-man-db
-mariadb-libs
-postfix
-ql2100-firmware
-ql2200-firmware
-ql23xx-firmware
-ql2400-firmware
-ql2500-firmware
-rt61pci-firmware
-rt73usb-firmware
-snappy
-teamd
-tuned
-virt-what
-wpa_supplicant
-xorg-x11-drv-ati-firmware
-zd1211-firmware

Il y a de fortes chances que pour une machine vraiment en production, j'ai besoin d'un MTA, mais à moins de prévoir une configuration dès l'installation, postfix fait aussi partie des exclus. De cette manière, non seulement le système s'installe rapidement, mais il démarre aussi rapidement ! On arrive à un total inférieur à 220 paquets. Cela peut varier pour vous en particulier si vous installez un système avec du RAID logiciel, qui nécessitera l'installation de mdadm.

Et vous, est-ce que vous retireriez d'autres paquets ?

8 août 2011

Installation minimaliste d'une CentOS 6

Suite à un billet précédent sur l'installation d'un domU Enterprise Linux sur un dom0 NetBSD, et à la sortie de CentOS 6.0, j'ai fait quelques essais d'installations de cette distribution.

Il n'y a pas d'énormes différences entre le billet cité et CentOS 6.0, juste quelques surprises. La première est au niveau de l'installation en mode texte, qui perd en possibilités, il n'est par exemple plus possible de personnaliser son partitionnement ou la liste des packages. Il faudra préférer une installation via VNC, qui permet d'afficher l'interface graphique. Les limitations en mémoire de RHEL 6 sont d'ailleurs valable pour CentOS 6, attention donc à attribuer assez de mémoire vive, au moins lors de l'installation, pour obtenir l'interface graphique.

J'ai donc décidé de passer par Kickstart pour quelques installations, et là aussi, il y a quelques changements, comme par exemple certains champs optionnels devenus obligatoires. Voici donc un exemple de kickstart commenté pour une installation minimaliste (mais pas minimale) personnalisée :

# Langue et zone horaire
lang fr_FR
keyboard fr 
timezone --utc Europe/Paris
# J'utilise Xen, donc je shutdown pour modifier le noyau d'installation en pygrub
shutdown
text
# on peut chiffrer le mdp root
rootpw changemonmdprootsvp
# j'autorise quelques services du firewall, la configuration au premier boot mais pas de SELinux par contre 
firewall --service=ssh --service=smtp
firstboot --enable
selinux --disabled
# Configuration du réseau
network --device eth0 --bootproto dhcp
# Paramétrage du disque dur : bootloader et partitionnement. Attention, on efface tout !
bootloader --location=mbr --driveorder=xvda
authconfig --enableshadow --passalgo=sha512
clearpart --all --initlabel --drives=xvda
part /boot --fstype ext3 --size 500 
part swap --size 512 
part / --fstype ext3 --size 5000
part /home --fstype ext3 --size 1200
part /var --fstype ext3 --size 400 --grow
# On fait une installation par le réseau, pensez à modifier ces urls par celles qui vous correspondent
# De plus, les dépôts updates et extras sont ajoutés pour que le système soit à jour dès l'installation
url --url http://monmiroirlocal/pub/CentOS/6/os/x86_64/
repo --name=updates --baseurl=http://monmiroirlocal/pub/CentOS/6/updates/x86_64/
repo --name=extras --baseurl=http://monmiroirlocal/pub/CentOS/6/extras/x86_64/
# C'est là qu'on s'amuse avec la liste des paquets.
# --nobase permet une installation très légère, mais il faut au moins le groupe @Core
# A noter que je refuse l'installation de nombreux firmwares matériels car je suis en VM.
%packages --nobase
@Core
ntp
openssh-clients
wget
vim-enhanced
-b43-openfwwf
-kernel-firmware
-aic94xx-firmware
-atmel-firmware
-bfa-firmware
-ipw2100-firmware
-ipw2200-firmware
-ivtv-firmware
-iwl1000-firmware
-iwl3945-firmware
-iwl4965-firmware
-iwl5000-firmware
-iwl5150-firmware
-iwl6000-firmware
-iwl6050-firmware
-libertas-usb8388
-ql2100-firmware
-ql2200-firmware
-ql23xx-firmware
-ql2400-firmware
-ql2500-firmware
-rt61pci-firmware
-rt73usb-firmware
-xorg-x11-drv-ati-firmware
-zd1211-firmware

# La post-installation me permet de récupérer et d'appliquer des configurations spécifiques
# Très pratique pour déboguer, l'option --log :)
%post --log=/root/postinstall.log
wget http://monmiroirlocal/pub/cfg/c6postinstall/prompt.sh -O /etc/profile.d/prompt.sh
wget http://monmiroirlocal/pub/cfg/c6postinstall/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo
wget http://monmiroirlocal/pub/cfg/c6postinstall/ntp.conf -O /etc/ntp.conf
wget http://monmiroirlocal/pub/cfg/c6postinstall/main.cf -O /etc/postfix/main.cf
chkconfig ntpd on
chkconfig postfix on

Avec ce genre d'installation, on tombe à moins de 200 paquets installés :)

Propulsé par Dotclear