Dans un lab dsoxlab, quatre commandes aident à travailler : challenge dit
ce qu'il faut produire, course et guide donnent la matière, ssh ouvre
une machine du lab, et hint révèle un indice contre des points. Cette
leçon s'adresse à qui vient de démarrer un
lab et veut savoir où lire quoi. Elle insiste
sur le seul geste qui a un prix, l'indice, parce que son coût est enregistré
dès qu'on le demande.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Lire la mission d'un lab avec
dsoxlab challenge. - Lire le cours d'un lab section par section avec
dsoxlab course. - Distinguer
course, qui affiche la leçon, deguide, qui donne l'adresse du guide en ligne. - Entrer sur une machine du lab avec
dsoxlab ssh. - Lire le coût d'un indice et calculer ce qu'il retire à la note, sachant que
dsoxlab hintle facture sans confirmation.
Prérequis
Section intitulée « Prérequis »Il vous faut un lab démarré, comme le décrit la leçon Démarrer un
lab, avec la CLI dsoxlab en version 0.8.0
ou plus récente. Les commandes de cette leçon acceptent toutes l'identifiant du
lab en argument : une fois un lab actif, il devient facultatif. Sur un lab
shell, tapez-les dans la session ouverte par run ou dans un second
terminal. Sur un lab vm, dsoxlab n'existe pas sur la machine du lab :
utilisez un second terminal sur votre poste.
Où lire la mission et le cours : challenge, course, guide ?
Section intitulée « Où lire la mission et le cours : challenge, course, guide ? »dsoxlab challenge affiche la mission, c'est-à-dire ce qui sera vérifié ;
dsoxlab course affiche la leçon livrée avec le lab ; dsoxlab guide donne
l'adresse du guide en ligne. Les trois ne font pas la même chose, et les
confondre fait chercher la mission dans le cours ou le cours dans la mission.
Les exemples de cette section utilisent le lab l2-swap-management du
catalogue linux.
dsoxlab challenge l2-swap-managementdsoxlab course l2-swap-managementdsoxlab guide l2-swap-managementLa mission est le texte à lire en premier, parce qu'elle dit quels fichiers ou
quels états produire, et donc ce que check mesurera. Le cours est la matière
pour y arriver : le scénario du lab, puis son README.
Quand le lab découpe son cours en sections, course en affiche une section à
la fois, avec le sommaire au premier passage, et retient où vous vous êtes
arrêté. --next et --prev avancent et reculent, --section va à une
section nommée, et --all affiche le cours entier d'un coup.
Le guide est une autre chose : dsoxlab guide affiche l'adresse du guide en
ligne du lab, tel qu'il est publié sur le site, avec ses images et sa
navigation. Il n'ouvre le navigateur que si vous ajoutez --open, parce que
l'adresse vient du catalogue et que c'est à vous de décider d'y aller.
--print donne le même résultat que le défaut et sert aux scripts. Un lab qui
ne déclare aucune adresse répond par une erreur et sort en code 1.
course et challenge passent par un pagineur (un afficheur qui défile
page par page) dès que leur sortie dépasse la hauteur du terminal : less -R
par défaut, remplaçable par la variable DSOXLAB_PAGER ou PAGER, et q le
quitte. Un tube ou une redirection n'est jamais paginé et reçoit le texte
entier ; --no-pager affiche tout d'un coup.
DSOXLAB_PAGER='bat --plain' dsoxlab course l2-swap-managementdsoxlab challenge l2-swap-management --no-pagerdsoxlab course l2-swap-management > cours.txtVous avez compris cette étape quand vous pouvez dire, sans relire, ce que la
mission demande de produire. Sur un lab vm, run affiche la mission juste
avant d'ouvrir la session SSH. Sur la machine du lab, dsoxlab n'existe pas :
pour relire la mission, remontez dans le défilement du terminal, ou tapez
dsoxlab challenge dans un second terminal.
Comment entrer sur une machine du lab avec dsoxlab ssh ?
Section intitulée « Comment entrer sur une machine du lab avec dsoxlab ssh ? »dsoxlab ssh <hôte> ouvre une session SSH interactive sur un hôte déclaré
par le catalogue, avec la bonne clé et, s'il y en a un, le bon bastion (la
machine d'entrée par laquelle on passe pour atteindre les autres). Vous pouvez
donner le nom court (docker) ou le nom complet (docker.lab). Un nom
inconnu sort en code 1 en listant les hôtes déclarés. Sur le catalogue
containers, après dsoxlab start epreuve-livrer-une-image, les deux hôtes
s'appellent docker.lab et docker-client.lab, et la commande donne ceci :
dsoxlab ssh docker.labℹ Connexion à docker.lab (10.10.120.11)…Cette ligne annonce l'hôte et son adresse, puis la session s'ouvre sur la
machine, avec l'invite de docker.lab. Pour ce relevé, la commande a été jouée
dans un script, sans terminal : OpenSSH a rendu la main aussitôt, après deux
messages que l'extrait ne reproduit pas (pas de pseudo-terminal alloué, hôte
ajouté aux hôtes connus). Dans un vrai terminal, la session reste ouverte
jusqu'à exit.
dsoxlab ssh n'accepte qu'un nom d'hôte, pas de commande à exécuter dessus.
Voici la réponse quand on en ajoute une :
$ dsoxlab ssh docker-client.lab hostnameUsage: dsoxlab ssh [OPTIONS] {host}Try 'dsoxlab ssh --help' for help.╭─ Error ──────────────────────────────────────────────────────────────────────╮│ Got unexpected extra argument(s) (hostname) │╰──────────────────────────────────────────────────────────────────────────────╯La commande sort en code 2 et n'exécute rien : ouvrez la session, puis tapez la commande sur la machine.
dsoxlab ssh est la voie qui ne dépend pas de votre configuration SSH
personnelle. La clé SSH est propre au catalogue : c'est le fichier
ssh/id_ed25519 qu'instructor bootstrap a produit. La commande l'utilise,
ignore votre ~/.ssh/config (-F /dev/null), et passe tout seul par le
bastion quand l'infrastructure en expose un. Vous avez réussi quand vous vous
retrouvez sur la machine, avec son invite, comme sur un serveur réel.
Un ssh docker.lab tapé à la main peut aussi marcher, à une condition.
dsoxlab provision écrit pour cela un fragment
~/.ssh/config.d/<catalogue>.conf (nom de machine, clé, bastion) et annonce
« Connexion directe activée : ssh <machine> fonctionne désormais ». Ce
fragment n'est lu que si votre ~/.ssh/config contient la ligne
Include ~/.ssh/config.d/*.conf. Sans elle, provision écrit le fragment et
vous prévient qu'il ne sera jamais lu : ajoutez la ligne en tête du fichier.
Ce raccourci disparaît avec les machines : dsoxlab destroy retire le
fragment, et ssh <machine> cesse alors de marcher jusqu'au prochain
provision.
Certains labs vous laissent aussi sur votre poste, à la racine du dépôt : vous
écrivez alors votre code d'ici et lancez vos commandes vers les hôtes, et le
panneau d'accueil du lab vous renvoie vers dsoxlab ssh quand le sujet le
demande. Si run vous a déjà connecté à une machine, les commandes dsoxlab
n'y existent pas : tapez-les après exit, ou dans un second terminal.
Que coûte un indice, et comment le demander avec dsoxlab hint ?
Section intitulée « Que coûte un indice, et comment le demander avec dsoxlab hint ? »dsoxlab hint révèle l'indice suivant, dans l'ordre où l'auteur les a
écrits, et son coût est enregistré avant même que l'indice s'affiche. La
commande ne demande aucune confirmation : taper hint suffit à payer. Le coût
retiré est ensuite visible dans le résultat de check, qui l'intègre à la
note.
dsoxlab hint epreuve-livrer-une-imagedsoxlab hint epreuve-livrer-une-imageVoici le bas du panneau de l'indice après chacun des deux appels, sur
le lab epreuve-livrer-une-image. Le texte de l'indice, remplacé par
[...], occupe le haut du panneau, dont le titre est « Indice 1/4 » puis
« Indice 2/4 », avec le rang de l'indice et le nombre total que le lab en
propose :
[...]│ Coût : -10 pts Pénalité totale hints : -10 pts │╰──────────────────────────────────────────────────────────────────────────────╯[...]│ Coût : -15 pts Pénalité totale hints : -25 pts │╰──────────────────────────────────────────────────────────────────────────────╯La ligne Coût, au bas du panneau de l'indice, est celle à regarder. Le
premier nombre est ce que cet indice vient de coûter, le second le cumul des
indices pris sur ce lab. Le coût change d'un indice à l'autre : -10 pour le
premier, -15 pour le second, soit -25 au total. Un dsoxlab check lancé
ensuite l'affiche dans son panneau : « 2 indices utilisés, -25 pts ».
Un indice pris est enregistré tout de suite, et relancer le lab ne l'annule
pas. Parmi reset, clean et destroy, seul reset efface les indices du lab
et remet leur coût à zéro : la leçon Recommencer ou
nettoyer en traite.
La note part de 100, ou du barème que déclare le hints.yaml du lab. Le lab de
démonstration de la leçon Jouer son premier
lab l'a montré avec un indice à 20 points : les
indices amputent le barème avant que la proportion de tests réussis
s'applique, et non la note après coup. Il ne reste alors que 80 points à
gagner, donc deux tests réussis sur trois valent 53 sur 100 (2/3 de 80), et non
47. Sans indice, ils vaudraient 67.
Les tentatives déjà enregistrées gardent la liste des indices que vous aviez
vus à ce moment-là, même après un reset : la leçon Faire valider son
travail détaille ce que garde une tentative.
Trois réponses ne coûtent rien. hint répond « Tous les indices ont été
utilisés » quand le lab n'en propose plus, « Aucun indice disponible pour ce
lab » quand il n'en déclare aucun, et un message qui dit que la commande est
sans objet sur un lab de type validation, qui défend un guide publié et ne
note personne. Dans ces trois cas, rien n'est facturé.
Dépannage
Section intitulée « Dépannage »Aucun de ces cas n'est une panne : la commande répond à ce qu'elle voit, et le message dit quoi faire.
| Symptôme | Cause | Solution |
|---|---|---|
guide affiche une adresse mais n'ouvre rien | --open n'est pas passé : l'adresse vient du catalogue, la CLI n'ouvre pas seule | dsoxlab guide <id> --open |
guide répond par une erreur et sort en 1 | Le lab ne déclare aucune adresse de guide | Lire le cours avec dsoxlab course <id> |
course n'affiche qu'une section | Le lab découpe son cours | --next pour avancer, --all pour tout lire |
ssh sort en 1 en listant des hôtes | Le nom donné n'est pas un hôte du catalogue | Reprendre un des noms listés, court ou complet |
ssh sort en 2 avec « Got unexpected extra argument(s) » | Une commande a été ajoutée après le nom de l'hôte, et la commande n'en accepte pas | Ouvrir la session avec dsoxlab ssh <hôte>, puis taper la commande sur la machine |
hint répond « Tous les indices ont été utilisés » | Les indices du lab sont épuisés | Relire vos notes ou le défilement de votre terminal ; reset efface les indices et permet de les redemander, mais il défait aussi le travail en cours |
Les commandes dsoxlab échouent depuis la machine du lab | dsoxlab n'existe pas sur la machine du lab | exit, ou un second terminal sur votre poste |
À retenir
Section intitulée « À retenir »challengedit ce qui sera vérifié,courseaffiche la leçon,guidedonne l'adresse du guide en ligne.guiden'ouvre le navigateur qu'avec--open.courseretient la section où l'on s'est arrêté ;--allaffiche tout.courseetchallengepassent par un pagineur ; un tube ou une redirection reçoit le texte entier.dsoxlab sshutilise la clé du catalogue et le bastion quand il y en a un.hintenregistre son coût avant d'afficher l'indice, sans confirmation.- Les indices amputent le barème avant la proportion de tests réussis : un indice à 20 points et deux tests sur trois valent 53 sur 100.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Continuer le cours : Faire valider son travail avec dsoxlab check et submit
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications