This shows you the differences between two versions of the page.
devops:laboratoare:02 [2021/05/24 17:37] 127.0.0.1 external edit |
devops:laboratoare:02 [2022/07/27 18:01] (current) bogdan.croitoru |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 02. ===== | + | ===== Hands-on session 2/2 - part 1/3 ===== |
+ | **Exercises:** | ||
+ | |||
+ | 1. Login on the VM using VMWare Horizon | ||
+ | 2. Create a desktop shortcut (right mouse click -> create shortcut) | ||
+ | => point to: \\robucsw111\RND\RD_EST\DevOps_Summer_School_2022 | ||
+ | => shortcut name: DevOps Summer School | ||
+ | => try to access it | ||
+ | 3. From the above location, copy Moba xTerm to your Desktop | ||
+ | => run Moba xTerm | ||
+ | => generate new SSH keys from Tools => Moba Keygen => Generate => random mouse movements | ||
+ | => save public key with name "student<number>.pub" on Desktop | ||
+ | => save private key with name "student<number>.ppk" on Desktop | ||
+ | => convert the saved key and save it with "student<number>_conv.ppk" on Desktop | ||
+ | |||
+ | => provide the PUBLIC generated key to us | ||
+ | -> in the corresponding text file from \\robucsw111\RND\RD_EST\DevOps_Summer_School_2022 => SSH public keys | ||
+ | |||
+ | => configure your Moba session as follows: | ||
+ | - Session => SSH | ||
+ | - Remote host: <VM ID from the first table> | ||
+ | - Specify username: student<number> | ||
+ | - Advanced SSH settings: | ||
+ | - Use private key - select your "student<number>_conv.ppk" file, generated previously | ||
+ | - Network settings: | ||
+ | - SSH gateway jump hosts | ||
+ | - Gateway: 10.220.74.82 | ||
+ | - Username: student<number> | ||
+ | - Use SSH key - select your "student<number>_conv.ppk" file, generated previously | ||
+ | - OK | ||
+ | |||
+ | => double click on the session and you should be logged in on the "term-vm<number>" machine | ||
+ | - also, the session will be stored for future connections | ||
+ | |||
+ | 4. Open the "links.html" directly, it should open a new Microsoft Edge webpage | ||
+ | |||
+ | 5. Go to Jenkins | ||
+ | => username: student<number> | ||
+ | => password: student | ||
+ | |||
+ | (if possible, remind the trainer that his account is "bcroitoru", he keeps forgetting that :D) | ||
+ | |||
+ | 6. Go to Gitlab | ||
+ | => username: TGI | ||
+ | => password: thales<last 3 digits of TGI> | ||
+ | |||
+ | => go to Projects -> Explore projects and search for the "Devops Example" project | ||
+ | => switch to branch develop | ||
+ | => add your PUBLIC SSH key from the previous steps to your account | ||
+ | (from now on, you should be able to use commands without password in the terminal) | ||
+ | |||
+ | But I have better news for you, today we will only work through the Gitlab interface! :D | ||
+ | |||
+ | 7. Make a new branch in Git, FROM "develop", with "student<number>" | ||
+ | => you have the "+" next to the branch name, choose "New branch" | ||
+ | => set the branch name "student<number>", select "from develop" and Create it | ||
+ | => switch to the new branch if this is not done automatically | ||
+ | |||
+ | -----//Commands to do that in terminal// | ||
+ | --- git clone <repository> | ||
+ | --- git checkout develop | ||
+ | --- git checkout -b student<number> | ||
+ | --- git push origin student<number> | ||
+ | ----- | ||
+ | |||
+ | 8. Update the Jenkinsfile with your name in the "echo message" stage, commit & push | ||
+ | => you can do that directly from the Gitlab interface | ||
+ | |||
+ | -----//Commands to do that in terminal// | ||
+ | --- git checkout student<number> | ||
+ | --- vim Jenkinsfile | ||
+ | --- git add Jenkinsfile | ||
+ | --- git commit -m "<commit_message>" | ||
+ | --- git push origin student<number> | ||
+ | ----- | ||
+ | |||
+ | 8.1. Let's check Nexus together | ||
+ | |||
+ | 9. Check what happens in Jenkins - can you see your branch there? Why do we have a running build? | ||
+ | 9.1. Let's check Nexus together | ||
+ | |||
+ | 10. Update the Jenkinsfile with a new stage "Execute extra sh commands" | ||
+ | => in the new stage, you will run 2 commands | ||
+ | => the first one is "pwd", we want to see where we are | ||
+ | => the second one is "date" but this time we want to REDIRECT its output (how do we do that?) to a "current_date.txt" file | ||
+ | => commit & push | ||
+ | |||
+ | 11. Check what happens ; from the job page, we have the "Workspaces" directory... what can we find there? | ||
+ | |||
+ | 12. (bonus) Update the Jenkinsfile again, with a "post" block that will archive the "*.txt" artifacts | ||
+ | => check how to do that, commit & push and see if the files that match the above pattern are saved directly in the current job's page | ||
+ | |||
+ | 13. (bonus) Let's play a little bit with scripting | ||
+ | => update the Jenkinsfile again | ||
+ | => this time, we want to do the following: after getting the date in the "current_date.txt" file (so AFTER this command), run some bash commands in the same "sh" block to REPLACE "2021" with "WOW" :) | ||
+ | => the result should be the same as above, but the file should contain "WOW" instead of "2021" | ||
+ | |||
+ | 14. (bonus) Only for the 1st student that gets to this point! | ||
+ | => "create a merge request" from the Gitlab interface, from your branch to develop branch, and ask the trainer to approve your pull request | ||