Début guide déploiement de nœud. Point jargon sur «nœud».

This commit is contained in:
vincent 2022-08-23 19:11:12 +02:00
parent 07db23afb6
commit 8c4705c02c
4 changed files with 115 additions and 9 deletions

View File

@ -9,7 +9,9 @@ Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos
# Notre jargon
* _Une grappe_, c'est **un ensemble d'ordinateurs** qui **coopèrent** pour fournir un **service**.
* _Un nœud_, c'est un **ordinateur** configuré pour fournir un **service** en collaborant avec d'autres.
* _Une grappe_, c'est **un ensemble de nœuds** qui **coopèrent** pour fournir un **service**.
Une grappe est **gérée de façon cohérente** (avec le même système logiciel), **plus ou moins autonome** (elle ne dépend pas du reste du monde pour fournir des services web), **par une entité définie** (une personne physique ou un groupe de personnes).

View File

@ -0,0 +1,14 @@
---
title: Noeud
description: Déploiement d'un noeud
published: true
date: 2022-08-23
tags: installation, serveur, infrastructure, réseau, sysadmin, site géographique, technique, administration
editor: markdown
dateCreated: 2021-08-23
---
# Déployer un nœud au sein de l'infrastructure Deuxfleurs
Déployer un nœud au sein de l'infrastructure Deuxfleurs demande un certaine préparation et représente un processus particulier.
Avant de se lancer, [mieux vaut vérifier les prérequis pour y parvenir](prerequis). Une fois ceci fait, on peut suivre [le guide décrivant la procédure](guide-creation-noeud).

View File

