diff --git a/commands.md b/commands.md index be9d629..aa50587 100644 --- a/commands.md +++ b/commands.md @@ -1,44 +1,49 @@ -# Installation et configuration Packer -## Installation : +# DVOP2025_Exercise +## Packer installation : ```yay -S packer``` -## Téléchargement des plugins : +## Download plugins : ```packer init NERD_Debian_Exercise.pkr.hcl``` -## Build de l'image pour virtualbox : +## Build image for virtualbox : ```packer build -only=virtualbox-iso.primary NERD_Debian_Exercise.pkr.hcl``` -Un message de succès apparait à la fin du build : -Build 'virtualbox-iso.primary' finished after 14 minutes 25 seconds. -L'output du build est disponible dans le repertoire "build" comme définis dans la configuration : -output_directory = "${local.build_directory}/packer-${local.name}-virtualbox" -Il suffit alors d'import l'ovf dans virtualbox. +A success message should appear at the end of the build: + > Build 'virtualbox-iso.primary' finished after 14 minutes 25 seconds. -La machine étant en NAT, pour pouvoir y accéder il faut faire du port fowarding. -Port 80 et 22 à utiliser. +The build output is in the “build” directory as defined in the configuration : + > output_directory = "${local.build_directory}/packer-${local.name}-virtualbox" -Pour pouvoir voir le job dans notre version de jenkins, il faut mettre à jour les plugins. +Import the ovf into virtualbox. -# Réponses : -1. When is the last time the `test_app` job ran ? -On peut voir dans l'interface Jenkins que le dernier build date du : 1 avr. 2019, 14:12:12 +Since the machine is in NAT mode, fowarding ports must be used to access it. +Use ports 80 and 22. -2. When building the job again, can you describe and explain what is going differently than the previous run ? -Dans blue ocean pour avoir une meilleur visualisation, on voit que l'ancien build a eu un failure au niveau d'un test qui se nomme "TestSuite.WontWork". -Le nouveau build est en erreur au niveau de l'etape de build avec comme erreur : The source is not compiled in c++11 mode. -Dans "test.cpp" on peut voir la condition avec la macro __cplusplus : +To see the job in our version of jenkins, we need to update the Jenkins plugins. + +# Answers : +**1. When is the last time the `test_app` job ran ?** +We can see in the Jenkins interface that the last build date is: Apr 1, 2019, 14:12:12 + +**2. When building the job again, can you describe and explain what is going differently than the previous run ?** +In blue ocean, for a better visualization, we see that the old build has failed a test called “TestSuite.WontWork”. +The new build has an error in the build step with the error : + > The source is not compiled in c++11 mode. + +In the file “test.cpp” you can see the condition with the macro __cplusplus : ``` #if __cplusplus != 201103L #error The source is not compiled in c++11 mode #endif ``` -Ce qui signifie que le code doit etre compilé avec la version c++11 sinon l'erreur est retourné. -Documentation de la macro : (https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros) -On peut voir qu'avec le cmake --version les version de cmake sont différentes entre les builds. -(Note perso) Si le CMakeLists n'a pas changé alors il faut voir au niveau de la version GCC (ou peut etre ailleurs) pour voir un potentiellement changement. (https://gcc.gnu.org/gcc-6/changes.html ou https://gcc.gnu.org/gcc-12/changes.html) -3. Now that you have assessed the situation, make the necessary modifications to make sure the Job environment and/or Job executable behaves in the same manner as it was before. -Une des soltutions est de modifier le fichier "CMakeLists.txt" en forcant la compilation en c++11. -Dans mon "CMakeLists", j'ai rajouté cette ligne : ```set(CMAKE_CXX_STANDARD 11)``` (Variable récupéré dans cette documenation : https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html#prop_tgt:CXX_STANDARD) -J'ai donc fais la modification que j'ai mis sur ce repertoire git : https://gitea.jarodcajna.fr/jarjar/test_app.git -J'ai ensuite modifié la pipeline pour qu'elle aille récupérer mon répertoire git et qu'elle récupère la branche "main". -En relancant le job, nous avons le meme resultat que l'ancien build. La modification a donc fonctionné. +This means that the code must be compiled with the c++11 version, otherwise the error is returned. +Macro documentation : (https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros) +We can see that with cmake --version, cmake versions are different between builds. +(à delete) Si le CMakeLists n'a pas changé alors il faut voir au niveau de la version GCC (ou peut etre ailleurs) pour voir un potentiellement changement. (https://gcc.gnu.org/gcc-6/changes.html ou https://gcc.gnu.org/gcc-12/changes.html) ou alors le problème vient aussi d'ici : set(CMAKE_CXX_STANDARD_REQUIRED True) + +**3. Now that you have assessed the situation, make the necessary modifications to make sure the Job environment and/or Job executable behaves in the same manner as it was before.** +One solution is to modify the “CMakeLists.txt” file by forcing compilation in c++11. +In my “CMakeLists”, i'have added this line : ```set(CMAKE_CXX_STANDARD 11)``` (Variable retrieved from this documentation : https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html#prop_tgt:CXX_STANDARD) +So i made the modification and put it on this public git directory : https://gitea.jarodcajna.fr/jarjar/test_app +Then i modified the pipeline to retrieve my git repository and the “main” branch. +When i restarted the job, i got the same result as the old build. So the modification worked. _Explain in a few lines the steps you took and provide a package (git repository / patch files) containing your modifications and a note explaining your changes._