Introduction
Ce tuto fait parti d’un ensemble qui conduit à créer une infrastructure de serveurs web avec différents rôles : « [Tuto – Infrastructure Web – Debian 8] – Présentation et objectifs »
Il va vous permettre de créer la première machine virtuelle avec VirtualBox.
Cette machine va me servir de gabarit.
Elle possède uniquement le système et les outils de base et sera clonée à volonté pour créer plus rapidement d’autres VMs.
La procédure est en mode « pas à pas » et convient à tous (ou presque).
Comptez environ 2 à 3h suivant votre débit ADSL … et votre détermination.
Pré-requis
VirtualBox, pour la virtualisation
Que vous soyez sous Windows, Linux ou OS X, téléchargez et installez VirtualBox.
N’oubliez pas également d’installer le « VirtualBox Extension Pack ».
Tous les fichiers sont disponibles sur la page de téléchargement de VirtualBox.
Pour prendre en compte les différents drivers et cartes réseau installés, je vous recommande de rebooter votre machine avant de vous lancer.
Debian 8, l’iso pour l’installation
Dans ce tuto, j’utilise la version Net Install qui permet d’installer une distribution Debian par internet et avec les derniers paquets à jour.
Si vous comptez le temps de téléchargement des images iso en plus de l’installation, ce n’est pas forcément plus long que d’utiliser une image iso de 4Go.
J’irais même jusqu’à dire que ça me semble moins long puisqu’on ne télécharge que le strict nécessaire.
Avec l’image de 4Go, vous devrez effectuer une mise à jour supplémentaire qui peut durer assez longtemps.
A vous de voir.
A la rédaction de ce tuto c’est l’iso debian-8.1.0-amd64-netinst.iso qui était disponible.
vi(m), l’éditeur en ligne
Pour modifier rapidement les fichiers de conf ou installer de nouveaux programmes, il vaut mieux être à l’aise avec un éditeur en ligne comme vi ou vim.
Il existe aussi nano, mais je ne sais pas pourquoi, je n’y adhère pas du tout.
Trop proche d’un éditeur graphique peut-être.
A vous d’utiliser celui qui vous convient le mieux.
Création d’une nouvelle machine virtuelle
Dans VirtualBox :
- Cliquez sur le bouton « Nouvelle »
- Nom : « debian8-gabarit »
- Type : Linux
- Version : Debian (64 bit)
Cliquez sur le bouton « Suivant »
- Taille de la mémoire : 512 Mio (on ne rigole pas, c’est largement suffisant pour le moment.)
[Suivant] - Disque dur : « Créer un disque dur virtuel maintenant »
[Créer] - Type de fichier de disque dur : VDI
[Suivant] - Stockage sur disque du physique : « Dynamiquement alloué »
[Suivant] - Emplacement du fichier et taille
- Emplacement : laissez par défaut ou adaptez suivant votre configuration.
- Taille : 6 Gio
Cliquez sur le bouton « Créer »
Configurations supplémentaires
Ouvrez la configuration de la machine nouvellement créée.
- Onglet « Système > Carte mère » : décochez « Disquette »
- Onglet « Système > Processeur » : « Ressources allouées » à 80%
- Onglet « Stockage » :
- Sélectionnez le lecteur vide du CD-Rom
- Dans les attributs, cliquez sur le disque et sélectionnez « Choisissez un fichier cd CD/DVD virtuel »
- Sélectionnez le fichier iso d’installation de la distribution Debian
- Onglet « Son » : décochez « Activer le son »
- Onglet « Réseau » : pour la carte 1, utilisez le mode d’accès réseau « Accès par pont » et sélectionnez la carte physique de votre PC qui a accès à internet. Dans mon cas « wlp3s0 ».
- Cliquez sur le bouton « Ok »
Votre machine est prête à recevoir le système d’exploitation Linux Debian 8.
Installation de Debian 8
Lancez la machine virtuelle en cliquant sur le bouton « Démarrer »
Écran de démarrage :
Je recommande l’installation « normale », pas graphique.
Sélectionnez la situation géographique.
Chargement de composants supplémentaires…
Donnez un nom à la machine virtuelle.
Si vous le voulez, vous pouvez spécifier un domaine.
Attention, ne pas utiliser un domaine internet comme jbnet.fr, mais un domaine non routable sur internet comme jbnet.lan.
Configurez le mot de passe root (2 fois pour confirmer).
Configurez un utilisateur standard, c’est à dire sans les droits root (ou administrateur).
Ici, c’est le nom affiché, pas l’identifiant de connexion qui peut être différent.
Configurez l’identifiant de connexion de l’utilisateur standard.
Puis son mot de passe (2 fois pour confirmer).
Maintenant, nous allons créer le partitionnement suivant :
- /boot : 100 MB, type ext2
- swap : 2 GB, type swap
- / : le reste, type ext3
L’avantage est que pour les futures machines qui seront créées à partir du clone de cette VM, nous allons ajouter un 2nd disque dur qui sera taillé de façon plus fine pour accueillir les données spécifiques au rôle du serveur.
On pourra par exemple déplacer les répertoires /home et /var sur un nouveau disque qui aura la taille calculée en fonction du besoin.
Nous verrons tout cela plus en détails dans les tutos dédiés.
Note : pour plus de d’évolutivité, vous pouvez aussi passer au LVM.
Voir mon mémo « Debian – Agrandir une partition avec LVM »
Sélectionnez le disque :
Validez la création de la table des partitions sur ce disque :
Sélectionnez « Espace libre »
Créez une nouvelle partition :
Saisissez la taille de la partition :
Sélectionnez le type « Primaire » :
Sélectionnez l’emplacement « Début » :
Configurez la partition /boot :
- Utiliser comme : système de fichiers ext2
- Point de montage : /boot
Laissez le reste par défaut et sélectionnez « Fin du paramétrage de cette partition » :
Faîtes de même pour les autres partitions jusqu’à arriver à cette configuration.
Sélectionnez « Terminer le partitionnement et appliquer les changements » :
Sélectionnez « Oui » :
Le partitionnement est créé et l’installation du système de base commence :
Sélectionnez le pays du dépôt :
Sélectionnez le serveur (dans le doute, laissez par défaut) :
Si vous êtes dans un réseau avec un proxy, il faut saisir les paramètres du proxy sous cette forme :
1 |
http://<ip_serveur_proxy>:<port> |
Si le proxy demande une authentification :
1 |
http://<utilisateur>:<mot_de_passe>@<ip_serveur_proxy>:<port> |
Sinon, laissez vide si vous êtes chez vous connecté à votre box internet.
Les fichiers du dépôt sont téléchargés :
Si vous désirez participer aux statistiques d’utilisation, sélectionnez « Oui » :
Sélectionnez les programmes à installer.
Dans le cadre d’un serveur minimaliste comme celui-ci, il faut sélectionner uniquement :
- Serveur SSH
- Utilitaires usuels du système
Les programmes sont en cours d’installation :
Installation de GRUB, le programme de démarrage.
Sélectionnez « Oui » :
Sélectionnez le disque où sera installer GRUB : /dev/sda
Dernières étapes de l’installation avant reboot :
Félicitation, vous avez installé la machine virtuelle.
Validez pour continuer.
Écran de démarrage :
A la fin du processus de boot, la machine est en marche et accessible en SSH ou directement par VirtualBox.
Je vous conseille SSH, c’est plus simple pour les copier/coller avec la souris.
Premiers paramétrages
Connexion SSH
Voici une liste des différents clients SSH que je vous conseille suivant le système d’exploitation utilisé :
- Linux : ligne de commande ssh. Simple, efficace, j’adore. Il existe également Putty qui permet d’enregistrer des paramètres différents suivant les serveurs.
- Windows : Tera Term, un « must have », j’ai abandonné Putty depuis.
- Android : JuiceSSH (payant) ou ConnectBot (gratuit, mais avec moins de fonctionnalités, et plus lent). Je conseille JuiceSSH pour les fonctionnalités annexes.
- Mac : euh… Des suggestions ?
Récupérer l’adresse IP de la machine
Comme vous pouvez le constater, bien peu d’informations sont disponibles au démarrage de la VM.
Pour se connecter à cette dernière, il nous faut son adresse IP.
Cliquez sur la fenêtre de la VM pour capturer le clavier dans la VM.
Tapez « root » puis validez.
Tapez le mot de passe que vous avez configuré à l’installation et valider.
Si aucun caractères ne n’affichent, c’est normal. Raison de sécurité.
Exécutez la commande qui permet d’afficher les informations réseau :
1 |
command ifconfig |
(Vous pouvez ne pas saisir « command »)
L’adresse IP est donc : 10.0.0.14
Tapez la combinaison de touche « Ctrl+d » pour vous déconnecter.
Éventuellement »Ctrl Droite » pour récupérer le contrôle de votre PC.
Première connexion SSH
Je vais utiliser la ligne de commande (sous Linux, c’est un terminal) pour me connecter.
A vous d’adapter si vous utilisez un logiciel comme Tera Term ou Putty.
1 |
command ssh jbnet-user@10.0.0.14 |
Précision : Pour des raison de sécurité, il n’est plus possible de se connecter en SSH directement avec root depuis Debian 8.
Vous devez utiliser l’utilisateur créé à l’installation puis vous connecter avec root.
A la première connexion SSH, le client SSH demande d’accepter la clé d’identification SSH.
Acceptez et saisissez le mot de passe utilisateur configuré plus haut.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
The authenticity of host '10.0.0.14 (10.0.0.14)' can't be established. ECDSA key fingerprint is SHA256:b5PZlAcSRDBkvrE1PjyjhThi6KD+VUlGZZKWkx3B9eY. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.14' (ECDSA) to the list of known hosts. jbnet-user@10.0.0.14's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Jul 5 19:09:50 2015 from tux |
Vous êtes connecté !
Utilisez root :
1 |
command su - |
Validez et saisissez le mot de passe root.
Vous êtes connecté avec root et avez le contrôle totale de votre machine !
Les prochaines commandes seront exécutées sous root.
Lenteur de connexion SSH
Si la connexion SSH vous semble lente, ajoutez ce paramètre à la fin du fichier /etc/ssh/sshd_config
1 |
UseDNS no |
Relancez le service SSH :
1 |
command service ssh restart |
Mise à jour avec les dépôts officiels
Renommez le fichiers /etc/apt/sources.list en /etc/apt/sources.list.origine pour garder un backup de l’original (ça peut servir) :
1 |
command cp /etc/apt/sources.list /etc/apt/sources.list.origine |
Maintenant, remplacez le contenu du fichier /etc/apt/sources.list par :
1 2 3 4 5 6 7 8 |
deb http://ftp.fr.debian.org/debian jessie main contrib non-free deb-src http://ftp.fr.debian.org/debian jessie main contrib non-free deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free |
Enregistrez le fichier puis lancez un rafraichissement des dépôts suivi d’une mise à jour :
1 |
command apt-get update && apt-get dist-upgrade |
Si nécessaire, répondez « Oui » pour mettre à jour votre serveur.
Mais si vous avez utilisé la version net Install, vous ne devriez pas avoir de mise à jour à faire :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
Atteint http://ftp.fr.debian.org jessie InRelease Atteint http://ftp.debian.org jessie-updates InRelease Atteint http://ftp.debian.org jessie-updates/main Sources Atteint http://ftp.fr.debian.org jessie/main Sources Atteint http://security.debian.org jessie/updates InRelease Atteint http://ftp.debian.org jessie-updates/contrib Sources Atteint http://security.debian.org jessie/updates/main Sources Atteint http://ftp.fr.debian.org jessie/contrib Sources Atteint http://ftp.debian.org jessie-updates/non-free Sources Atteint http://security.debian.org jessie/updates/contrib Sources Réception de : 1 http://ftp.debian.org jessie-updates/main amd64 Packages/DiffIndex [505 B] Atteint http://ftp.fr.debian.org jessie/non-free Sources Atteint http://security.debian.org jessie/updates/non-free Sources Atteint http://ftp.debian.org jessie-updates/contrib amd64 Packages Atteint http://ftp.fr.debian.org jessie/main amd64 Packages Atteint http://ftp.debian.org jessie-updates/non-free amd64 Packages Atteint http://security.debian.org jessie/updates/main amd64 Packages Atteint http://ftp.debian.org jessie-updates/contrib Translation-en Atteint http://security.debian.org jessie/updates/contrib amd64 Packages Atteint http://ftp.fr.debian.org jessie/contrib amd64 Packages Réception de : 2 http://ftp.debian.org jessie-updates/main Translation-en/DiffIndex [229 B] Atteint http://security.debian.org jessie/updates/non-free amd64 Packages Atteint http://ftp.fr.debian.org jessie/non-free amd64 Packages Atteint http://ftp.debian.org jessie-updates/non-free Translation-en Atteint http://security.debian.org jessie/updates/contrib Translation-en Atteint http://security.debian.org jessie/updates/main Translation-en Atteint http://ftp.fr.debian.org jessie/contrib Translation-en Atteint http://security.debian.org jessie/updates/non-free Translation-en Atteint http://ftp.fr.debian.org jessie/main Translation-fr Atteint http://ftp.fr.debian.org jessie/main Translation-en Atteint http://ftp.fr.debian.org jessie/non-free Translation-en 734 o réceptionnés en 1s (377 o/s) Lecture des listes de paquets... Fait Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Calcul de la mise à jour... Fait 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour. |
Corriger le problème de déconnexion SSH sous Debian 8
Lorsque vous éteignez votre machine virtuelle (avec la commande « init 0 »), la déconnexion SSH n’est pas immédiate et attend la fin d’un timeout.
Vous pouvez palier à ce problème en suivant mon mémo sur le sujet : Debian – Déconnexion SSH incorrecte au reboot de Debian 8 Jessie
Vous devez rebooter le serveur pour la prise en compte.
Corriger le fuseau horaire
Au cas où l’heure ne serait peut-être pas correcte par rapport à votre fuseau horaire.
Exécutez cette commande, choisissez le fuseau horaire qui vous convient :
1 |
command dpkg-reconfigure tzdata |
Résultat :
1 2 3 4 5 |
root@debian8-gabarit:~# command dpkg-reconfigure tzdata Current default time zone: 'Europe/Paris' Local time is now: Sun Jul 5 17:57:47 CEST 2015. Universal Time is now: Sun Jul 5 15:57:47 UTC 2015. |
Installation des outils de base
Outils de développement
Installez les outils de développement permettant de compiler certains programmes.
Taille : env. 210 Mo
1 |
command apt-get install dkms build-essential linux-headers-`uname -r` |
Programmes et outils supplémentaires
Complétion des commandes
La complétion permet d’utiliser la touche tabulation pour compléter la commande dont les premières lettres ont été saisies.
Y compris le nom d’un service.
Normalement c’est déjà installé mais à vérifier tout de même.
1 |
apt-get install bash-completion |
Relancer le serveur pour prendre en compte la complétion :
1 |
command reboot |
Lorsque vous tapez « service » suivi de 2 fois la touche « tab », la liste des services s’affiche.
Pratique !
htop – Visualiser la charge en temps réel
Plus top que « top ».
1 |
command apt-get install htop |
Site de l’auteur : http://hisham.hm/htop/
screen – Récupérer une session SSH
Screen permet de conserver une session SSH ouverte en mémoire et en cas de coupure du lien internet ou lors d’exécution de traitement long, même si la connexion SSH principale est fermée.
1 |
command apt-get install screen |
L’utilisation est simple :
1 |
command screen |
Lister les screen en cours :
1 |
command screen -ls |
Récupérer la dernière session :
1 |
command screen -rd |
Pour plus d’info : Taking Command of the Terminal with GNU Screen sur linux.com
apt-file – Recherchez des fichiers dans les paquets Debian
Un programme ne peut pas se compiler car il manque un fichier ?
Utilisez apt-file et trouvez le paquet qui permet de l’installer !
1 |
command apt-get install apt-file |
Suivi d’une mise à jour de sa base de données :
1 |
command apt-file update |
Utilisation :
1 |
command apt-file search <nom_du_fichier> |
Eteindre votre Debian 8
Parce que c’est important d’arrêter correctement une machine, voici comment éteindre proprement votre Debian en ligne de commande :
1 |
command init 0 |
Il semblerait que cette dernière commande soit un peu trop expéditive.
En voici une autre, plus souple pour le système :
1 |
command shutdown -h now |
Et la suite ?
Suivez le guide Cloner et préparer la machine gabarit et commencez à créer de nouvelles VMs.
Bientôt les tutos pour installer un proxy, un serveur web Apache et/ou NGINX, un serveur de base de données MySQL ou Percona et un serveur d’administration avec des outils de monitoring pour surveiller l’ensemble, etc.
N’hésitez pas à poster des commentaires, des questions, vos trucs & astuces, je serais très heureux d’y répondre.