La mise en place rapide d'un environnement serveur Linux virtuel, propre et administrable à distance, représente une compétence fondamentale pour les ingénieurs DevOps et les développeurs. Ubuntu 18.04.6 LTS Server, en tant que version à support étendu, est fréquemment privilégiée pour sa robustesse et sa large compatibilité logicielle. Cet article s'éloigne des approches didactiques conventionnelles pour se concentrer sur les points de décision cruciaux et les embûches courantes lors du déploiement, vous guidant de l'obtention de l'image d'installation à la connexion SSH sécurisée en un minimum de temps.
- Acquisition et Vérification de l'Image
1.1 Sélection des Sources de Téléchargement
Accéder directement à releases.ubuntu.com pour télécharger l'image officielle d'Ubuntu peut s'avérer lent selon votre localisation. Voici des alternatives reconnues pour une meilleure vitesse :
- Miroirs nationaux ou régionaux (fortement recommandé) :
- Miroir Alibaba Cloud : https://mirrors.aliyun.com/ubuntu-releases/
- Miroir NetEase : http://mirrors.163.com/ubuntu-releases/
- Miroir Huawei Cloud : https://mirrors.huaweicloud.com/ubuntu-releases/
Astuce de vérification de vitesse : Utilisez la commande curl pour estimer le débit de téléchargement :
curl -s --output /dev/null --write-out '%{speed_download}\n' https://mirrors.aliyun.com/ubuntu-releases/18.04.6/ubuntu-18.04.6-live-server-amd64.iso
1.2 Validation de l'Intégrité de l'Image
Après le téléchargement, la vérification du hachage SHA256 est primordiale pour s'assurer que le fichier n'a pas été corrompu ou altéré :
echo "a376a8e9e5e5a6d6e5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5 ubuntu-18.04.6-live-server-amd64.iso" | sha256sum -c
Important : Le hachage exact doit être obtenu sur le site officiel d'Ubuntu. L'exemple ci-dessus est un format indicatif.
- Optimisation de la Configuration de la Machine Virtuelle VMware
2.1 Décisions Clés lors de la Création de la VM
Lors de la création d'une nouvelle machine virtuelle dans VMware Workstation Pro, certains choix influencent grandement les performances et la stabilité :
| Paramètre | Recommandation | Motivation |
|---|---|---|
| Type de firmware | UEFI | Meilleure compatibilité et démarrage plus rapide |
| Type de contrôleur de disque | SCSI | Performances supérieures à IDE, compatibilité étendue |
| Mode de connexion réseau | NAT | Accès internet simple, idéal pour la plupart des scénarios de développement |
| Mémoire vive (RAM) | ≥ 2 Go | Assure une exécution fluide du système et des services |
| Cœurs de CPU | ≥ 2 | Prévient les goulots d'étranglement pour les tâches intensives comme la compilation |
2.2 Erreurs de Configuration Courantes
- Allocation d'espace disque :
- L'allocation par défaut de 20 Go est souvent insuffisante pour un environnement serveur.
- Allouez au moins 40 Go, surtout si vous prévoyez d'exécuter des conteneurs ou des applications gourmandes en données.
- Disque à extension dynamique vs. Pré-alloué : Utilisez l'extension dynamique pour économiser de l'espace en développement ; le pré-alloué est préférable pour des tests de performance en pré-production.
- Choix du mode réseau :
- Mode Pont (Bridged) : La VM obtient une adresse IP distincte sur le réseau physique, mais peut entrer en conflit avec les politiques réseau d'entreprise.
- Mode NAT : La VM partage l'adresse IP de l'hôte, idéal pour la majorité des environnements de développement.
- Mode Hôte-seulement (Host-Only) : Isole la VM du réseau externe, utile pour des tests sécurisés sans accès internet.
- Étapes Cruciales de l'Installation du Système
3.1 Configuration Optimale durant l'Installation
L'installateur d'Ubuntu Server est épuré, mais ces points méritent une attention particulière :
- Source des paquets (Miroir APT) :
- Remplacez la source par défaut par un miroir local ou national dès l'installation.
- Exemples :
http://fr.archive.ubuntu.com/ubuntuouhttps://mirrors.tuna.tsinghua.edu.cn/ubuntupour la Chine.
- Schéma de partitionnement :
- Option simple : Partitionnement automatique du disque entier.
- Option avancée (recommandée pour un serveur) :
/boot: 1 Goswap: 1 à 1.5 fois la RAM/(racine) : 70% de l'espace restant/home: Les 30% restants (si des utilisateurs locaux sont prévus)
- Sélection de logiciels essentiels :
- Assurez-vous de cocher
OpenSSH serverpour l'administration à distance. - Pour un environnement de production,
standard system utilitiesest également essentiel.
- Assurez-vous de cocher
3.2 Configurations Post-Premier Démarrage
Après le premier démarrage, exécutez immédiatement ces commandes pour mettre à jour votre système :
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl htop
Conseil : htop est un excellent outil de surveillance des processus et des ressources.
- Configuration et Accès SSH Distant
4.1 S'assurer que le Service SSH Fonctionne
Vérifiez le statut du service SSH :
sudo systemctl status sshd
Si le service n'est pas actif, utilisez cette commande pour l'activer et le démarrer :
sudo systemctl enable --now sshd
4.2 Recommandations de Sécurisation
- Changer le port par défaut (optionnel, mais conseillé) : ```
sudo sed -i 's/^#Port 22/Port 22022/' /etc/ssh/sshd_config
sudo systemctl restart sshd
- Désactiver la connexion root directe : ```
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl reload sshd
- Mettre en place l'authentification par clés SSH : ```
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... votre_cle_publique_ici" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Remplacez `"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... votre_cle_publique_ici"` par votre propre clé publique.
4.3 Exemples de Connexion Client SSH
Utilisez la commande ssh standard depuis votre terminal ou un client graphique comme PuTTY/Termius :
ssh votre_utilisateur@adresse_ip_machine_virtuelle -p 22022
- Maintenance et Diagnostic
5.1 Diagnostic des Problèmes de Connexion Réseau
Si la connexion SSH échoue, suivez ces étapes de dépannage :
- Vérifiez l'état de l'adaptateur réseau de la VM dans VMware.
- Confirmez l'adresse IP de la VM depuis la console : ```
ip a
- Testez la connectivité réseau depuis la VM : ```
ping 8.8.8.8
5.2 Surveillance et Optimisation des Performances
Installez des utilitaires de surveillance essentiels :
sudo apt install -y sysstat
Commandes de surveillance courantes :
- Surveillance en temps réel des processus :
htop - Statistiques d'E/S disque :
iostat -x 1 - Statistiques des connexions réseau :
ss -tulpn
5.3 Stratégie de Gestion des Instantanés (Snapshots)
Il est recommandé de prendre des instantanés VMware à des moments clés :
- Après l'installation initiale du système d'exploitation.
- Avant l'installation ou la configuration de logiciels majeurs.
- Avant toute mise à jour importante du système.
Exemples de noms d'instantanés : "Installation_Initiale_20240615", "Avant_Config_Nginx", "Post_MiseAJour_Securite".
- Techniques de Configuration Avancées
6.1 Configuration des Dossiers Partagés
Pour partager des fichiers entre l'hôte et la machine virtuelle :
- Configurez un dossier partagé dans les paramètres de la VM VMware.
- Installez les VMware Tools sur la VM : ```
sudo apt install -y open-vm-tools
- Montez le répertoire partagé : ```
sudo mount -t fuse.vmhgfs-fuse .host:/repertoire_partage /media/vm_shares -o uid=1000,gid=1000,allow_other
6.2 Configuration d'une Adresse IP Statique
Pour un environnement nécessitant une IP fixe, modifiez la configuration réseau via Netplan :
sudo nano /etc/netplan/50-cloud-init.yaml
Ajoutez ou modifiez le contenu comme suit (adaptez à votre réseau) :
network:
version: 2
renderer: networkd
ethernets:
ens160: # Adaptez le nom de l'interface si différent (ex: eth0, enp0s3)
dhcp4: no
addresses: [192.168.10.150/24]
gateway4: 192.168.10.1
nameservers:
addresses: [9.9.9.9, 1.1.1.1]
Appliquez la nouvelle configuration :
sudo netplan apply
6.3 Fuseau Horaire et Synchronisation
Définissez le fuseau horaire correct :
sudo timedatectl set-timezone Europe/Paris
Installez le service NTP pour une synchronisation horaire précise :
sudo apt install -y ntp
sudo systemctl enable --now ntp
- Mise en Place Rapide d'un Environnement de Développement
7.1 Chaîne d'Outils de Développement Essentielle
Installez les outils de base :
sudo apt install -y git build-essential python3-dev
7.2 Configuration de l'Environnement Docker
- Installez Docker : ```
sudo apt install -y docker.io
sudo systemctl enable --now docker
- Ajoutez votre utilisateur au groupe
dockerpour éviter d'utilisersudoconstamment : ``` sudo usermod -aG docker $USER - Configurez un miroir de registre Docker pour accélérer les téléchargements d'images : ```
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl restart docker
7.3 Environnement Virtuel Python
Créez des environnements Python isolés pour vos projets :
python3 -m venv ~/projets/mon_app_env
source ~/projets/mon_app_env/bin/activate