Un nouveau serveur

Posted on Thu 11 March 2021 in Hosting

Commande et installation

Une fois n’est pas coutume, c’est de nouveau chez Kimsufi que je retourne : je n’ai pas encore trouvé de meilleur rapport qualité/prix pour des vrais serveurs dédiés. Mon choix se porte cette fois sur un modèle KS-12, équipé de 32GO de RAM, d’un processeur Xeon W3520 et d’un RAID de 2×2TO et donc quelque chose de confortable. Ce serveur est physiquement basé à Roubaix dans le datacenter RBX31.

La commande se passe sans problème et 120 secondes plus tard (je n’ai pas chronométré et je suis quasiment sûr que c’était moins que ça), j’avais reçu un courriel me confirmant la mise à disposition du serveur avec son IP et les informations nécessaires.

Un petit tour sur la console de gestion de Kimsufi pour faire l’installation de l’OS : et là, première déconvenue ! Enfin, déconvenue, pas vraiment, le terme est un peu fort… Premier zut ! Il n’y a pas ma distribution fétiche dans la liste des templates pour ce serveur alors que je l’avais sur mon précédent… Point donc d’Archlinux. Tant pis, je ferais autrement. Voyons voir la liste. Je commence par filtrer en enlevant les vieilles versions histoire d’être plutôt bien à jour, j’ai donc le choix entre2 :

  • Centos
  • Citrix XenServer
  • Debian
  • Fedora
  • Proxmox VE
  • Ubuntu Server
  • VMWare ESXi
  • et Xubuntu Desktop

Alors on oublie tout de suite la Xubuntu Desktop. Déjà parce que le Desktop dans le nom me fait dire qu’il va y avoir une interface graphique et que c’est pas une distribution très orienté serveur, et ensuite parce que la version proposé date de 2016 : pas de première fraîcheur donc !

VMWare ESXi, Proxmox VE et Citrix XenServer étant dédié à la supervision de machine virtuelle, je les mets de côté aussi : même si j’ai pas mal de RAM disponible sur ce serveur, ce n’est pas mon but de faire plein de VM.

Il m’en reste 4 donc. Pour l’utiliser dans mon travail, je sais que la CentOS me donne des boutons. Je n’ai jamais utilisé Fedora, et si je peux éviter les Ubuntu un peu trop playschool à mon goût (même si je dois reconnaître que c’est Ubuntu 7.10 qui m’a mis le pied à l’étrier pour entrer dans le monde merveilleux de ce que j’appelais alors les OS alternatifs) me voilà donc parti sur une valeur sûr : la Debian 10 Buster.

Au moment de l’installation, je sélectionne mon plan de partition : je choisis un /home séparé au moins, parce que j’ai l’habitude de faire comme ça. Quant au choix du système de fichier, il est très restreint : ext3, ext4 ou xfs. Je prends du ext4 pour tout avant d’adapter après l’installation. Un petit tour sur la page Wikipedia de la mythologie nordique et après Asgard, Midgard, Hellheim, Thor, et Odin, ce nouveau serveur sera donc baptisé Alfheim.

Au terme de l’installation, un nouveau courriel arrive avec la confirmation de l’installation, un lien pour récupérer le mot de passe installer sur la machine et on m’invite à me connecter dessus via ssh debian@<ip>.

Première connexion

Arrivé sur la bête petit contrôle de la machine :

head /proc/cpuinfo
# processor : 0
# vendor_id : GenuineIntel
# cpu family    : 6
# model     : 26
# model name    : Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
# stepping  : 5
# microcode : 0x11
# cpu MHz       : 1599.911
# cache size    : 8192 KB
# physical id   : 0
free -h
#               total        used        free      shared  buff/cache   available
# Mem:           31Gi       166Mi        31Gi       8.0Mi       122Mi        30Gi
# Swap:          31Gi          0B        31Gi
df -h
# Filesystem          Size    Used    Avail Use% Mounted on
# ...
# /dev/md2            63G     1.4G      59G   3% /
# ...
# /dev/mapper/vg-home 1.8T     17M     1.8T   1% /home
cat /proc/mdstat
# Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
# md2 : active raid1 sda2[0] sdb2[1]
#       67043328 blocks super 1.2 [2/2] [UU]
# 
# md4 : active raid1 sda4[1] sdb4[0]
#       1869494336 blocks super 1.2 [2/2] [UU]
#       bitmap: 0/14 pages [0KB], 65536KB chunk
# 
# unused devices: <none>
lsblk
# NAME          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
# fd0             2:0    1     4K  0 disk
# sda             8:0    0   1.8T  0 disk
# ├─sda1          8:1    0 987.5K  0 part
# ├─sda2          8:2    0    64G  0 part
# │ └─md2         9:2    0    64G  0 raid1 /
# ├─sda3          8:3    0    16G  0 part  [SWAP]
# ├─sda4          8:4    0   1.8T  0 part
# │ └─md4         9:4    0   1.8T  0 raid1
# │   └─vg-home 253:0    0   1.8T  0 lvm   /home
# └─sda5          8:5    0     2M  0 part
# sdb             8:16   0   1.8T  0 disk
# ├─sdb1          8:17   0 987.5K  0 part
# ├─sdb2          8:18   0    64G  0 part
# │ └─md2         9:2    0    64G  0 raid1 /
# ├─sdb3          8:19   0    16G  0 part  [SWAP]
# └─sdb4          8:20   0   1.8T  0 part
#   └─md4         9:4    0   1.8T  0 raid1
#     └─vg-home 253:0    0   1.8T  0 lvm   /home

Ça me semble pas mal ! On est bien sur un Intel Xeon W3520, il y a bien 32GO de RAM disponible, et 2 disques de 2TO monté en RAID 1. Pas de surclassement surprise mais totalement conforme à ce qui a été commandé.

Une petite mise à jour…

apt update
# Hit:1 http://deb.debian.org/debian buster InRelease
# Hit:2 http://deb.debian.org/debian buster-updates InRelease
# Hit:3 http://security.debian.org/debian-security buster/updates InRelease
# Reading package lists... Done
# Building dependency tree
# Reading state information... Done
# All packages are up to date.
apt upgrade
# Reading package lists... Done
# Building dependency tree
# Reading state information... Done
# Calculating upgrade... Done
# 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Rien à faire, c’est propre, le serveur est déjà installé à jour…

Post installation

Commençons tout de suite par le plus urgent : la protection du serveur. J’ai toujours utilisé iptables en recopiant religieusement les commandes que j’avais construite en me basant sur l’article du wiki d’Archlinux consacré (qui a certainement bien évolué depuis !) mais comme je ne fais pas vraiment de réseau compliqué – juste ouvrir les ports des services installés sur le serveur – je vais essayer ufw. Et donc installation, ouverture des ports pour OpenSSH (histoire de pas être bloqué dehors) et activation :

apt install ufw
ufw allow OpenSSH
ufw enable
ufw status
# Status: active
# 
# To                         Action      From
# --                         ------      ----
# OpenSSH                    ALLOW       Anywhere
# OpenSSH (v6)               ALLOW       Anywhere (v6)

Un brin de personnalisation

Histoire de se sentir un peu plus à la maison, quelques petites modification s’impose. Tout d’abord, je ne m’appelle pas debian, changeons donc le nom de l’utilisateur principal :

newlogin=johndoe
usermod -l "${newlogin}" debian
mv /home/debian "/home/${newlogin}"
usermod -d "/home/${newlogin}" "${newlogin}"
groupmod -n "${newlogin}" debian

On se sent un peu plus à la maison ! Ensuite, je vous avais dit que le choix de système de fichier était limité. Profitons de l’installation toute fraîche et du faible volume de donnée dans /home pour faire la bascule tout de suite. L’idée est de passer sur un btrfs avec la compression activée. Je lance donc :

apt install rsync # j’aurais pu m’en passer, mais il me le faudra à terme donc bon, autant que ce soit tout de suite…
apt install btrfs-progs
mkdir /tmp/home_tmp
rsync -avz /home/ /tmp/home_tmp/ # backup de l’ancien /home
umount /home
mkfs.btrfs -f -L home /dev/mapper/vg-home # création du système btrfs
mount -o compress=zstd /dev/mapper/vg-home /mnt # montage du nouveau système
btrfs subvolume create /mnt/@home # création du sous-volume de donnée
btrfs subvolume create /mnt/@snapshots # création du sous-volume dédié aux snapshots
umount /mnt
mount -o compress=zstd,subvol=@home /dev/mapper/vg-home /home # montage du /home
rsync -avz /tmp/home_tmp/ /home/ # restoration du backup
mkdir /home/.snapshots
mount -o compress=zstd,subvol=@snapshots /dev/mapper/vg-home /home/.snapshots # montage du point de snapshots

Et on adapte le /etc/fstab en conséquence.

Les utilitaires « on peut pas vivre sans »

On passe par apt pour installer les grands classiques que sont git, zsh et vim. Sans ce triplet, je suis complètement perdu ! Je récupère ensuite ma configuration personnelle pour zsh et vim sur mes dépôts Git, 2 ou 3 adaptations parce qu’évidemment, tout est prévu pour Archlinux dans ces dépôts et ça devrait rouler.

apt install git zsh vim
mkdir -p ~/.config/yapbreak
cd ~/.config/yapbreak
git clone https://gitlab.yapbreak.fr/configuration/zsh.git # Clone de la configuration de ZSH
git clone https://gitlab.yapbreak.fr/configuration/vim.git # Clone de la configuration de Vim

Et voilà, on va pouvoir commencer à installer des vraies choses sur cette petite bête !


  1. Au moment où j’écris ces lignes, nous sommes le lendemain de l’incendie qui a touché le datacenter OVH de Strasbourg. J’ai (j’avais ?) un VPS sur ce site et avec l’affluence que j’imagine sur l’interface de gestion OVH à ce moment là, j’ai mis un moment à savoir dans quel cluster il était ! Au moins, pour ce nouveau serveur, j’aurais l’information en direct. 

  2. Je ne parle volontairement pas de FreeBSD parce que je ne l’ai jamais pratiqué et que je n’ai pas forcément le temps de repartir sur un système aussi différent de ce que je connais, ni des Windows parce que… ben… enfin… voilà quoi…