Dev zone/Create devserver access/fr
Guide complet : Configuration de l'accès devserver avec Git et Arcanist
Ce guide explique comment configurer votre environnement de développement Windows (via WSL) pour contribuer au projet Operations et obtenir vos accès aux serveurs de développement (Devservers).
1. Prérequis et Environnement
Avant de commencer, assurez-vous de disposer des outils suivants sur votre machine Windows :
- WSL (Windows Subsystem for Linux) avec une distribution Ubuntu installée.
- Visual Studio Code avec l'extension YAML (par Red Hat) installée. SaltStack est extrêmement strict sur l'indentation. Cette extension soulignera en rouge toute erreur d'espacement avant même que vous ne sauvegardiez.
- Git installé sur Windows.
Configuration globale de Git (Fins de ligne)
Pour éviter que Windows n'insère des fins de ligne `CRLF` qui casseraient les fichiers Linux, ouvrez PowerShell et exécutez :
git config --global core.autocrlf input
2. Création du dossier et clonage du dépôt
2.1 Création du dossier de travail
Créez un dossier sur votre PC Windows pour organiser les fichiers du projet :
mkdir "C:\STAGE 2025"
cd "C:\STAGE 2025"
2.2 Clonage du dépôt Operations
Toujours dans PowerShell, clonez le dépôt :
git clone https://devcentral.nasqueron.org/source/operations.git
3. Bascule sous WSL et création de branche
À partir de maintenant, toutes les commandes Git et Arcanist seront exécutées dans WSL pour garantir un environnement Linux natif.
3.1 Se placer dans le dossier du projet
Ouvrez votre terminal Ubuntu (WSL) et naviguez vers le dossier cloné sous Windows :
cd /mnt/c/STAGE\ 2025/operations
3.2 Création d'une branche dédiée
Ne travaillez jamais directement sur la branche principale (`main` ou `master`). Créez une branche pour votre arrivée :
git switch -c add-user-votrelogin
Note : Si la branche existe déjà, utilisez simplement git switch add-user-votrelogin.
4. Génération de votre clé SSH
Votre clé SSH servira à vous authentifier sur les serveurs Nasqueron une fois votre compte créé.
4.1 Générer la paire de clés
Dans WSL, générez une clé ED25519 :
ssh-keygen -t ed25519 -C "votre.email@example.com"
Appuyez sur Entrée pour accepter l'emplacement par défaut. Vous pouvez laisser la passphrase vide ou en choisir une.
4.2 Récupérer la clé publique
Affichez le contenu de votre clé publique pour la copier :
cat ~/.ssh/id_ed25519.pub
Copiez l'intégralité de la ligne affichée (elle commence par ssh-ed25519).
5. Modifications des fichiers Salt (Pillars)
Ouvrez le dossier du projet dans VS Code. Rappel vital : En YAML, l'indentation est significative. Utilisez uniquement des espaces (jamais de tabulations). Respectez l'indentation existante (généralement 2 espaces par niveau).
5.1 Ajout dans users.sls
Ouvrez le fichier pillar/core/users.sls.
Ajoutez votre utilisateur dans la section shellusers: par ordre alphabétique.
- UID : Repérez le plus grand
uidactuellement présent dans le fichier (qui est supérieur à 5000, ex: 5002) et incrémentez-le de 1 (ex: 5003). N'utilisez jamais de valeurs inférieures à 1024, elles sont réservées au système. - SSH Keys : Collez la clé publique générée à l'étape 4.2.
shellusers:
...
votrelogin:
fullname: Prénom Nom
ssh_keys:
- ssh-ed25519 AAAA... votre.email@example.com
uid: 5003
...
5.2 Ajout dans groups.sls
Ouvrez le fichier pillar/core/groups.sls.
Ajoutez votre nom d'utilisateur dans la liste members: des groupes correspondant à vos besoins.
⚠️ ATTENTION À LA CASSE : La clé doit être strictement en minuscules : members: (et non Members:).
⚠️ GROUPES INEXISTANTS : Il n'existe pas de groupe système « core » (core est un rôle Salt) ni de groupe « nasqueron ».
Ajoutez-vous uniquement aux groupes suivants selon vos besoins :
nasquenautes: Pour les serveurs de développement généraux (WindRiver / Ysul). (Recommandé)nasqueron-dev-docker: Si vous avez besoin de Docker sur Dwellers.shell: (Optionnel) Pour le serveur IRC Eglide.
nasquenautes:
members:
- ...
- votrelogin
6. Nettoyage et Commit des modifications
6.1 Correction des fins de ligne (CRLF)
Si vous avez un doute sur les fins de ligne, nettoyez spécifiquement les fichiers modifiés avec dos2unix :
dos2unix pillar/core/users.sls pillar/core/groups.sls
🚨 DANGER : N'exécutez JAMAIS git restore . à cette étape. Cette commande annulerait et supprimerait définitivement toutes les modifications que vous venez de faire dans les fichiers YAML !
6.2 Création du commit
git add pillar/core/users.sls pillar/core/groups.sls
git commit -m "Create new account for Prénom Nom (nasquenautes)"
7. Installation d'Arcanist (WSL)
Arcanist (`arc`) est l'outil en ligne de commande pour interagir avec DevCentral. Le dépôt original (Phacility) étant fermé, nous utilisons notre fork maintenu.
7.1 Dépendances PHP
Arcanist est écrit en PHP. Installez les prérequis :
sudo apt update
sudo apt install -y php-cli php-curl php-xml php-mbstring git curl unzip dos2unix
7.2 Clonage et installation
mkdir -p ~/phabricator
cd ~/phabricator
git clone https://github.com/nasqueron/arcanist.git
sudo ln -s ~/phabricator/arcanist/bin/arc /usr/local/bin/arc
hash -r
Vérifiez l'installation :
arc version
8. Authentification Arcanist
Pour qu'Arcanist puisse communiquer avec DevCentral, vous devez générer un Token API (Conduit Token) :
- Connectez-vous sur DevCentral.
- Cliquez sur votre pseudo en haut à droite > Settings.
- Allez dans Conduit Tokens et cliquez sur Generate Token.
- Copiez le token généré.
Retournez dans le dossier du projet et installez le certificat :
cd /mnt/c/STAGE\ 2025/operations
arc install-certificate
Collez le token lorsqu'il vous est demandé et suivez les instructions.
9. Soumission de la révision (arc diff)
Nous allons soumettre le code pour qu'il soit revu par l'équipe Ops.
Note : Nous utilisons --nolint pour éviter qu'Arcanist ne modifie votre fichier .arclint local ou ne bloque sur des règles de formatage non pertinentes pour votre ajout.
arc diff --nolint
9.1 Remplissage du message de révision
Arcanist va récupérer le message de votre dernier commit Git et ouvrir l'éditeur `nano`. Assurez-vous que le résumé est correct. N'écrivez pas « dans le groupe core ».
Summary: Create new account for Prénom Nom (nasquenautes)
Test Plan: Syntax check on YAML pillar files
Reviewers: dereckson
Subscribers:
9.2 Sauvegarde et validation
- Dans `nano`, faites Ctrl + O puis Entrée pour sauvegarder.
- Faites Ctrl + X pour quitter.
- Si Arcanist demande
Do you want to use this message? [Y/n], répondezY.
À la fin du processus, Arcanist affichera l'URL de votre révision sur DevCentral (ex: https://devcentral.nasqueron.org/DXXXX).
10. Cycle de vie de la révision (Mise à jour et Merge)
- NE MERGEZ PAS VOUS-MÊME : N'essayez jamais de faire
arc landougit push. Votre code entre dans une file de révision. Un membre de l'équipe Ops va le relire et le fusionner pour vous. - Si le reviewer demande des corrections :
# Faites les modifications demandées dans VS Code. # Mettez à jour votre commit existant :git commit -a --amend# Renvoyez la mise à jour sur DevCentral :arc diff --nolint
11. Finalisation et validation de l'accès
Une fois votre révision approuvée et fusionnée par un administrateur :
- Attendez que le déploiement Salt (highstate) s'exécute sur les serveurs (ou demandez à un admin de le déclencher).
- Testez votre accès SSH depuis WSL :
ssh votrelogin@windriver.nasqueron.org
Résumé des problèmes et erreurs évitées
| Problème | Solution |
|---|---|
| Indentation YAML incorrecte | Utiliser l'extension VS Code YAML. Respecter les 2 espaces. Jamais de tabulations. |
Utilisation de core ou nasqueron comme groupe |
Ces groupes n'existent pas. Utiliser nasquenautes, nasqueron-dev-docker ou shell.
|
Clé YAML Members: avec majuscule |
Utiliser exclusivement members: en minuscules.
|
| UID inférieur à 1024 | Utiliser un UID > 5000 (incrémenter le plus grand UID existant). |
Effacement du travail avec git restore . |
Utiliser dos2unix ciblé sur les fichiers modifiés pour corriger le CRLF.
|
| Modification du linter (.arclint) | Toujours utiliser arc diff --nolint.
|
Clone de phacility/arcanist en 404 |
Cloner le fork maintenu https://github.com/nasqueron/arcanist.git.
|
Points importants à retenir
- Environnement : Le dépôt est cloné sous Windows, mais toutes les commandes Git/Arcanist s'exécutent dans WSL (
/mnt/c/...). - Sécurité Git : Ne jamais utiliser
git restore .pour régler un problème de fin de ligne. - Patience : Une fois
arc diffréussi, votre travail est terminé. Attendez la validation et le déploiement par l'équipe Ops avant de tenter une connexion SSH.
