Contrôle Continu Pratique (CCP) d’entrainement
1. Informations générales
-
M1INFO − Développement et exploitation (XMS1IE080)
-
Contrôle Continu Pratique (CCP)
-
Date : XX/XX/20XX
-
Durée : 2h
2. Consignes
Le travail doit être réalisé sur les machines de TP de la salle informatique, et non à l’aide de vos machines personnelles.
Il est interdit de communiquer entre vous (ou avec quelqu’un d’extérieur), que ce soit dans la salle, ou par moyen numérique (échange de fichiers, messagerie instantanée, etc.).
Il est autorisé de demander de l’aide à l’enseignant, notamment en cas de problème technique. L’enseignant par contre n’est jamais obligé de vous répondre, notamment s’il estime que c’est à vous de connaître la réponse.
Vous n’avez accès que à certaines ressources numériques, qui incluent notamment le site web du cours, l’espace Madoc du cours, et bien entendu le Gitlab de l’université. Vous avez aussi accès à certaines documentations des outils que nous demandons de déployer.
| Une tentative d’outrepasser ces restrictions − pour accéder à des ressources en ligne non autorisées, pour s’aider d’une IA, pour communiquer avec une personne extérieure, etc. − pourra être sanctionnée. Dans le doute, demandez à l’enseignant. |
3. Rendu de votre travail
Votre travail devra être rendu sous deux formes :
-
Chaque exercice vous demande d’accomplir des tâches à l’aide de commandes et/ou à l’aide d’un
Containerfile. Vous devrez saisir toutes vos commandes et/ou votreContainerfiledans le questionnaire Contrôle Continu Pratique (CCP) qui sera ouvert sur la page Madoc du cours pour la durée de l’épreuve.
| Une fois votre formulaire validé vous ne pourrez plus le modifier ! Cela équivaut à "rendre votre copie" ! |
-
Chaque exercice se termine par un déploiement réel sur l’environnement cible "podman". Dès vous avez terminé un déploiement, vous devrez le montrer à l’enseignant via votre navigateur web pour qu’il le note.
-
Vous devrez obligatoirement signer la "feuille d’appel" numérique la page Madoc dédiée.
| Le barème est donné à titre indicatif et est susceptible de changer. |
4. OBLIGATOIRE: remise à zéro de Podman
Avant toute chose, faites un premier accès SSH vers l’environnement de déploiement :
$ ssh podman
Puis faites la commande suivante pour faire intégralement le ménage de vos contenus Podman (images, conteneurs, networks, etc.) :
$ podman system reset
| Cette étape est nécessaire pour garantir que votre travail durant cette évaluation ne sera pas "gêné" par vos précédents TPs avec Podman. |
5. Exercice 1 − Déploiement de DokuWiki pré-conteneurisé
environ 4 points
5.1. Énoncé
On souhaite déployer une instance de DokuWiki, un logiciel permettant de créer un wiki.
On décide d’utiliser l’image de conteneur officielle Dokuwiki sur le registre de conteneur du Docker Hub. En lisant notamment la documentation de l’image, on connaît les informations utiles suivantes :
-
Le nom de cette image est
dokuwiki/dokuwikiet elle est disponible sur le registre de conteneursdocker.io, -
Le point d’entrée de l’image est l’exécution du serveur web DokuWiki,
-
Ce serveur web écoute par défaut sur le port
8080du conteneur, -
Pour un fonctionnement de base, DokuWiki n’a pas besoin d’être configuré,
-
DokuWiki stocke ses données de travail dans le répertoire
/storagedu conteneur. Ces données sont importantes car elles contiennent toutes les pages du wiki.
5.2. Questions
-
Réalisez un déploiement d’un service DokuWiki en suivant avec les contraintes suivantes:
-
Le nom du conteneur DokuWiki doit être
dokuwiki_instance. -
L’image de conteneur DokuWiki utilisée doit être celle correspondant à l’étiquette
stable. -
L’application DokuWiki doit être accessible par une publication de port (n’oubliez pas d’utiliser un port de votre plage de ports individuelle autorisée, en vous référant au tableau disponible sur Madoc),
-
Les données de travail DokuWiki doivent être persistées dans l’environnement de déploiement.
-
-
Une fois le service en exécution, utilisez Firefox depuis votre poste de travail Linux pour accéder à la page d’accueil de DokuWiki, en utilisant la publication de port que vous avez réalisée.
-
Une fois sur la page d’accueil, testez l’application de la manière suivante :
-
Dans la barre à droite, allez vers l’icône crayon et cliquez sur Create this page.
-
Dans la boîte de texte, écrivez
CCP XMS1IE080suivi de votre nom et prénom, puis faites Save.
-
|
Une fois tout votre travail terminé, vous devrez :
|
6. Exercice 2 − Conteneurisation et déploiement de NanoShare
environ 8 points
6.1. Énoncé
On souhaite mettre au point une image de conteneur pour le logiciel Nanoshare, qui permet à des utilisateurs de téléverser et télécharger des fichiers. Le code source et la documentation du logiciel sont disponibles dans un projet dédié du Gitlab de l’université.
Informations utiles :
-
Le logiciel est développé à l’aide du langage Go,
-
Afin de compiler un code source écrit en Go, il est nécessaire de pouvoir utiliser la commande
go, -
La commande
goest disponible dans l’image de base Go officielle :-
Cette image est disponible sur le registre de conteneur
docker.io, -
Cette image a pour nom
golang, -
Une étiquette valide pour cette image est
1.23.4.
-
Contraintes à respecter : Lors de la création d’un conteneur à partir votre image, on souhaite pouvoir spécifier :
-
Le mot de passe administrateur que l’on souhaite,
-
Un emplacement de l’environnement de déploiement dans lequel NanoShare stockera ses fichiers.
6.2. Questions
-
Construisez une image de conteneur permettant de facilement déployer Nanoshare. Cette image doit avoir pour nom
nanoshareet pour étiquettev1Vous avez le choix entre deux manières de procéder :-
Soit vous préparez votre image de conteneur manuellement (rapporte un peu moins de points),
-
Soit vous préparez votre image de conteneur en automatisant à l’aide du langage Containerfile (rapporte un peu plus de points).
-
-
Effectuez un déploiement de NanoShare à l’aide de votre image créée localement, en respectant les contraintes suivantes :
-
Le nom du conteneur NanoShare doit être
nanoshare_instance. -
L’application NanoShare doit être accessible par une publication de port (n’oubliez pas d’utiliser un port de votre plage de ports individuelle autorisée, en vous référant au tableau disponible sur Madoc),
-
Les fichiers stockés par NanoShare doivent être stockés dans l’environnement de déploiement.
-
-
Testez votre déploiement à l’aide d’un navigateur:
-
Faites Log In tout en haut à droite,
-
Saisissez le mot de passe administrateur et faites Authenticate,
-
Sur votre machine, préparez un fichier texte appelé
nom-prenom.txten remplaçantnompar votre nom etprenompar votre prénom. -
Cliquez sur Choose a file… et sélectionnez votre fichier créé à l’étape précédente.
-
Dans le menu tout en haut, allez dans Files, et constatez que votre fichier est bien présent.
-
|
Une fois tout votre travail terminé, vous devrez :
|
7. Exercice 3 − Déploiement de Wiki.js pré-conteneurisé
environ 8 points
7.1. Énoncé
On souhaite déployer une instance de Wiki.js, un logiciel web permettant de gérer un wiki collaboratif.
Ce logiciel nécessite une base de données pour fonctionner, par exemple une base de type PostgreSQL. On choisit d’utiliser l’image de conteneur officielle PostgreSQL située sur le Docker Hub. En lisant la documentation de l’image, on observe que :
-
Le nom de cette image est
postgreset elle est disponible sur le registre de conteneursdocker.io, -
Le point d’entrée de l’image est l’exécution du logiciel PostgreSQL,
-
Les fichiers de la base de données sont stockés dans le répertoire
/var/lib/postgresql/datadu conteneur, -
Par défaut, le logiciel PostgreSQL écoute sur le port
5432du conteneur, -
Par défaut, lors du premier lancement d’un conteneur, un compte PostgreSQL est créé, ainsi qu’une base de données vide à laquelle ce compte peut accéder. Des variables d’environnement sont disponibles pour configurer cela :
-
POSTGRES_USERpermet de spécifier l’identifiant du compte PostgreSQL, -
POSTGRES_PASSWORD, permet de spécifier le mot de passe du comptePOSTGRES_USER, -
POSTGRES_DBpermet de spécifier le nom de la base de données créée pour le comptePOSTGRES_USER.
-
Concernant Wiki.js, on décide d’utiliser une image de conteneur spéciale préparée pour cet examen (avec un petit correctif nécessaire), disponible sur le registre de conteneur du Gitlab de l’université. En lisant notamment la documentation de l’image, on connaît les informations utiles suivantes :
-
Le nom de cette image est
gl/developpement_exploitation/resources/wikijs-container-offlineet elle est disponible sur le registre de conteneursdocker-registry.univ-nantes.fr, -
Le point d’entrée de l’image est l’exécution du serveur web Wiki.js,
-
Ce serveur web écoute par défaut sur le port
3000du conteneur, -
Les variables d’environnement suivantes sont comprises par Wiki.js :
-
DB_TYPEindique à Wiki.js le type de base de données à utiliser. Il faut donner à cette variable la valeurpostgresafin de lui indiquer que nous souhaitons nous connecter à un serveur de base de données PostgreSQL. -
DB_HOSTindique à Wiki.js le nom d’hôte du serveur de base de données à utiliser. -
DB_PORTindique à Wiki.js quel port réseau utiliser pour se connecter au serveur de base de données. -
DB_USERindique à Wiki.js quel identifiant utiliser pour se connecter au serveur de base de données. -
DB_PASSindique à Wiki.js quel mot de passe utiliser pour se connecter au serveur de base de données. -
DB_NAMEindique à Wiki.js quelle base de donnée utiliser au sein au serveur de base de données.
-
7.2. Questions
-
Réalisez un déploiement d’un service Wiki.js, sous la forme d’un conteneur Wiki.js relié à un conteneur PostgreSQL en suivant avec les contraintes suivantes:
-
Le nom du conteneur Wiki.js doit être
wikijs_instance. -
Le nom du conteneur PostgreSQL doit être
wikijs_db. -
L’image de conteneur Wiki.js utilisée doit être celle correspondant à l’étiquette
latest. -
L’image de conteneur PostgreSQL utilisée doit être celle correspondant à l’étiquette
17.2. -
L’application Wiki.js doit être accessible par une publication de port (n’oubliez pas d’utiliser un port de votre plage de ports individuelle autorisée, en vous référant au tableau disponible sur Madoc),
-
Les fichiers de la base de données PostgreSQL doivent être stockés dans l’environnement de déploiement.
-
-
Une fois les conteneurs en exécution, utilisez Firefox depuis votre poste de travail Linux pour accéder à la page d’accueil de Wiki.js, en utilisant la publication de port que vous avez réalisée.
-
Une fois sur la page d’accueil qui indique "You are about to install Wiki.js", testez l’application de la manière suivante :
-
Faites la configuration initiale avec les informations factices suivantes :
-
Administrator Email :
administrator@domain.tld -
Password :
administrator -
Site URL : laisser la valeur par défaut
-
Telemetry : décocher
-
-
Une fois le message "Installation complete" affiché, vous arrivez sur la page d’accueil. Authentifiez vous avec les informations factices (
administrator@domain.tldetadministrator). -
Choisissez Create home page puis Visual Editor
-
Mettez comme titre
CCP XMS1IE080, puis faites OK en haut à droite. -
Saisissez comme contenu de page votre prénom, nom et numéro étudiant, puis faites Create en haut à droite.
-
|
Une fois tout votre travail terminé, vous devrez :
|