@ -0,0 +1,96 @@
---
title: Guide de création d'un nœud
description: Guide de création d'un nœud
published: true
date: 2022-08-23
tags: installation, serveur, infrastructure, réseau, sysadmin, site géographique, technique, administration
editor: markdown
dateCreated: 2022-08-23
---
# Guide d'initialisation de nœud Deuxfleurs
Ce guide explique comment initialiser un nœud pour l'infrastructure de Deuxfleurs. Nous partons de zéro, c'est-à-dire avec une machine que nous venons de récupérer, avec une mémoire vide, et que nous venons de brancher. À titre d'exemple, nous illustrerons de temps en temps les opérations avec une de nos machines (un Thinkcentre de Lenovo).
## Configuration de l'UEFI
Configurons d'abord quelques paramètres dans l'UEFI de la machine. Démarrez-là et appuyez sur la touche pour accéder à ce menu. Chez nous, il s'agit de F1. Si le PXE est activé, désactivons-le : un attaquant présent sur le réseau local pourrait faire démarrer une machine sur une installation malveillante. Vérifions que les *C-States* sont pris en charge, cela permet une meilleure gestion de l'énergie. Configurons également la machine pour qu'elle démarre après avoir subi une coupure électrique, cela se révèlera pratique lorsqu'il y en a une. Si l'option est là, autorisons le démarrage sans clavier branché, pour ne pas être embêté lorsque nous démarrons une machine pour SSH dessus. Enfin, dans le cadre de l'infrastructure Deuxfleurs, nous supporterons uniquement l'UEFI, nous pouvons donc désactiver les options de compatibilité BIOS.
## Installation de NixOS
Pour installer NixOS, nous aurons besoin d'une clé USB avec une image amorçable (*live*) de NixOS dessus. Cette préparation est sautée ici car amplement expliquée à divers endroits sur internet, mais elle se résumé à télécharger l'image sur le site officiel de NixOS, vérifier sa signature, et l'écrire sur la clé USB, par exemple avec l'utilitaire `dd`.
Branchons la clé USB et démarrons dessus. Chez nous, c'est possible grâce à un menu accessible via la touche F12. Lançons NixOS sans option particulière. Accordons-nous tous les droits et configurons un clavier habituel. On peut également vérifier la connexion internet :
```
$ sudo su
# loadkeys fr-latin9
# ping deuxfleurs.fr
```
Nous pouvons faire `lsblk` pour examiner les disques de la machine. Chez nous, nous avons simplement un disque dur complètement vide de 500Go associé à `/dev/sda`. Nous allons formater le disque avec `cgdisk` :
```
# cgdisk /dev/sda
```
Nous créons d'abord, avec l'option `New`, une partition qui commence au début, fait 512Mo, avec un code hexadécimal `EF00`, et que nous appelerons «EFI» : c'est le secteur de démarrage.
Puis nous créons à la suite une partition de 8Go, avec un code hexadécimal `8200`, nommée «swap» : c'est l'espace d'échange.
Enfin sur tout le reste, nous créons une partition avec un code hexadécimal `8300`, que nous appelerons par exemple «root» : c'est la racine du système linux.
Pour appliquer les changements, nous utilisons l'option `Write`. Nous pouvons ensuite quitter avec `Quit`, et éventuellement vérifier le résultat avec `lsblk`.
Finalisons les partitions. Dans notre cas, nous devons créer les systèmes avec :
```
# mkfs.fat -F 32 /dev/sda1
# mkswap /dev/sda2
# mkfs.xfs /dev/sda3
```
Nous utilisons ici xfs car nous sommes équipés d'un disque rotatif.
Montons les partitions fraîchement créées.
```
# mount /dev/sda3 /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
# swapon /dev/sda2
```
Le résultat est vérifiable avec `df -h`. À ce stade, nous pouvons générer la configuration de NixOS dans cette arborescence, et l'éditer par exemple avec `nano` :
```
# nixos-generate-config --root /mnt
# nano /mnt/etc/nixos/configuration.nix
```
Ce fichier décrit la configuration du système de manière générale. NixOS le versionne, et à l'utilisation, chaque modification génère une nouvelle «génération». En cas d'erreur par exemple, nous pourrons revenir facilement à une génération précédente. Ainsi nous décrivons ici la première génération de notre système à venir. Nous n'allons en réalité modifier que quelques choses par rapport à la configuration par défaut. Décommentons et définissons le nom d'hôte et le fuseau horaire :
```
networking.hostName = "nomDeLaMachine";
```
```
time.timeZone = "Europe/Paris";
```
Pour les propriétés d'internationalisation, nous pouvons par exemple définir ceci :
```
i18n.defaultLocale = "fr_FR.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "fr-latin9";
};
```
Attention en tout cas à ne pas définir en même temps `keyMap` et `useXkbConfig`, ces deux options peuvent se contredire. Pour l'utilisateur et les paquets du système, nous pouvons par exemple partir sur :
```
users.users.nomUtilisateur = {
isNormalUser = true;
extraGroups = [ "wheel" ];
};
```
```
environment.systemPackages = with pkgs; [
vim
wget
emacs
];
```
Enfin activons le serveur SSH en décommentant :
```
services.openssh.enable = true;
```
Nous pouvons enregistrer et fermer le fichier, puis lancer l'installation avec :
```
# nixos-install
```
Au bout d'un certain temps, le processus va nous demander le mot de passe pour le compte root. Une fois donné, l'installation devrait être terminée. Nous pouvons redémarrer sur la machine, et nous connecter en tant que root. Définissons le mot de passe de l'utilisateur spécifié dans la configuration auparavant (nomUtilisateur) avec :
```
# passwd nomUtilisateur
```
Nous pouvons si nous le voulons nous déconnecter avec `exit` et tester la connexion sur nomUtilisateur.

View File

@ -1,6 +1,6 @@
---
title: Noeud
description: Déploiement d'un noeud
title: Prérequis pour un nœud
description: Prérequis pour un nœud
published: true
date: 2022-01-09T13:29:29.710Z
tags: installation, serveur, infrastructure, réseau, sysadmin, site géographique, technique, administration
@ -44,9 +44,3 @@ Dans les deux cas - grâce à [la magie des VPN](/Technique/Infra/Wireguard) - o
**À terme, chez Deuxfleurs, on compte héberger toute notre infrastructure chez des particuliers.** Mais [la route est encore longue](/Technique/Jalons/Interconnexion) avant que nous ayons assez de bonnes connexions et des ordinateurs suffisamment puissants, sans parler du système de gestion logiciel.
Ainsi, **pour le moment, il est tout à fait acceptable d'héberger des services Deuxfleurs en centre de données** : tant qu'on en informe nos usagers et qu'on fait attention à la sécurité.
# Installation des ordinateurs
Pour chaque ordinateur de notre future grappe, nous allons avoir besoin d'en configurer le ou les disques, de les chiffrer éventuellement, et d'installer son système d'exploitation.