├── 2023 ├── day01 │ ├── README.md │ └── devops.txt ├── day02 │ ├── README.md │ ├── basic_linux_commands.md │ └── solution.md ├── day03 │ ├── README.md │ └── solution.md ├── day04 │ └── README.md ├── day05 │ └── README.md ├── day06 │ ├── README.md │ └── notes │ │ └── Linux_Basic_&_FilePermissions.docx ├── day07 │ └── README.md ├── day08 │ └── README.md ├── day09 │ └── README.md ├── day10 │ └── README.md ├── day11 │ └── README.md ├── day12 │ └── README.md ├── day13 │ └── README.md ├── day14 │ └── README.md ├── day15 │ ├── README.md │ ├── parser.py │ ├── services.json │ └── services.yaml ├── day16 │ └── README.md ├── day17 │ └── README.md ├── day18 │ ├── README.md │ └── docker-compose.yaml ├── day19 │ ├── README.md │ └── sample_project_deployment.yaml ├── day20 │ └── README.md ├── day21 │ └── README.md ├── day22 │ └── README.md ├── day23 │ └── README.md ├── day24 │ └── README.md ├── day25 │ └── README.md ├── day26 │ └── README.md ├── day27 │ └── README.md ├── day28 │ └── README.md ├── day29 │ └── README.md ├── day30 │ └── README.md ├── day31 │ ├── README.md │ └── pod.yml ├── day32 │ ├── Deployment.yml │ └── README.md ├── day33 │ └── README.md ├── day34 │ └── README.md ├── day35 │ └── README.md ├── day36 │ ├── Deployment.yml │ ├── README.md │ ├── pv.yml │ └── pvc.yml ├── day37 │ └── README.md ├── day38 │ └── README.md ├── day39 │ └── README.md ├── day40 │ └── README.md ├── day41 │ └── README.md ├── day42 │ └── README.md ├── day43 │ ├── README.md │ └── aws-cli.md ├── day44 │ └── README.md ├── day45 │ └── README.md ├── day46 │ └── README.md ├── day47 │ └── README.md ├── day48 │ └── README.md ├── day49 │ └── README.md ├── day50 │ └── README.md ├── day51 │ └── README.md ├── day52 │ └── README.md ├── day53 │ └── README.md ├── day54 │ └── README.md ├── day55 │ └── README.md ├── day56 │ └── README.md ├── day57 │ └── README.md ├── day58 │ └── README.md ├── day59 │ └── README.md ├── day60 │ └── README.md ├── day61 │ └── README.md ├── day62 │ └── README.md ├── day63 │ └── README.md ├── day64 │ └── README.md ├── day65 │ └── README.md ├── day66 │ └── README.md ├── day67 │ └── README.md ├── day68 │ └── README.md ├── day69 │ └── README.md ├── day70 │ └── README.md ├── day71 │ └── README.md ├── day72 │ └── README.md ├── day73 │ └── README.md ├── day74 │ └── README.md ├── day75 │ └── README.md ├── day76 │ └── README.md ├── day77 │ └── README.md ├── day78 │ └── README.md ├── day79 │ └── README.md ├── day80 │ └── README.md ├── day81 │ └── README.md ├── day82 │ └── README.md ├── day83 │ └── README.md ├── day84 │ └── README.md ├── day85 │ └── README.md ├── day86 │ └── README.md ├── day87 │ └── README.md ├── day88 │ └── README.md ├── day89 │ └── README.md └── day90 │ └── README.md ├── 2024 ├── day01 │ └── README.md ├── day02 │ └── readme.md ├── day03 │ ├── README.md │ ├── image │ │ ├── task 1.png │ │ ├── task 10.png │ │ ├── task 11.png │ │ ├── task 12.png │ │ ├── task 2.png │ │ ├── task 3.png │ │ ├── task 4.png │ │ ├── task 5.png │ │ ├── task 6.png │ │ ├── task 66.png │ │ ├── task 7.png │ │ ├── task 8.png │ │ └── task 9.png │ └── solution.md ├── day04 │ ├── README.md │ ├── image │ │ ├── task 1.png │ │ ├── task 11.png │ │ ├── task 2.png │ │ ├── task 3.png │ │ ├── task 4.png │ │ └── task 5.png │ └── solution.md ├── day05 │ ├── README.md │ ├── image │ │ ├── task 1-2.png │ │ ├── task 1-3.png │ │ ├── task 1.png │ │ ├── task 2-1.png │ │ ├── task 2.png │ │ ├── task 3-1.png │ │ ├── task 3.png │ │ └── task 4.png │ └── solution.md ├── day06 │ ├── README.md │ ├── image │ │ ├── task1.png │ │ ├── task3.png │ │ ├── task4-1.png │ │ ├── task4.png │ │ ├── task5-1.png │ │ ├── task5-2.png │ │ ├── task5.png │ │ ├── task6-1.png │ │ └── task6.png │ └── solution.md ├── day07 │ ├── README.md │ ├── image │ │ ├── task1-2.png │ │ ├── task1.png │ │ ├── task4.png │ │ ├── task5-1.png │ │ ├── task5.png │ │ ├── task6-1.png │ │ ├── task6.png │ │ └── taskj2.png │ └── solution.md ├── day08 │ ├── README.md │ ├── image │ │ ├── task1.png │ │ ├── task2.png │ │ ├── task3.png │ │ ├── task4.png │ │ ├── task5.png │ │ └── task6.png │ └── solution.md ├── day09 │ ├── README.md │ ├── image │ │ ├── bash1.png │ │ ├── task1-2.png │ │ ├── task11.png │ │ ├── task2.png │ │ └── task3.png │ └── solution.md ├── day10 │ ├── README.md │ ├── image │ │ ├── output.png │ │ ├── task1.png │ │ └── task2.png │ └── solution.md ├── day11 │ ├── README.md │ ├── image │ │ ├── task1.png │ │ ├── task2.png │ │ ├── task3.png │ │ ├── task4.png │ │ ├── task5.png │ │ └── task5ka1.png │ └── solution.md ├── day12 │ ├── README.md │ ├── image │ │ ├── connect_your_local_repository_to_the_repository_on_github.png │ │ ├── create_a_new_file.png │ │ ├── create_a_new_repository.png │ │ ├── gitui.png │ │ ├── gitui1.png │ │ ├── gitui2.png │ │ ├── push_repository.png │ │ └── set_user_name_and_email_address.png │ └── solution.md ├── day13 │ ├── README.md │ ├── image │ │ ├── 1 Create a Branch and Add a Feature.png │ │ ├── 10 Screenshot of branch structure.png │ │ ├── 11 Merge Changes into Master_main.png │ │ ├── 12 Practice Rebase.png │ │ ├── 2 Create a new branch.png │ │ ├── 3 Commit your changes with a message reflecting.png │ │ ├── 4 Push your local commits to the repository on GitHub.png │ │ ├── 5 This is the bug fix in development branch.png │ │ ├── 6 This is gadbad code.png │ │ ├── 7 This feature will gadbad everything from now.png │ │ ├── 8 Restore the File to a Previous Version.png │ │ └── 9 Create 2 or more branches.png │ └── solution.md ├── day14 │ ├── Git_cheat_sheet_rajat.pdf │ ├── Linux_cheat_sheet_rajat.pdf │ ├── README.md │ └── solution.md ├── day15 │ ├── README.md │ ├── image │ │ └── Installation_Python.png │ └── solution.md ├── day16 │ ├── README.md │ ├── image │ │ ├── 1_Start_a_New_Container.png │ │ ├── 2_docker_inspect.png │ │ ├── 3_docker_port.png │ │ ├── 4_docker_stats.png │ │ ├── 5_docker_top.png │ │ ├── 6_docker_save.png │ │ └── 7_docker_load.png │ └── solution.md ├── day17 │ ├── README.md │ ├── code.txt │ ├── image │ │ ├── 1_Create_a_new_directory.png │ │ ├── 2_app_py.png │ │ ├── 3_Create_a_requirements_file.png │ │ ├── 4_Create_a_Dockerfile.png │ │ ├── 5_build_the_docker_image.png │ │ ├── 6_Run_the_Container.png │ │ ├── 7_Verify_the_Application.png │ │ ├── 8_Tag_the_Image.png │ │ └── 9_Push_the_Image.png │ └── solution.md ├── day18 │ ├── README.md │ ├── image │ │ ├── 10_Remove_the_container.png │ │ ├── 1_docker_compose_yml_file.png │ │ ├── 2_Pull_the_Docker_image.png │ │ ├── 3_Add_the_current_user_to_the_Docker_group.png │ │ ├── 4_Reboot_the_machine_to_apply_the_changes.png │ │ ├── 5_Run_the_Docker_container.png │ │ ├── 6_Inspect_the_container.png │ │ ├── 7_View_the_logs.png │ │ ├── 8_Stop_the_container.png │ │ ├── 9_Start_the_container.png │ │ └── task1.png │ └── solution.md ├── day19 │ ├── README.md │ └── images │ │ ├── Screenshot (113).png │ │ ├── Screenshot (114).png │ │ ├── Screenshot (116).png │ │ ├── Screenshot (117).png │ │ ├── Screenshot (118).png │ │ ├── Screenshot (119).png │ │ └── Screenshot (120).png ├── day20 │ ├── Docker_cheat_sheet.pdf │ └── README.md ├── day21 │ └── README.md ├── day22 │ └── README.md ├── day23 │ └── README.md ├── day24 │ └── README.md ├── day25 │ └── README.md ├── day26 │ └── README.md ├── day27 │ └── README.md ├── day28 │ └── README.md ├── day29 │ └── README.md ├── day30 │ └── README.md ├── day31 │ ├── README.md │ └── pod.yml ├── day32 │ ├── Deployment.yml │ └── README.md ├── day33 │ └── README.md ├── day34 │ └── README.md ├── day35 │ └── README.md ├── day36 │ ├── Deployment.yml │ ├── README.md │ ├── pv.yml │ └── pvc.yml ├── day37 │ └── README.md ├── day38 │ └── README.md ├── day39 │ └── README.md ├── day40 │ └── README.md ├── day41 │ └── README.md ├── day42 │ └── README.md ├── day43 │ ├── README.md │ └── aws-cli.md ├── day44 │ └── README.md ├── day45 │ └── README.md ├── day46 │ └── README.md ├── day47 │ └── README.md ├── day48 │ └── README.md ├── day49 │ └── README.md ├── day50 │ └── README.md ├── day51 │ └── README.md ├── day52 │ └── README.md ├── day53 │ └── README.md ├── day54 │ └── README.md ├── day55 │ └── README.md ├── day56 │ └── README.md ├── day57 │ └── README.md ├── day58 │ └── README.md ├── day59 │ └── README.md ├── day60 │ └── README.md ├── day61 │ └── README.md ├── day62 │ └── README.md ├── day63 │ └── README.md ├── day64 │ └── README.md ├── day65 │ └── README.md ├── day66 │ └── README.md ├── day67 │ └── README.md ├── day68 │ └── README.md ├── day69 │ └── README.md ├── day70 │ └── README.md ├── day71 │ └── README.md ├── day72 │ └── README.md ├── day73 │ └── README.md ├── day74 │ └── README.md ├── day75 │ └── README.md ├── day76 │ └── README.md ├── day77 │ └── README.md ├── day78 │ └── README.md ├── day79 │ └── README.md ├── day80 │ └── README.md ├── day81 │ └── README.md ├── day82 │ └── README.md ├── day83 │ └── README.md ├── day84 │ └── README.md ├── day85 │ └── README.md ├── day86 │ └── README.md ├── day87 │ └── README.md ├── day88 │ └── README.md ├── day89 │ └── README.md └── day90 │ └── README.md ├── 2025 ├── ansible │ └── README.md ├── aws │ └── README.md ├── cicd │ └── README.md ├── docker │ └── README.md ├── git │ ├── 01_Git_and_Github_Basics │ │ └── README.md │ └── 02_Git_and_Github_Advanced │ │ └── README.md ├── kubernetes │ └── README.md ├── linux │ └── README.md ├── networking │ └── README.md ├── observability │ └── README.md ├── projects │ └── README.md ├── shell_scripting │ └── README.md └── terraform │ └── README.md ├── .github └── workflows │ └── stale.yml ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md └── TOC.md /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. 2 | # 3 | # You can adjust the behavior by modifying this file. 4 | # For more information, see: 5 | # https://github.com/actions/stale 6 | name: Mark stale issues and pull requests 7 | 8 | on: 9 | schedule: 10 | - cron: '20 7 * * *' 11 | 12 | jobs: 13 | stale: 14 | 15 | runs-on: ubuntu-latest 16 | permissions: 17 | issues: write 18 | pull-requests: write 19 | 20 | steps: 21 | - uses: actions/stale@v5 22 | with: 23 | repo-token: ${{ secrets.GITHUB_TOKEN }} 24 | stale-issue-message: 'Stale issue message' 25 | stale-pr-message: 'Stale pull request message' 26 | stale-issue-label: 'no-issue-activity' 27 | stale-pr-label: 'no-pr-activity' 28 | -------------------------------------------------------------------------------- /2023/day01/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction - Day 1 2 | 3 | This is the day you have to Take this challenge and start your #90DaysOfDevOps with the #TrainWithShubham Community 4 | 5 | - Fork this Repo. 6 | - Start with a DevOps Roadmap[https://youtu.be/iOE9NTAG35g] 7 | - Write a LinkedIn post or a small article about your understanding of DevOps 8 | - What is DevOps 9 | - What is Automation, Scaling, Infrastructure 10 | - Why DevOps is Important, etc 11 | 12 | [Next Day →](../day02/README.md) 13 | -------------------------------------------------------------------------------- /2023/day01/devops.txt: -------------------------------------------------------------------------------- 1 | DevOps is a methodology which Involves practices to bridge the gap of Dev and ops team by using Open source automation build tools. 2 | These are the articles which I refered to, 3 | 4 | 5 | formal defination : "DevOps is the union of people, process, and products to enable continuous delivery of value to our end users." 6 | 7 | The main goal of DEVOPS is to shorten cycle time. Start with the release pipeline. How long does it take to deploy a change of one line of code or configuration. 8 | 9 | -------------------------------------------------------------------------------- /2023/day02/README.md: -------------------------------------------------------------------------------- 1 | Day 2 Task: Basics linux command 2 | 3 | Task: What is the linux command to 4 | 5 | 1. Check your present working directory. 6 | 2. List all the files or directories including hidden files. 7 | 3. Create a nested directory A/B/C/D/E 8 | 9 | Note: [Check this file for reference](basic_linux_commands.md) 10 | 11 | Check the basic_linux_commands.md file on the same directory day2 12 | 13 | [← Previous Day](../day01/README.md) | [Next Day →](../day03/README.md) 14 | -------------------------------------------------------------------------------- /2023/day02/basic_linux_commands.md: -------------------------------------------------------------------------------- 1 | ## Basic linux commands 2 | 3 | ### Listing commands 4 | ```ls option_flag arguments ```--> list the sub directories and files avaiable in the present directory 5 | 6 | Examples: 7 | 8 | - ``` ls -l ```--> list the files and directories in long list format with extra information 9 | - ```ls -a ```--> list all including hidden files and directory 10 | - ```ls *.sh``` --> list all the files having .sh extension. 11 | 12 | - ```ls -i ``` --> list the files and directories with index numbers inodes 13 | - ``` ls -d */``` --> list only directories.(we can also specify a pattern) 14 | 15 | ### Directoy commands 16 | - ```pwd``` --> print work directory. Gives the present working directory. 17 | 18 | - ```cd path_to_directory``` --> change directory to the provided path 19 | 20 | - ```cd ~ ``` or just ```cd ``` --> change directory to the home directory 21 | 22 | - ``` cd - ``` --> Go to the last working directory. 23 | 24 | - ``` cd ..``` --> change directory to one step back. 25 | 26 | - ``` cd ../..``` --> Change directory to 2 levels back. 27 | 28 | - ``` mkdir directoryName``` --> to make a directory in a specific location 29 | 30 | Examples: 31 | ``` 32 | mkdir newFolder # make a new folder 'newFolder' 33 | 34 | mkdir .NewFolder # make a hidden directory (also . before a file to make it hidden) 35 | 36 | mkdir A B C D #make multiple directories at the same time 37 | 38 | mkdir /home/user/Mydirectory # make a new folder in a specific location 39 | 40 | mkdir -p A/B/C/D # make a nested directory 41 | ``` 42 | -------------------------------------------------------------------------------- /2023/day03/README.md: -------------------------------------------------------------------------------- 1 | Day 3 Task: Basic Linux Commands 2 | 3 | Task: What is the linux command to 4 | 5 | 1. To view what's written in a file. 6 | 2. To change the access permissions of files. 7 | 3. To check which commands you have run till now. 8 | 4. To remove a directory/ Folder. 9 | 5. To create a fruits.txt file and to view the content. 10 | 6. Add content in devops.txt (One in each line) - Apple, Mango, Banana, Cherry, Kiwi, Orange, Guava. 11 | 7. To Show only top three fruits from the file. 12 | 8. To Show only bottom three fruits from the file. 13 | 9. To create another file Colors.txt and to view the content. 14 | 10. Add content in Colors.txt (One in each line) - Red, Pink, White, Black, Blue, Orange, Purple, Grey. 15 | 11. To find the difference between fruits.txt and Colors.txt file. 16 | 17 | Reference: https://www.linkedin.com/pulse/linux-commands-devops-used-day-to-day-activit-chetan-/ 18 | 19 | [← Previous Day](../day02/README.md) | [Next Day →](../day04/README.md) 20 | -------------------------------------------------------------------------------- /2023/day03/solution.md: -------------------------------------------------------------------------------- 1 | 2 | # Basic Linux Commands 3 | 4 | 1. To view what's written in a file. 5 | - ``` cat filename ``` 6 | 7 | ![3 1](https://user-images.githubusercontent.com/76457594/210305889-d19f82d5-dbb1-46fc-99e2-b217146b6e8a.png) 8 | 9 | 10 | 11 | 2. To change the access permissions of files. 12 | 13 | - ``` chmod 777 foldername ``` 14 | 15 | ![Uploading 3.2.png…]() 16 | 17 | 3. To check which commands you have run till now. 18 | 19 | - ``` history ``` 20 | 21 | ![Uploading 3.3.png…]() 22 | 23 | 4. To remove a directory/ Folder. 24 | 25 | - ``` rm filename ``` 26 | 27 | ![3 4](https://user-images.githubusercontent.com/76457594/210308917-7281e0eb-6fcb-4554-8ffe-835cf0b961d1.png) 28 | 29 | - ``` rmdir foldername ``` 30 | 31 | ![3 4b](https://user-images.githubusercontent.com/76457594/210309299-367e6253-7e11-4ead-a19c-6eb3922780d1.png) 32 | 33 | 5. To create a fruits.txt file and to view the content. 34 | - ``` vim fruits.txt ``` 35 | - ``` cat fruits.txt ``` 36 | 37 | ![3 5](https://user-images.githubusercontent.com/76457594/210311435-e6f8aa0c-dc0c-44a6-84e7-6e4c91e4ea87.png) 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /2023/day04/README.md: -------------------------------------------------------------------------------- 1 | # Day 4 Task: Basic Linux Shell Scripting for DevOps Engineers. 2 | 3 | ## What is Kernel 4 | 5 | The kernel is a computer program that is the core of a computer’s operating system, with complete control over everything in the system. 6 | 7 | ## What is Shell 8 | 9 | A shell is special user program which provide an interface to user to use operating system services. Shell accept human readable commands from user and convert them into something which kernel can understand. It is a command language interpreter that execute commands read from input devices such as keyboards or from files. The shell gets started when the user logs in or start the terminal. 10 | 11 | ## What is Linux Shell Scripting? 12 | 13 | A shell script is a computer program designed to be run by a linux shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manipulation, program execution, and printing text. 14 | 15 | **Tasks** 16 | 17 | - Explain in your own words and examples, what is Shell Scripting for DevOps. 18 | - What is `#!/bin/bash?` can we write `#!/bin/sh` as well? 19 | - Write a Shell Script which prints `I will complete #90DaysOofDevOps challenge` 20 | - Write a Shell Script to take user input, input from arguments and print the variables. 21 | - Write an Example of If else in Shell Scripting by comparing 2 numbers 22 | 23 | Was it difficult? 24 | 25 | - Post about it on LinkedIn and Let me know :) 26 | 27 | Article Reference: [Click here to read basic Linux Shell Scripting](https://devopscube.com/linux-shell-scripting-for-devops/) 28 | 29 | YouTube Video: [EASIEST Shell Scripting Tutorial for DevOps Engineers](https://www.youtube.com/watch?v=_-D6gkRj7xc&list=PLlfy9GnSVerQr-Se9JRE_tZJk3OUoHCkh&index=3) 30 | 31 | [← Previous Day](../day03/README.md) | [Next Day →](../day05/README.md) 32 | -------------------------------------------------------------------------------- /2023/day06/README.md: -------------------------------------------------------------------------------- 1 | # Day 6 Task: File Permissions and Access Control Lists 2 | 3 | ### Today is more on Reading, Learning and Implementing File permissions 4 | 5 | The concept of Linux File permission and ownership is important in Linux. 6 | Here, we will be working on Linux permissions and ownership and will do tasks on 7 | both of them. 8 | Let us start with the Permissions. 9 | 10 | 1. Create a simple file and do `ls -ltr` to see the details of the files [refer to Notes](https://github.com/LondheShubham153/90DaysOfDevOps/tree/master/2023/day06/notes) 11 | 12 | Each of the three permissions are assigned to three defined categories of users. The categories are: 13 | 14 | - owner — The owner of the file or application. 15 | - "chown" is used to change the ownership permission of a file or directory. 16 | - group — The group that owns the file or application. 17 | - "chgrp" is used to change the group permission of a file or directory. 18 | - others — All users with access to the system. (outised the users are in a group) 19 | - "chmod" is used to change the other users permissions of a file or directory. 20 | 21 | As a task, change the user permissions of the file and note the changes after `ls -ltr` 22 | 23 | 2. Write an article about File Permissions based on your understanding from the notes. 24 | 25 | 3. Read about ACL and try out the commands `getfacl` and `setfacl` 26 | 27 | In case of any doubts, post it on [Discord Community](https://discord.gg/hs3Pmc5F) 28 | 29 | Happy Learning 30 | 31 | [← Previous Day](../day05/README.md) | [Next Day →](../day07/README.md) 32 | -------------------------------------------------------------------------------- /2023/day06/notes/Linux_Basic_&_FilePermissions.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2023/day06/notes/Linux_Basic_&_FilePermissions.docx -------------------------------------------------------------------------------- /2023/day09/README.md: -------------------------------------------------------------------------------- 1 | # Day 9 Task: Deep Dive in Git & GitHub for DevOps Engineers. 2 | 3 | ## Find the answers by your understandings(Shoulden't be copied by internet & used hand-made diagrams) of below quistions and Write blog on it. 4 | 5 | 1. What is Git and why is it important? 6 | 2. What is difference Between Main Branch and Master Branch?? 7 | 3. Can you explain the difference between Git and GitHub? 8 | 4. How do you create a new repository on GitHub? 9 | 5. What is difference between local & remote repository? How to connect local to remote? 10 | 11 | ## Tasks 12 | 13 | task-1: 14 | 15 | - Set your user name and email address, which will be associated with your commits. 16 | 17 | task-2: 18 | 19 | - Create a repository named "Devops" on GitHub 20 | - Connect your local repository to the repository on GitHub. 21 | - Create a new file in Devops/Git/Day-02.txt & add some content to it 22 | - Push your local commits to the repository on GitHub 23 | 24 | reff :- https://youtu.be/AT1uxOLsCdk 25 | 26 | Note: These steps assume that you have already installed Git on your computer and have created a GitHub account. If you need help with these prerequisites, you can refer to the [day-08](https://github.com/LondheShubham153/90DaysOfDevOps/blob/ee7c53f276edb02a85a97282027028295be17c04/2023/day08/README.md) 27 | 28 | [← Previous Day](../day08/README.md) | [Next Day →](../day10/README.md) 29 | -------------------------------------------------------------------------------- /2023/day12/README.md: -------------------------------------------------------------------------------- 1 | ## Finally!! 🎉 2 | 3 | You have completed the Linux & Git-GitHub handson and I hope you have learned something interesting from it.🙌 4 | 5 | Now why not make an interesting 😉 assignment, which not only will help you for the future but also for the DevOps Community! 6 | 7 | Let’s make a well articulated and documented **"cheat-sheet"** with all the commands you learned so far in Linux, Git-GitHub and brief info about its usage. 8 | 9 | Let’s show us your knowledge mixed with your creativity😎 10 | 11 | _I have added a [cheatsheet](https://education.github.com/git-cheat-sheet-education.pdf) for your reference, Make sure every cheatsheet must be UNIQUE_ 12 | 13 | Post it on Linkedin and Spread the knowledge.😃 14 | 15 | **Happy Learning :)** 16 | 17 | [← Previous Day](../day11/README.md) | [Next Day →](../day13/README.md) 18 | -------------------------------------------------------------------------------- /2023/day13/README.md: -------------------------------------------------------------------------------- 1 | Hello Dosto 😎 2 | 3 | Let's Start with Basics of Python as this is also important for Devops Engineer to build the logic and Programs. 4 | 5 | **What is Python?** 6 | 7 | - Python is a Open source, general purpose, high level, and object-oriented programming language. 8 | - It was created by **Guido van Rossum** 9 | - Python consists of vast libraries and various frameworks like Django,Tensorflow, Flask, Pandas, Keras etc. 10 | 11 | **How to Install Python?** 12 | 13 | You can install Python in your System whether it is window, MacOS, ubuntu, centos etc. Below are the links for the installation: 14 | 15 | - [Windows Installation](https://www.python.org/downloads/) 16 | - Ubuntu: apt-get install python3.6 17 | 18 | Task1: 19 | 20 | 1. Install Python in your respective OS, and check the version. 21 | 2. Read about different Data Types in Python. 22 | 23 | You can get the complete Playlist [here](https://www.youtube.com/watch?v=abPgj_3hzVY&list=PLlfy9GnSVerS_L5z0COaF7rsbgWmJXTOM)🙌 24 | 25 | Don't forget to share your Journey over linkedin. Let the community know that you have started another chapter of your Journey. 26 | 27 | Happy Learning, Ruko Mat Phod do😃 28 | 29 | [← Previous Day](../day12/README.md) | [Next Day →](../day14/README.md) 30 | -------------------------------------------------------------------------------- /2023/day15/README.md: -------------------------------------------------------------------------------- 1 | ## Day 15 Task: Python Libraries for DevOps 2 | 3 | ### Reading JSON and YAML in Python 4 | 5 | - As a DevOps Engineer you should be able to parse files, be it txt, json, yaml, etc. 6 | - You should know what all libraries one should use in Pythonfor DevOps. 7 | - Python has numerous libraries like `os`, `sys`, `json`, `yaml` etc that a DevOps Engineer uses in day to day tasks. 8 | 9 | ## Tasks 10 | 11 | 1. Create a Dictionary in Python and write it to a json File. 12 | 13 | 2. Read a json file `services.json` kept in this folder and print the service names of every cloud service provider. 14 | 15 | ``` 16 | output 17 | 18 | aws : ec2 19 | azure : VM 20 | gcp : compute engine 21 | 22 | ``` 23 | 24 | 3. Read YAML file using python, file `services.yaml` and read the contents to convert yaml to json 25 | 26 | Python Project for your practice: 27 | https://youtube.com/playlist?list=PLlfy9GnSVerSzFmQ8JqP9v0XHHOAeWbjo 28 | 29 | [← Previous Day](../day14/README.md) | [Next Day →](../day16/README.md) 30 | -------------------------------------------------------------------------------- /2023/day15/parser.py: -------------------------------------------------------------------------------- 1 | import json 2 | import yaml 3 | 4 | json_file = "services.json" 5 | yaml_file = "services.yaml" 6 | 7 | with open(json_file, 'r', encoding='utf-8') as f: 8 | json_data = json.loads(f.read()) 9 | 10 | print("JSON:\n",json_data) 11 | 12 | with open(yaml_file, "r") as stream: 13 | try: 14 | yaml_data = yaml.safe_load(stream) 15 | except yaml.YAMLError as exc: 16 | print(exc) 17 | 18 | 19 | print("YAML:\n",yaml_data) -------------------------------------------------------------------------------- /2023/day15/services.json: -------------------------------------------------------------------------------- 1 | { 2 | "services": { 3 | "debug": "on", 4 | "aws": { 5 | "name": "EC2", 6 | "type": "pay per hour", 7 | "instances": 500, 8 | "count": 500 9 | }, 10 | "azure": { 11 | "name": "VM", 12 | "type": "pay per hour", 13 | "instances": 500, 14 | "count": 500 15 | }, 16 | "gcp": { 17 | "name": "Compute Engine", 18 | "type": "pay per hour", 19 | "instances": 500, 20 | "count": 500 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /2023/day15/services.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | services: 3 | debug: 'on' 4 | aws: 5 | name: EC2 6 | type: pay per hour 7 | instances: 500 8 | count: 500 9 | azure: 10 | name: VM 11 | type: pay per hour 12 | instances: 500 13 | count: 500 14 | gcp: 15 | name: Compute Engine 16 | type: pay per hour 17 | instances: 500 18 | count: 500 19 | -------------------------------------------------------------------------------- /2023/day16/README.md: -------------------------------------------------------------------------------- 1 | ## Day 16 Task: Docker for DevOps Engineers. 2 | 3 | ### Docker 4 | 5 | Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run. 6 | 7 | # Tasks 8 | 9 | As you have already installed docker in previous days tasks, now is the time to run Docker commands. 10 | 11 | - Use the `docker run` command to start a new container and interact with it through the command line. [Hint: docker run hello-world] 12 | 13 | - Use the `docker inspect` command to view detailed information about a container or image. 14 | 15 | - Use the `docker port` command to list the port mappings for a container. 16 | 17 | - Use the `docker stats` command to view resource usage statistics for one or more containers. 18 | 19 | - Use the `docker top` command to view the processes running inside a container. 20 | 21 | - Use the `docker save` command to save an image to a tar archive. 22 | 23 | - Use the `docker load` command to load an image from a tar archive. 24 | 25 | These tasks involve simple operations that can be used to manage images and containers. 26 | 27 | For reference you can watch this video: 28 | https://youtu.be/Tevxhn6Odc8 29 | 30 | You can Post on LinkedIn and let us know what you have learned from this task by #90DaysOfDevOps Challenge. Happy Learning :) 31 | 32 | [← Previous Day](../day15/README.md) | [Next Day →](../day17/README.md) 33 | -------------------------------------------------------------------------------- /2023/day17/README.md: -------------------------------------------------------------------------------- 1 | ## Day 17 Task: Docker Project for DevOps Engineers. 2 | 3 | ### You people are doing just amazing in **#90daysofdevops**. Today's challenge is so special Because You are going to do DevOps project today with Docker. Are You Exited 😍 4 | 5 | # Dockerfile 6 | 7 | Docker is a tool that makes it easy to run applications in containers. Containers are like small packages that hold everything an application needs to run. To create these containers, developers use something called a Dockerfile. 8 | 9 | A Dockerfile is like a set of instructions for making a container. It tells Docker what base image to use, what commands to run, and what files to include. For example, if you were making a container for a website, the Dockerfile might tell Docker to use an official web server image, copy the files for your website into the container, and start the web server when the container starts. 10 | 11 | For more about Dockerfile visit [here](https://rushikesh-mashidkar.hashnode.dev/dockerfile-docker-compose-swarm-and-volumes) 12 | 13 | task: 14 | 15 | - Create a Dockerfile for a simple web application (e.g. a Node.js or Python app) 16 | 17 | - Build the image using the Dockerfile and run the container 18 | 19 | - Verify that the application is working as expected by accessing it in a web browser 20 | 21 | - Push the image to a public or private repository (e.g. Docker Hub ) 22 | 23 | For Refference Project visit [here](https://youtu.be/Tevxhn6Odc8) 24 | 25 | If you want to dive further, Watch [bootcamp](https://youtube.com/playlist?list=PLlfy9GnSVerRqYJgVYO0UiExj5byjrW8u) 26 | 27 | You can share the learning with everyone over linkedin and tag us along 😃 28 | 29 | Happy Learning:) 30 | 31 | [← Previous Day](../day16/README.md) | [Next Day →](../day18/README.md) 32 | -------------------------------------------------------------------------------- /2023/day18/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version : "3.3" 2 | services: 3 | web: 4 | image: nginx:latest 5 | ports: 6 | - "80:80" 7 | db: 8 | image: mysql 9 | ports: 10 | - "3306:3306" 11 | environment: 12 | - "MYSQL_ROOT_PASSWORD=test@123" 13 | -------------------------------------------------------------------------------- /2023/day19/sample_project_deployment.yaml: -------------------------------------------------------------------------------- 1 | version : "3.3" 2 | services: 3 | web: 4 | image: varsha0108/local_django:latest 5 | deploy: 6 | replicas: 2 7 | ports: 8 | - "8001-8005:8001" 9 | volumes: 10 | - my_django_volume:/app 11 | db: 12 | image: mysql 13 | ports: 14 | - "3306:3306" 15 | environment: 16 | - "MYSQL_ROOT_PASSWORD=test@123" 17 | volumes: 18 | my_django_volume: 19 | external: true 20 | 21 | -------------------------------------------------------------------------------- /2023/day20/README.md: -------------------------------------------------------------------------------- 1 | ## Finally!! 🎉 2 | 3 | You have completed✅ the Docker handson and I hope you have learned something interesting from it.🙌 4 | 5 | Now it's time to take your Docker skills to the next level by creating a comprehensive cheat-sheet of all the commands you've learned so far. This cheat-sheet should include commands for both Docker and Docker-Compose, as well as brief explanations of their usage. 6 | This cheat-sheet will not only help you in the future but also contribute to the DevOps community by providing a useful resource for others.😊🙌 7 | 8 | So, put your knowledge and creativity to the test and create a cheat-sheet that truly stands out! 🚀 9 | 10 | _I have added a [cheatsheet](https://cdn.hashnode.com/res/hashnode/image/upload/v1670863735841/r6xdXpsap.png?auto=compress,format&format=webp) for your reference, Make sure every cheatsheet must be UNIQUE_ 11 | 12 | Post it on Linkedin and Spread the knowledge.😃 13 | 14 | **Happy Learning :)** 15 | 16 | [← Previous Day](../day19/README.md) | [Next Day →](../day21/README.md) 17 | -------------------------------------------------------------------------------- /2023/day21/README.md: -------------------------------------------------------------------------------- 1 | ## Day 21 Task: Docker Important interview Questions. 2 | 3 | ## Docker Interview 4 | 5 | Docker is a good topic to ask in DevOps Engineer Interviews, mostly for freshers. 6 | One must surely try these questions in order to be better in Docker 7 | 8 | ## Questions 9 | 10 | - What is the Difference between an Image, Container and Engine? 11 | - What is the Difference between the Docker command COPY vs ADD? 12 | - What is the Difference between the Docker command CMD vs RUN? 13 | - How Will you reduce the size of the Docker image? 14 | - Why and when to use Docker? 15 | - Explain the Docker components and how they interact with each other. 16 | - Explain the terminology: Docker Compose, Docker File, Docker Image, Docker Container? 17 | - In what real scenarios have you used Docker? 18 | - Docker vs Hypervisor? 19 | - What are the advantages and disadvantages of using docker? 20 | - What is a Docker namespace? 21 | - What is a Docker registry? 22 | - What is an entry point? 23 | - How to implement CI/CD in Docker? 24 | - Will data on the container be lost when the docker container exits? 25 | - What is a Docker swarm? 26 | - What are the docker commands for the following: 27 | - view running containers 28 | - command to run the container under a specific name 29 | - command to export a docker 30 | - command to import an already existing docker image 31 | - commands to delete a container 32 | - command to remove all stopped containers, unused networks, build caches, and dangling images? 33 | - What are the common docker practices to reduce the size of Docker Image? 34 | 35 | These questions will help you in your next DevOps Interview. 36 | _Write a Blog and share it on LinkedIn._ 37 | 38 | **Happy Learning :)** 39 | 40 | [← Previous Day](../day20/README.md) | [Next Day →](../day22/README.md) 41 | -------------------------------------------------------------------------------- /2023/day22/README.md: -------------------------------------------------------------------------------- 1 | # Day-22 : Getting Started with Jenkins 😃 2 | 3 | **Linux, Git, Git-Hub, Docker finish ho chuka hai to chaliye seekhte hai inko deploy krne ke lye CI-CD tool:** 4 | 5 | ## What is Jenkins? 6 | 7 | - Jenkins is an open source continuous integration-continuous delivery and deployment (CI/CD) automation software DevOps tool written in the Java programming language. It is used to implement CI/CD workflows, called pipelines. 8 | 9 | - Jenkins is a tool that is used for automation, and it is an open-source server that allows all the developers to build, test and deploy software. It works or runs on java as it is written in java. By using Jenkins we can make a continuous integration of projects(jobs) or end-to-endpoint automation. 10 | 11 | - Jenkins achieves Continuous Integration with the help of plugins. Plugins allow the integration of Various DevOps stages. If you want to integrate a particular tool, you need to install the plugins for that tool. For example Git, Maven 2 project, Amazon EC2, HTML publisher etc. 12 | 13 | **Let us do discuss the necessity of this tool before going ahead to the procedural part for installation:** 14 | 15 | - Nowadays, humans are becoming lazy😴 day by day so even having digital screens and just one click button in front of us then also need some automation. 16 | 17 | - Here, I’m referring to that part of automation where we need not have to look upon a process(here called a job) for completion and after it doing another job. For that, we have Jenkins with us. 18 | 19 | Note: By now Jenkins should be installed on your machine(as it was a part of previous tasks, if not follow [Installation Guide](https://youtu.be/OkVtBKqMt7I)) 20 | 21 | ## Tasks: 22 | 23 | **1. What you understood in Jenkin, write a small article in your own words (Don't copy from Internet Directly)** 24 | 25 | **2.Create a freestyle pipeline to print "Hello World!!** 26 | Hint: Use link for [Article](https://www.geeksforgeeks.org/what-is-jenkins) 27 | 28 | Don't forget to post your progress on Linkedin. Till then Happy learning :) 29 | 30 | [← Previous Day](../day21/README.md) | [Next Day →](../day23/README.md) 31 | -------------------------------------------------------------------------------- /2023/day24/README.md: -------------------------------------------------------------------------------- 1 | # Day 24 Task: Complete Jenkins CI/CD Project 2 | 3 | Let's make a beautiful CI/CD Pipeline for your Node JS Application 😍 4 | 5 | ## Did you finish Day 23? 6 | 7 | - Day 23 was all about Jenkins CI/CD, make sure you have done it and understood the concepts. As today You will be doing one Project End to End and adding it to your resume :) 8 | - As you have worked with Docker and Docker compose, it will be good to use it in a live project. 9 | 10 | # Task-01 11 | 12 | - Fork [this](https://github.com/LondheShubham153/node-todo-cicd.git) repository: 13 | - Create a connection to your Jenkins job and your GitHub Repository via GitHub Integration. 14 | - Read About [GitHub WebHooks](https://betterprogramming.pub/how-too-add-github-webhook-to-a-jenkins-pipeline-62b0be84e006) and make sure you have CICD setup 15 | - Refer [this](https://youtu.be/nplH3BzKHPk) video for the entire project 16 | 17 | # Task-02 18 | 19 | - In the Execute shell run the application using Docker compose 20 | - You will have to make a Docker Compose file for this Project (Can be a good open source contribution) 21 | - Run the project and give yourself a treat:) 22 | 23 | For Reference and entire hands-on Project visit [here](https://youtu.be/nplH3BzKHPk) 24 | 25 | You can Post on LinkedIn and let us know what you have learned from this task by #90DaysOfDevOps Challenge. 26 | 27 | Happy Learning:) 28 | 29 | [← Previous Day](../day23/README.md) | [Next Day →](../day25/README.md) 30 | -------------------------------------------------------------------------------- /2023/day25/README.md: -------------------------------------------------------------------------------- 1 | # Day 25 Task: Complete Jenkins CI/CD Project - Continued with Documentation 2 | 3 | I can imagine catching up will be tough so take a small breather today and complete the Jenkins CI/CD project from Day 24 and add a documentation. 4 | 5 | ## Did you finish Day 24? 6 | 7 | - Day 24 will give you an End to End project and adding it to your resume will be a cherry on the top. 8 | 9 | - take more time, finish the project, add a Documentation, add it to your Resume and post about it today. 10 | 11 | # Task-01 12 | 13 | - Document the process from cloning the repository to adding webhooks, and Deployment, etc. as a README , go through [this example](https://github.com/LondheShubham153/fynd-my-movie/blob/master/README.md) 14 | 15 | - A well written readme file will help others to understand your project and you will understand how to use the project again without any problems. 16 | 17 | # Task-02 18 | 19 | - Also it's important to keep smaller goals, as its a small task, think of a small Goal you can accomplish. 20 | 21 | - Write about it using [this template](https://www.linkedin.com/posts/shubhamlondhe1996_taking-resolutions-and-having-goals-for-an-activity-7023858409762373632-s2J8?utm_source=share&utm_medium=member_desktop) 22 | 23 | - Have small goals and strategies to achieve them, also have a small reward for yourself. 24 | 25 | For Reference and entire hands-on Project visit [here](https://youtu.be/nplH3BzKHPk) 26 | 27 | You can Post on LinkedIn and let us know what you have learned from this task by #90DaysOfDevOps Challenge. 28 | 29 | Happy Learning:) 30 | 31 | [← Previous Day](../day24/README.md) | [Next Day →](../day26/README.md) 32 | -------------------------------------------------------------------------------- /2023/day27/README.md: -------------------------------------------------------------------------------- 1 | # Day 27 Task: Jenkins Declarative Pipeline with Docker 2 | 3 | Day 26 was all about a Declarative pipeline, now its time to level up things, let's integrate Docker and your Jenkins declarative pipeline 4 | 5 | ## Use your Docker Build and Run Knowledge 6 | 7 | **docker build -** you can use `sh 'docker build . -t ' ` in your pipeline stage block to run the docker build command. (Make sure you have docker installed with correct permissions. 8 | 9 | **docker run:** you can use `sh 'docker run -d '` in your pipeline stage block to build the container. 10 | 11 | **How will the stages look** 12 | 13 | ```groovy 14 | stages { 15 | stage('Build') { 16 | steps { 17 | sh 'docker build -t trainwithshubham/django-app:latest' 18 | } 19 | } 20 | } 21 | ``` 22 | 23 | # Task-01 24 | 25 | - Create a docker-integrated Jenkins declarative pipeline 26 | - Use the above-given syntax using `sh` inside the stage block 27 | - You will face errors in case of running a job twice, as the docker container will be already created, so for that do task 2 28 | 29 | # Task-02 30 | 31 | - Create a docker-integrated Jenkins declarative pipeline using the `docker` groovy syntax inside the stage block. 32 | - You won't face errors, you can Follow [this documentation](https://tempora-mutantur.github.io/jenkins.io/github_pages_test/doc/book/pipeline/docker/) 33 | 34 | - Complete your previous projects using this Declarative pipeline approach 35 | 36 | - In case of any issues feel free to post on any Groups, [Discord](https://discord.gg/Q6ntmMtH) or [Telegram](https://t.me/trainwithshubham) 37 | 38 | Are you enjoying the #90DaysOfDevOps Challenge? 39 | Let me know how are feeling after 4 weeks of DevOps Learnings, 40 | 41 | Happy Learning:) 42 | 43 | [← Previous Day](../day26/README.md) | [Next Day →](../day28/README.md) 44 | -------------------------------------------------------------------------------- /2023/day29/README.md: -------------------------------------------------------------------------------- 1 | ## Day 29 Task: Jenkins Important interview Questions. 2 | 3 |

4 | 5 | 6 | ## Jenkins Interview 7 | 8 | Here are some Jenkins-specific questions related to Docker that one can use during a DevOps Engineer interview: 9 | 10 | ## Questions 11 | 12 | 1. What’s the difference between continuous integration, continuous delivery, and continuous deployment? 13 | 2. Benefits of CI/CD 14 | 3. What is meant by CI-CD? 15 | 4. What is Jenkins Pipeline? 16 | 5. How do you configure the job in Jenkins? 17 | 6. Where do you find errors in Jenkins? 18 | 7. In Jenkins how can you find log files? 19 | 8. Jenkins workflow and write a script for this workflow? 20 | 9. How to create continuous deployment in Jenkins? 21 | 10. How build job in Jenkins? 22 | 11. Why we use pipeline in Jenkins? 23 | 12. Is Only Jenkins enough for automation? 24 | 13. How will you handle secrets? 25 | 14. Explain diff stages in CI-CD setup 26 | 15. Name some of the plugins in Jenkin? 27 | 28 | These questions will help you in your next DevOps Interview. 29 | Write a Blog and share it on LinkedIn. 30 | 31 | _Happy Learning :)_ 32 | 33 | [← Previous Day](../day28/README.md) | [Next Day →](../day30/README.md) 34 | -------------------------------------------------------------------------------- /2023/day30/README.md: -------------------------------------------------------------------------------- 1 | ## Day 30 Task: Kubernetes Architecture 2 | 3 |

4 | 5 | ## Kubernetes Overview 6 | 7 | With the widespread adoption of [containers](https://cloud.google.com/containers) among organizations, Kubernetes, the container-centric management software, has become a standard to deploy and operate containerized applications and is one of the most important parts of DevOps. 8 | 9 | Originally developed at Google and released as open-source in 2014. Kubernetes builds on 15 years of running Google's containerized workloads and the valuable contributions from the open-source community. Inspired by Google’s internal cluster management system, [Borg](https://research.google.com/pubs/pub43438.html), 10 | 11 | ## Tasks 12 | 13 | 1. What is Kubernetes? Write in your own words and why do we call it k8s? 14 | 15 | 2. What are the benefits of using k8s? 16 | 17 | 3. Explain the architecture of Kubernetes, refer to [this video](https://youtu.be/FqfoDUhzyDo) 18 | 19 | 4. What is Control Plane? 20 | 21 | 5. Write the difference between kubectl and kubelets. 22 | 23 | 6. Explain the role of the API server. 24 | 25 | Kubernetes architecture is important, so make sure you spend a day understanding it. [This video](https://youtu.be/FqfoDUhzyDo) will surely help you. 26 | 27 | _Happy Learning :)_ 28 | 29 | [← Previous Day](../day29/README.md) | [Next Day →](../day31/README.md) 30 | -------------------------------------------------------------------------------- /2023/day31/pod.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: nginx 5 | spec: 6 | containers: 7 | - name: nginx 8 | image: nginx:1.14.2 9 | ports: 10 | - containerPort: 80 11 | 12 | 13 | # After creating this file , run below command: 14 | # kubectl apply -f 15 | -------------------------------------------------------------------------------- /2023/day32/Deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: todo-app 5 | labels: 6 | app: todo 7 | spec: 8 | replicas: 2 9 | selector: 10 | matchLabels: 11 | app: todo 12 | template: 13 | metadata: 14 | labels: 15 | app: todo 16 | spec: 17 | containers: 18 | - name: todo 19 | image: rishikeshops/todo-app 20 | ports: 21 | - containerPort: 3000 22 | -------------------------------------------------------------------------------- /2023/day32/README.md: -------------------------------------------------------------------------------- 1 | ## Day 32 Task: Launching your Kubernetes Cluster with Deployment 2 | 3 | ### Congratulation ! on your learning on K8s on Day-31 4 | 5 | ## What is Deployment in k8s 6 | 7 | A Deployment provides a configuration for updates for Pods and ReplicaSets. 8 | 9 | You describe a desired state in a Deployment, and the Deployment Controller changes the actual state to the desired state at a controlled rate. You can define Deployments to create new replicas for scaling, or to remove existing Deployments and adopt all their resources with new Deployments. 10 | 11 | ## Today's task let's keep it very simple. 12 | 13 | ## Task-1: 14 | 15 | **Create one Deployment file to deploy a sample todo-app on K8s using "Auto-healing" and "Auto-Scaling" feature** 16 | 17 | - add a deployment.yml file (sample is kept in the folder for your reference) 18 | - apply the deployment to your k8s (minikube) cluster by command 19 | `kubectl apply -f deployment.yml` 20 | 21 | Let's make your resume shine with one more project ;) 22 | 23 | **Having an issue? Don't worry, adding a sample deployment file , you can always refer that or wathch [this video](https://youtu.be/ONrbWFJXLLk)** 24 | 25 | Happy Learning :) 26 | 27 | [← Previous Day](../day31/README.md) | [Next Day →](../day33/README.md) 28 | -------------------------------------------------------------------------------- /2023/day33/README.md: -------------------------------------------------------------------------------- 1 | # Day 33 Task: Working with Namespaces and Services in Kubernetes 2 | 3 | ### Congrats🎊🎉 on updating your Deployment yesterday💥🙌 4 | 5 | ## What are Namespaces and Services in k8s 6 | 7 | In Kubernetes, Namespaces are used to create isolated environments for resources. Each Namespace is like a separate cluster within the same physical cluster. Services are used to expose your Pods and Deployments to the network. Read more about Namespace [Here](https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/) 8 | 9 | # Today's task: 10 | 11 | ## Task 1: 12 | 13 | - Create a Namespace for your Deployment 14 | 15 | - Use the command `kubectl create namespace ` to create a Namespace 16 | 17 | - Update the deployment.yml file to include the Namespace 18 | 19 | - Apply the updated deployment using the command: 20 | `kubectl apply -f deployment.yml -n ` 21 | 22 | - Verify that the Namespace has been created by checking the status of the Namespaces in your cluster. 23 | 24 | ## Task 2: 25 | 26 | - Read about Services, Load Balancing, and Networking in Kubernetes. Refer official documentation of kubernetes [Link](https://kubernetes.io/docs/concepts/services-networking/) 27 | 28 | Need help with Namespaces? Check out this [video](https://youtu.be/K3jNo4z5Jx8) for assistance. 29 | 30 | Keep growing your Kubernetes knowledge💥🙌 31 | 32 | Happy Learning! :) 33 | 34 | [← Previous Day](../day32/README.md) | [Next Day →](../day34/README.md) 35 | -------------------------------------------------------------------------------- /2023/day34/README.md: -------------------------------------------------------------------------------- 1 | # Day 34 Task: Working with Services in Kubernetes 2 | 3 | ### Congratulation🎊 on your learning on Deployments in K8s on Day-33 4 | 5 | ## What are Services in K8s 6 | 7 | In Kubernetes, Services are objects that provide stable network identities to Pods and abstract away the details of Pod IP addresses. Services allow Pods to receive traffic from other Pods, Services, and external clients. 8 | 9 | ## Task-1: 10 | 11 | - Create a Service for your todo-app Deployment from Day-32 12 | - Create a Service definition for your todo-app Deployment in a YAML file. 13 | - Apply the Service definition to your K8s (minikube) cluster using the `kubectl apply -f service.yml -n ` command. 14 | - Verify that the Service is working by accessing the todo-app using the Service's IP and Port in your Namespace. 15 | 16 | ## Task-2: 17 | 18 | - Create a ClusterIP Service for accessing the todo-app from within the cluster 19 | - Create a ClusterIP Service definition for your todo-app Deployment in a YAML file. 20 | - Apply the ClusterIP Service definition to your K8s (minikube) cluster using the `kubectl apply -f cluster-ip-service.yml -n ` command. 21 | - Verify that the ClusterIP Service is working by accessing the todo-app from another Pod in the cluster in your Namespace. 22 | 23 | ## Task-3: 24 | 25 | - Create a LoadBalancer Service for accessing the todo-app from outside the cluster 26 | - Create a LoadBalancer Service definition for your todo-app Deployment in a YAML file. 27 | - Apply the LoadBalancer Service definition to your K8s (minikube) cluster using the `kubectl apply -f load-balancer-service.yml -n ` command. 28 | - Verify that the LoadBalancer Service is working by accessing the todo-app from outside the cluster in your Namespace. 29 | 30 | Struggling with Services? Take a look at this video for a step-by-step [guide](https://youtu.be/OJths_RojFA). 31 | 32 | Need help with Services in Kubernetes? Check out the Kubernetes [documentation](https://kubernetes.io/docs/concepts/services-networking/service/) for assistance. 33 | 34 | Happy Learning :) 35 | 36 | [← Previous Day](../day33/README.md) | [Next Day →](../day35/README.md) 37 | -------------------------------------------------------------------------------- /2023/day36/Deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: todo-app-deployment 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | app: todo-app 10 | template: 11 | metadata: 12 | labels: 13 | app: todo-app 14 | spec: 15 | containers: 16 | - name: todo-app 17 | image: rishikeshops/todo-app 18 | ports: 19 | - containerPort: 8000 20 | volumeMounts: 21 | - name: todo-app-data 22 | mountPath: /app 23 | volumes: 24 | - name: todo-app-data 25 | persistentVolumeClaim: 26 | claimName: pvc-todo-app 27 | -------------------------------------------------------------------------------- /2023/day36/pv.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: pv-todo-app 5 | spec: 6 | capacity: 7 | storage: 1Gi 8 | accessModes: 9 | - ReadWriteOnce 10 | persistentVolumeReclaimPolicy: Retain 11 | hostPath: 12 | path: "/tmp/data" 13 | -------------------------------------------------------------------------------- /2023/day36/pvc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: pvc-todo-app 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | resources: 9 | requests: 10 | storage: 500Mi 11 | -------------------------------------------------------------------------------- /2023/day37/README.md: -------------------------------------------------------------------------------- 1 | ## Day 37 Task: Kubernetes Important interview Questions. 2 | 3 | ## Questions 4 | 5 | 1.What is Kubernetes and why it is important? 6 | 7 | 2.What is difference between docker swarm and kubernetes? 8 | 9 | 3.How does Kubernetes handle network communication between containers? 10 | 11 | 4.How does Kubernetes handle scaling of applications? 12 | 13 | 5.What is a Kubernetes Deployment and how does it differ from a ReplicaSet? 14 | 15 | 6.Can you explain the concept of rolling updates in Kubernetes? 16 | 17 | 7.How does Kubernetes handle network security and access control? 18 | 19 | 8.Can you give an example of how Kubernetes can be used to deploy a highly available application? 20 | 21 | 9.What is namespace is kubernetes? Which namespace any pod takes if we don't specify any namespace? 22 | 23 | 10.How ingress helps in kubernetes? 24 | 25 | 11.Explain different types of services in kubernetes? 26 | 27 | 12.Can you explain the concept of self-healing in Kubernetes and give examples of how it works? 28 | 29 | 13.How does Kubernetes handle storage management for containers? 30 | 31 | 14.How does the NodePort service work? 32 | 33 | 15.What is a multinode cluster and single-node cluster in Kubernetes? 34 | 35 | 16.Difference between create and apply in kubernetes? 36 | 37 | ## These questions will help you in your next DevOps Interview. 38 | 39 | _Write a Blog and share it on LinkedIn._ 40 | 41 | **_Happy Learning :)_** 42 | 43 | [← Previous Day](../day36/README.md) | [Next Day →](../day38/README.md) 44 | -------------------------------------------------------------------------------- /2023/day38/README.md: -------------------------------------------------------------------------------- 1 | # Day 38 Getting Started with AWS Basics☁ 2 | 3 | ![AWS](https://user-images.githubusercontent.com/115981550/217238286-6c6bc6e7-a1ac-4d12-98f3-f95ff5bf53fc.png) 4 | 5 | Congratulations!!!! you have come so far. Don't let your excuses break your consistency. Let's begin our new Journey with Cloud☁. By this time you have created multiple EC2 instances, if not let's begin the journey: 6 | 7 | ## AWS: 8 | 9 | Amazon Web Services is one of the most popular Cloud Provider that has free tier too for students and Cloud enthutiasts for their Handson while learning (Create your free account today to explore more on it). 10 | 11 | Read from [here](https://aws.amazon.com/what-is-aws/) 12 | 13 | ## IAM: 14 | 15 | AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. With IAM, you can centrally manage permissions that control which AWS resources users can access. You use IAM to control who is authenticated (signed in) and authorized (has permissions) to use resources. 16 | Read from [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 17 | 18 | Get to know IAM more deeply [Click Here!!](https://www.youtube.com/watch?v=ORB4eY8EydA) 19 | 20 | ### Task1: 21 | 22 | Create an IAM user with username of your own wish and grant EC2 Access. Launch your Linux instance through the IAM user that you created now and install jenkins and docker on your machine via single Shell Script. 23 | 24 | ### Task2: 25 | 26 | In this task you need to prepare a devops team of avengers. Create 3 IAM users of avengers and assign them in devops groups with IAM policy. 27 | 28 | Post your progress on Linkedin. Till then Happy Learning :) 29 | 30 | [← Previous Day](../day37/README.md) | [Next Day →](../day39/README.md) 31 | -------------------------------------------------------------------------------- /2023/day42/README.md: -------------------------------------------------------------------------------- 1 | # Day 42: IAM Programmatic access and AWS CLI 🚀 ☁ 2 | 3 | Today is more of a reading excercise and getting some programmatic access for your AWS account 4 | 5 | ## IAM Programmatic access 6 | 7 | In order to access your AWS account from a terminal or system, you can use AWS Access keys and AWS Secret Access keys 8 | Watch [this video](https://youtu.be/XYKqL5GFI-I) for more details. 9 | 10 | ## AWS CLI 11 | 12 | The AWS Command Line Interface (AWS CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts. 13 | 14 | The AWS CLI v2 offers several new features including improved installers, new configuration options such as AWS IAM Identity Center (successor to AWS SSO), and various interactive features. 15 | 16 | ## Task-01 17 | 18 | - Create AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from AWS Console. 19 | 20 | ## Task-02 21 | 22 | - Setup and install AWS CLI and configure your account credentials 23 | 24 | Let me know if you have any issues while doing the task. 25 | 26 | Happy Learning :) 27 | 28 | [← Previous Day](../day41/README.md) | [Next Day →](../day43/README.md) 29 | -------------------------------------------------------------------------------- /2023/day43/README.md: -------------------------------------------------------------------------------- 1 | # Day 43: S3 Programmatic access with AWS-CLI 💻 📁 2 | 3 | Hi, I hope you had a great day yesterday. Today as part of the #90DaysofDevOps Challenge we will be exploring most commonly used service in AWS i.e S3. 4 | 5 | ![s3](https://user-images.githubusercontent.com/115981550/218308379-a2e841cf-6b77-4d02-bfbe-20d1bae09b20.png) 6 | 7 | # S3 8 | 9 | Amazon Simple Storage Service (Amazon S3) is an object storage service that provides a secure and scalable way to store and access data on the cloud. It is designed for storing any kind of data, such as text files, images, videos, backups, and more. 10 | Read more [here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 11 | 12 | ## Task-01 13 | 14 | - Launch an EC2 instance using the AWS Management Console and connect to it using Secure Shell (SSH). 15 | - Create an S3 bucket and upload a file to it using the AWS Management Console. 16 | - Access the file from the EC2 instance using the AWS Command Line Interface (AWS CLI). 17 | 18 | Read more about S3 using aws-cli [here](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) 19 | 20 | ## Task-02 21 | 22 | - Create a snapshot of the EC2 instance and use it to launch a new EC2 instance. 23 | - Download a file from the S3 bucket using the AWS CLI. 24 | - Verify that the contents of the file are the same on both EC2 instances. 25 | 26 | Added Some Useful commands to complete the task. [Click here for commands](https://github.com/LondheShubham153/90DaysOfDevOps/blob/833a67ac4ec17b992934cd6878875dccc4274f56/2023/day43/aws-cli.md) 27 | 28 | Let me know if you have any questions or face any issues while doing the tasks.🚀 29 | 30 | Happy Learning :) 31 | 32 | [← Previous Day](../day42/README.md) | [Next Day →](../day44/README.md) 33 | -------------------------------------------------------------------------------- /2023/day43/aws-cli.md: -------------------------------------------------------------------------------- 1 | Here are some commonly used AWS CLI commands for Amazon S3: 2 | 3 | `aws s3 ls` - This command lists all of the S3 buckets in your AWS account. 4 | 5 | `aws s3 mb s3://bucket-name` - This command creates a new S3 bucket with the specified name. 6 | 7 | `aws s3 rb s3://bucket-name` - This command deletes the specified S3 bucket. 8 | 9 | `aws s3 cp file.txt s3://bucket-name` - This command uploads a file to an S3 bucket. 10 | 11 | `aws s3 cp s3://bucket-name/file.txt .` - This command downloads a file from an S3 bucket to your local file system. 12 | 13 | `aws s3 sync local-folder s3://bucket-name` - This command syncs the contents of a local folder with an S3 bucket. 14 | 15 | `aws s3 ls s3://bucket-name` - This command lists the objects in an S3 bucket. 16 | 17 | `aws s3 rm s3://bucket-name/file.txt` - This command deletes an object from an S3 bucket. 18 | 19 | `aws s3 presign s3://bucket-name/file.txt` - This command generates a pre-signed URL for an S3 object, which can be used to grant temporary access to the object. 20 | 21 | `aws s3api list-buckets` - This command retrieves a list of all S3 buckets in your AWS account, using the S3 API. 22 | -------------------------------------------------------------------------------- /2023/day44/README.md: -------------------------------------------------------------------------------- 1 | # Day 44: Relational Database Service in AWS 2 | 3 | Amazon Relational Database Service (Amazon RDS) is a collection of managed services that makes it simple to set up, operate, and scale databases in the cloud 4 | 5 | ## Task-01 6 | 7 | - Create a Free tier RDS instance of MySQL 8 | - Create an EC2 instance 9 | - Create an IAM role with RDS access 10 | - Assign the role to EC2 so that your EC2 Instance can connect with RDS 11 | - Once the RDS instance is up and running, get the credentials and connect your EC2 instance using a MySQL client. 12 | 13 | Hint: 14 | 15 | You should install mysql client on EC2, and connect the Host and Port of RDS with this client. 16 | 17 | Post the screenshots once your EC2 instance can connect a MySQL server, that will be a small win for you. 18 | 19 | Watch [this video](https://youtu.be/MrA6Rk1Y82E) for reference. 20 | 21 | Happy Learning 22 | 23 | [← Previous Day](../day43/README.md) | [Next Day →](../day45/README.md) 24 | -------------------------------------------------------------------------------- /2023/day45/README.md: -------------------------------------------------------------------------------- 1 | # Day 45: Deploy Wordpress website on AWS 2 | 3 | Over 30% of all websites on the internet use WordPress as their content management system (CMS). It is most often used to run blogs, but it can also be used to run e-commerce sites, message boards, and many other popular things. This guide will show you how to set up a WordPress blog site. 4 | 5 | ## Task-01 6 | 7 | - As WordPress requires a MySQL database to store its data ,create an RDS as you did in Day 44 8 | 9 | To configure this WordPress site, you will create the following resources in AWS: 10 | 11 | - An Amazon EC2 instance to install and host the WordPress application. 12 | - An Amazon RDS for MySQL database to store your WordPress data. 13 | - Setup the server and post your new Wordpress app. 14 | 15 | Read [this](https://aws.amazon.com/getting-started/hands-on/deploy-wordpress-with-amazon-rds/) for a detailed explanation 16 | Happy Learning :) 17 | 18 | [← Previous Day](../day44/README.md) | [Next Day →](../day46/README.md) 19 | -------------------------------------------------------------------------------- /2023/day46/README.md: -------------------------------------------------------------------------------- 1 | # Day-46: Set up CloudWatch alarms and SNS topic in AWS 2 | 3 | Hey learners, you have been using aws services atleast for last 45 days. Have you ever wondered what happen if for any service is charging you bill continously and you don't know till you loose all your pocket money ? 4 | 5 | Hahahaha😁, Well! we, as a responsible community ,always try to make it under free tier , but it's good to know and setup something , which will inform you whenever bill touches a Threshold. 6 | 7 | ## What is Amazon CloudWatch? 8 | 9 | Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real time. You can use CloudWatch to collect and track metrics, which are variables you can measure for your resources and applications. 10 | 11 | Read more about cloudwatch from the official documentation [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 12 | 13 | ## What is Amazon SNS? 14 | 15 | Amazon Simple Notification Service is a notification service provided as part of Amazon Web Services since 2010. It provides a low-cost infrastructure for mass delivery of messages, predominantly to mobile users. 16 | 17 | Read more about it [here](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 18 | 19 | ## Task : 20 | 21 | - Create a CloudWatch alarm that monitors your billing and send an email to you when a it reaches $2. 22 | 23 | (You can keep it for your future use) 24 | 25 | - Delete your billing Alarm that you created now. 26 | 27 | (Now you also know how to delete as well. ) 28 | 29 | Need help with Cloudwatch? Check out this [official documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) for assistance. 30 | 31 | Keep growing your AWS knowledge💥🙌 32 | 33 | Happy Learning! :) 34 | 35 | [← Previous Day](../day45/README.md) | [Next Day →](../day47/README.md) 36 | -------------------------------------------------------------------------------- /2023/day49/README.md: -------------------------------------------------------------------------------- 1 | # Day 49 - INTERVIEW QUESTIONS ON AWS 2 | 3 | Hey people, we have listened to your suggestions and we are looking forward to get more! 4 | As you people have asked to put more interview based questions as part of Daily Task, So here it it :) 5 | 6 | ## INTERVIEW QUESTIONS: 7 | 8 | - Name 5 aws services you have used and what's the use cases? 9 | - What are the tools used to send logs to the cloud environment? 10 | - What are IAM Roles? How do you create /manage them? 11 | - How to upgrade or downgrade a system with zero downtime? 12 | - What is infrastructure as code and how do you use it? 13 | - What is a load balancer? Give scenarios of each kind of balancer based on your experience. 14 | - What is CloudFormation and why is it used for? 15 | - Difference between AWS CloudFormation and AWS Elastic Beanstalk? 16 | - What are the kinds of security attacks that can occur on the cloud? And how can we minimize them? 17 | - Can we recover the EC2 instance when we have lost the key? 18 | - What is a gateway? 19 | - What is the difference between the Amazon Rds, Dynamodb, and Redshift? 20 | - Do you prefer to host a website on S3? What's the reason if your answer is either yes or no? 21 | 22 | Let's share your answer on LinkedIn in best possible way thinking you are in a interview table. 23 | Happy Learning !! :) 24 | 25 | [← Previous Day](../day48/README.md) | [Next Day →](../day50/README.md) 26 | -------------------------------------------------------------------------------- /2023/day50/README.md: -------------------------------------------------------------------------------- 1 | # Day 50: Your CI/CD pipeline on AWS - Part-1 🚀 ☁ 2 | 3 | What if I tell you, in next 4 days, you'll be making a CI/CD pipeline on AWS with these tools. 4 | 5 | - CodeCommit 6 | - CodeBuild 7 | - CodeDeploy 8 | - CodePipeline 9 | - S3 10 | 11 | ## What is CodeCommit ? 12 | 13 | - CodeCommit is a managed source control service by AWS that allows users to store, manage, and version their source code and artifacts securely and at scale. It supports Git, integrates with other AWS services, enables collaboration through branch and merge workflows, and provides audit logs and compliance reports to meet regulatory requirements and track changes. Overall, CodeCommit provides developers with a reliable and efficient way to manage their codebase and set up a CI/CD pipeline for their software development projects. 14 | 15 | # Task-01 : 16 | 17 | - Set up a code repository on CodeCommit and clone it on your local. 18 | - You need to setup GitCredentials in your AWS IAM. 19 | - Use those credentials in your local and then clone the repository from CodeCommit 20 | 21 | # Task-02 : 22 | 23 | - Add a new file from local and commit to your local branch 24 | - Push the local changes to CodeCommit repository. 25 | 26 | For more details watch [this](https://youtu.be/p5i3cMCQ760) video. 27 | 28 | Happy Learning :) 29 | 30 | [← Previous Day](../day49/README.md) | [Next Day →](../day51/README.md) 31 | -------------------------------------------------------------------------------- /2023/day51/README.md: -------------------------------------------------------------------------------- 1 | # Day 51: Your CI/CD pipeline on AWS - Part 2 🚀 ☁ 2 | 3 | On your journey of making a CI/CD pipeline on AWS with these tools, you completed AWS CodeCommit. 4 | 5 | Next few days you'll learn these tools/services: 6 | 7 | - CodeBuild 8 | - CodeDeploy 9 | - CodePipeline 10 | - S3 11 | 12 | ## What is CodeBuild ? 13 | 14 | - AWS CodeBuild is a fully managed build service in the cloud. CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. CodeBuild eliminates the need to provision, manage, and scale your own build servers. 15 | 16 | # Task-01 : 17 | 18 | - Read about Buildspec file for Codebuild. 19 | - create a simple index.html file in CodeCommit Repository 20 | - you have to build the index.html using nginx server 21 | 22 | # Task-02 : 23 | 24 | - Add buildspec.yaml file to CodeCommit Repository and complete the build process. 25 | 26 | For more details watch [this](https://youtu.be/p5i3cMCQ760) video. 27 | 28 | Happy Learning :) 29 | 30 | [← Previous Day](../day50/README.md) | [Next Day →](../day52/README.md) 31 | -------------------------------------------------------------------------------- /2023/day52/README.md: -------------------------------------------------------------------------------- 1 | # Day 52: Your CI/CD pipeline on AWS - Part 3 🚀 ☁ 2 | 3 | On your journey of making a CI/CD pipeline on AWS with these tools, you completed AWS CodeCommit & CodeBuild. 4 | 5 | Next few days you'll learn these tools/services: 6 | 7 | - CodeDeploy 8 | - CodePipeline 9 | - S3 10 | 11 | ## What is CodeDeploy ? 12 | 13 | - AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances, serverless Lambda functions, or Amazon ECS services. 14 | 15 | CodeDeploy can deploy application content that runs on a server and is stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. CodeDeploy can also deploy a serverless Lambda function. You do not need to make changes to your existing code before you can use CodeDeploy. 16 | 17 | # Task-01 : 18 | 19 | - Read about Appspec.yaml file for CodeDeploy. 20 | - Deploy index.html file on EC2 machine using nginx 21 | - you have to setup a CodeDeploy agent in order to deploy code on EC2 22 | 23 | # Task-02 : 24 | 25 | - Add appspec.yaml file to CodeCommit Repository and complete the deployment process. 26 | 27 | For more details watch [this](https://youtu.be/IUF-pfbYGvg) video. 28 | 29 | Happy Learning :) 30 | 31 | [← Previous Day](../day51/README.md) | [Next Day →](../day53/README.md) 32 | -------------------------------------------------------------------------------- /2023/day53/README.md: -------------------------------------------------------------------------------- 1 | # Day 53: Your CI/CD pipeline on AWS - Part 4 🚀 ☁ 2 | 3 | On your journey of making a CI/CD pipeline on AWS with these tools, you completed AWS CodeCommit, CodeBuild & CodeDeploy. 4 | 5 | Finish Off in style with AWS CodePipeline 6 | 7 | ## What is CodePipeline ? 8 | 9 | - CodePipeline builds, tests, and deploys your code every time there is a code change, based on the release process models you define. 10 | Think of it as a CI/CD Pipeline service 11 | 12 | # Task-01 : 13 | 14 | - Create a Deployment group of Ec2 Instance. 15 | - Create a CodePipeline that gets the code from CodeCommit, Builds the code using CodeBuild and deploys it to a Deployment Group. 16 | 17 | For more details watch [this](https://youtu.be/IUF-pfbYGvg) video. 18 | 19 | Happy Learning :) 20 | 21 | [← Previous Day](../day52/README.md) | [Next Day →](../day54/README.md) 22 | -------------------------------------------------------------------------------- /2023/day54/README.md: -------------------------------------------------------------------------------- 1 | # Day 54: Understanding Infrastructure as Code and Configuration Management 2 | 3 | ## What's the difference bhaiyya? 4 | 5 | When it comes to the cloud, Infrastructure as Code (IaC) and Configuration Management (CM) are inseparable. With IaC, a descriptive model is used for infrastructure management. To name a few examples of infrastructure: networks, virtual computers, and load balancers. Using an IaC model always results in the same setting. 6 | 7 | Throughout the lifecycle of a product, Configuration Management (CM) ensures that the performance, functional and physical inputs, requirements, design, and operations of that product remain consistent. 8 | 9 | # Task-01 10 | 11 | - Read more about IaC and Config. Management Tools 12 | - Give differences on both with suitable examples 13 | - What are most commont IaC and Config management Tools? 14 | 15 | Write a blog on this topic in the most creative way and post it on linkedIn :) 16 | 17 | happy learning... 18 | 19 | [← Previous Day](../day53/README.md) | [Next Day →](../day55/README.md) 20 | -------------------------------------------------------------------------------- /2023/day55/README.md: -------------------------------------------------------------------------------- 1 | # Day 55: Understanding Configuration Management with Ansible 2 | 3 | ## What's this Ansible? 4 | 5 | Ansible is an open-source automation tool, or platform, used for IT tasks such as configuration management, application deployment, intraservice orchestration, and provisioning 6 | 7 | # Task-01 8 | 9 | - Installation of Ansible on AWS EC2 (Master Node) 10 | `sudo apt-add-repository ppa:ansible/ansible` `sudo apt update` 11 | `sudo apt install ansible` 12 | 13 | # Task-02 14 | 15 | - read more about Hosts file 16 | `sudo nano /etc/ansible/hosts ansible-inventory --list -y` 17 | 18 | # Task-03 19 | 20 | - Setup 2 more EC2 instances with same Private keys as the previous instance (Node) 21 | - Copy the private key to master server where Ansible is setup 22 | - Try a ping command using ansible to the Nodes. 23 | 24 | Write a blog on this topic with screenshots in the most creative way and post it on linkedIn :) 25 | 26 | happy learning... 27 | 28 | [← Previous Day](../day54/README.md) | [Next Day →](../day56/README.md) 29 | -------------------------------------------------------------------------------- /2023/day56/README.md: -------------------------------------------------------------------------------- 1 | # Day 56: Understanding Ad-hoc commands in Ansible 2 | 3 | Ansible ad hoc commands are one-liners designed to achieve a very specific task they are like quick snippets and your compact swiss army knife when you want to do a quick task across multiple machines. 4 | 5 | To put simply, Ansible ad hoc commands are one-liner Linux shell commands and playbooks are like a shell script, a collective of many commands with logic. 6 | 7 | Ansible ad hoc commands come handy when you want to perform a quick task. 8 | 9 | # Task-01 10 | 11 | - write an ansible ad hoc ping command to ping 3 servers from inventory file 12 | - Write an ansible ad hoc command to check uptime 13 | 14 | - You can refer to [this](https://www.middlewareinventory.com/blog/ansible-ad-hoc-commands/) blog to understand the different examples of ad-hoc commands and try out them, post the screenshots in a blog with an explanation. 15 | 16 | happy Learning :) 17 | 18 | [← Previous Day](../day55/README.md) | [Next Day →](../day57/README.md) 19 | -------------------------------------------------------------------------------- /2023/day57/README.md: -------------------------------------------------------------------------------- 1 | # Day 57: Ansible Hands-on with video 2 | 3 | Ansible is fun, you saw in last few days how easy it is. 4 | 5 | Let's make it fun now, by using a video explanation for Ansible. 6 | 7 | # Task-01 8 | 9 | - Write a Blog explanation for the [ansible video](https://youtu.be/SGB7EdiP39E) 10 | 11 | happy Learning :) 12 | 13 | [← Previous Day](../day56/README.md) | [Next Day →](../day58/README.md) 14 | -------------------------------------------------------------------------------- /2023/day58/README.md: -------------------------------------------------------------------------------- 1 | # Day 58: Ansible Playbooks 2 | 3 | Ansible playbooks run multiple tasks, assign roles, and define configurations, deployment steps, and variables. If you’re using multiple servers, Ansible playbooks organize the steps between the assembled machines or servers and get them organized and running in the way the users need them to. Consider playbooks as the equivalent of instruction manuals. 4 | 5 | # Task-01 6 | 7 | - Write an ansible playbook to create a file on a different server 8 | 9 | - Write an ansible playbook to create a new user. 10 | 11 | - Write an ansible playbook to install docker on a group of servers 12 | 13 | Watch [this](https://youtu.be/089mRKoJTzo) video to learn about ansible Playbooks 14 | 15 | # Task-02 16 | 17 | - Write a blog about writing ansible playbooks with the best practices. 18 | 19 | Let me or anyone in the community know if you face any challenges 20 | 21 | happy Learning :) 22 | 23 | [← Previous Day](../day57/README.md) | [Next Day →](../day59/README.md) 24 | -------------------------------------------------------------------------------- /2023/day59/README.md: -------------------------------------------------------------------------------- 1 | # Day 59: Ansible Project 🔥 2 | 3 | Ansible playbooks are amazing, as you learned yesterday. 4 | What if you deploy a simple web app using ansible, sounds like a good project, right? 5 | 6 | # Task-01 7 | 8 | - create 3 EC2 instances . make sure all three are created with same key pair 9 | 10 | - Install Ansible in host server 11 | 12 | - copy the private key from local to Host server (Ansible_host) at (/home/ubuntu/.ssh) 13 | 14 | - access the inventory file using sudo vim /etc/ansible/hosts 15 | 16 | - Create a playbook to install Nginx 17 | 18 | - deploy a sample webpage using the ansible playbook 19 | 20 | Read [this](https://medium.com/@sandeep010498/learn-ansible-with-real-time-project-cf6a0a512d45) Blog by [Sandeep Singh](https://medium.com/@sandeep010498) to clear all your doubts 21 | 22 | Let me or anyone in the community know if you face any challenges 23 | 24 | happy Learning :) 25 | 26 | [← Previous Day](../day58/README.md) | [Next Day →](../day60/README.md) 27 | -------------------------------------------------------------------------------- /2023/day60/README.md: -------------------------------------------------------------------------------- 1 | # Day 60 - Terraform🔥 2 | 3 | Hello Learners , you guys are doing every task by creating an ec2 instance (mostly). Today let’s automate this process . How to do it ? Well Terraform is the solution . 4 | 5 | ## What is Terraform? 6 | 7 | Terraform is an infrastructure as code (IaC) tool that allows you to create, manage, and update infrastructure 8 | resources such as virtual machines, networks, and storage in a repeatable, scalable, and automated way. 9 | 10 | ## Task 1: 11 | 12 | Install Terraform on your system 13 | Refer this [link](https://phoenixnap.com/kb/how-to-install-terraform) for installation 14 | 15 | ## Task 2: Answer below questions 16 | 17 | - Why we use terraform? 18 | - What is Infrastructure as Code (IaC)? 19 | - What is Resource? 20 | - What is Provider? 21 | - Whats is State file in terraform? What’s the importance of it ? 22 | - What is Desired and Current State? 23 | 24 | You can prepare for tomorrow's task from [here](https://www.youtube.com/live/965CaSveIEI?feature=share)🚀🚀 25 | 26 | We Hope this tasks will help you understand how to write a basic Terraform configuration file and basic commands on Terraform. 27 | 28 | Don’t forget to post in on LinkedIn. 29 | Happy Learning:) 30 | 31 | [← Previous Day](../day59/README.md) | [Next Day →](../day61/README.md) 32 | -------------------------------------------------------------------------------- /2023/day61/README.md: -------------------------------------------------------------------------------- 1 | # Day 61- Terraform🔥 2 | 3 | Hope you've already got the gist of What Working with Terraform would be like . Lets begin 4 | with day 2 of Terraform ! 5 | 6 | ## Task 1: 7 | 8 | find purpose of basic Terraform commands which you'll use often 9 | 10 | 1. `terraform init` 11 | 12 | 2. `terraform init -upgrade` 13 | 14 | 3. `terraform plan` 15 | 16 | 4. `terraform apply` 17 | 18 | 5. `terraform validate` 19 | 20 | 6. `terraform fmt` 21 | 22 | 7. `terraform destroy` 23 | 24 | Also along with these tasks its important to know about Terraform in general- 25 | Who are Terraform's main competitors? 26 | The main competitors are: 27 | 28 | Ansible 29 | Packer 30 | Cloud Foundry 31 | Kubernetes 32 | 33 | Want a Free video Course for terraform? Click [here](https://bit.ly/tws-terraform) 34 | 35 | Don't forget to share your learnings on Linkedin ! Happy Learning :) 36 | 37 | [← Previous Day](../day60/README.md) | [Next Day →](../day62/README.md) 38 | -------------------------------------------------------------------------------- /2023/day63/README.md: -------------------------------------------------------------------------------- 1 | # Day 63 - Terraform Variables 2 | 3 | variables in Terraform are quite important, as you need to hold values of names of instance, configs , etc. 4 | 5 | We can create a variables.tf file which will hold all the variables. 6 | 7 | ``` 8 | variable "filename" { 9 | default = "/home/ubuntu/terrform-tutorials/terraform-variables/demo-var.txt" 10 | } 11 | ``` 12 | 13 | ``` 14 | variable "content" { 15 | default = "This is coming from a variable which was updated" 16 | } 17 | ``` 18 | 19 | These variables can be accessed by var object in main.tf 20 | 21 | ## Task-01 22 | 23 | - Create a local file using Terraform 24 | Hint: 25 | 26 | ``` 27 | resource "local_file" "devops" { 28 | filename = var.filename 29 | content = var.content 30 | } 31 | ``` 32 | 33 | ## Data Types in Terraform 34 | 35 | ## Map 36 | 37 | ``` 38 | variable "file_contents" { 39 | type = map 40 | default = { 41 | "statement1" = "this is cool" 42 | "statement2" = "this is cooler" 43 | } 44 | } 45 | ``` 46 | 47 | ## Task-02 48 | 49 | - Use terraform to demonstrate usage of List, Set and Object datatypes 50 | - Put proper screenshots of the outputs 51 | 52 | Use `terraform refresh` 53 | 54 | To refresh the state by your configuration file, reloads the variables 55 | 56 | # Video Course 57 | 58 | I can imagine, Terraform can be tricky, so best to use a Free video Course for terraform [here](https://bit.ly/tws-terraform) 59 | 60 | Happy Learning :) 61 | 62 | [← Previous Day](../day62/README.md) | [Next Day →](../day64/README.md) 63 | -------------------------------------------------------------------------------- /2023/day64/README.md: -------------------------------------------------------------------------------- 1 | # Day 64 - Terraform with AWS 2 | 3 | Provisioning on AWS is quite easy and straightforward with Terraform. 4 | 5 | ## Prerequisites 6 | 7 | ### AWS CLI installed 8 | 9 | The AWS Command Line Interface (AWS CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts. 10 | 11 | ### AWS IAM user 12 | 13 | IAM (Identity Access Management) AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. You use IAM to control who is authenticated (signed in) and authorized (has permissions) to use resources. 14 | 15 | _In order to connect your AWS account and Terraform, you need the access keys and secret access keys exported to your machine._ 16 | 17 | ``` 18 | export AWS_ACCESS_KEY_ID= 19 | export AWS_SECRET_ACCESS_KEY= 20 | ``` 21 | 22 | ### Install required providers 23 | 24 | ``` 25 | terraform { 26 | required_providers { 27 | aws = { 28 | source = "hashicorp/aws" 29 | version = "~> 4.16" 30 | } 31 | } 32 | required_version = ">= 1.2.0" 33 | } 34 | ``` 35 | 36 | Add the region where you want your instances to be 37 | 38 | ``` 39 | provider "aws" { 40 | region = "us-east-1" 41 | } 42 | ``` 43 | 44 | ## Task-01 45 | 46 | - Provision an AWS EC2 instance using Terraform 47 | 48 | Hint: 49 | 50 | ``` 51 | resource "aws_instance" "aws_ec2_test" { 52 | count = 4 53 | ami = "ami-08c40ec9ead489470" 54 | instance_type = "t2.micro" 55 | tags = { 56 | Name = "TerraformTestServerInstance" 57 | } 58 | } 59 | ``` 60 | 61 | # Video Course 62 | 63 | I can imagine, Terraform can be tricky, so best to use a Free video Course for terraform [here](https://bit.ly/tws-terraform) 64 | 65 | Happy Learning :) 66 | 67 | [← Previous Day](../day63/README.md) | [Next Day →](../day65/README.md) 68 | -------------------------------------------------------------------------------- /2023/day66/README.md: -------------------------------------------------------------------------------- 1 | # Day 66 - Terraform Hands-on Project - Build Your Own AWS Infrastructure with Ease using Infrastructure as Code (IaC) Techniques(Interview Questions) ☁️ 2 | 3 | Welcome back to your Terraform journey. 4 | 5 | In the previous tasks, you have learned about the basics of Terraform, its configuration file, and creating an EC2 instance using Terraform. Today, we will explore more about Terraform and create multiple resources. 6 | 7 | ## Task: 8 | 9 | - Create a VPC (Virtual Private Cloud) with CIDR block 10.0.0.0/16 10 | - Create a public subnet with CIDR block 10.0.1.0/24 in the above VPC. 11 | - Create a private subnet with CIDR block 10.0.2.0/24 in the above VPC. 12 | - Create an Internet Gateway (IGW) and attach it to the VPC. 13 | - Create a route table for the public subnet and associate it with the public subnet. This route table should have a route to the Internet Gateway. 14 | - Launch an EC2 instance in the public subnet with the following details: 15 | - AMI: ami-0557a15b87f6559cf 16 | - Instance type: t2.micro 17 | - Security group: Allow SSH access from anywhere 18 | - User data: Use a shell script to install Apache and host a simple website 19 | - Create an Elastic IP and associate it with the EC2 instance. 20 | - Open the website URL in a browser to verify that the website is hosted successfully. 21 | 22 | #### This Terraform hands-on task is designed to test your proficiency in using Terraform for Infrastructure as Code (IaC) on AWS. You will be tasked with creating a VPC, subnets, an internet gateway, and launching an EC2 instance with a web server running on it. This task will showcase your skills in automating infrastructure deployment using Terraform. It's a popular interview question for companies looking for candidates with hands-on experience in Terraform. That's it for today. 23 | 24 | Happy Terraforming:) 25 | 26 | [← Previous Day](../day65/README.md) | [Next Day →](../day67/README.md) 27 | -------------------------------------------------------------------------------- /2023/day67/README.md: -------------------------------------------------------------------------------- 1 | # Day 67: AWS S3 Bucket Creation and Management 2 | 3 | ## AWS S3 Bucket 4 | 5 | Amazon S3 (Simple Storage Service) is an object storage service that offers industry-leading scalability, data availability, security, and performance. It can be used for a variety of use cases, such as storing and retrieving data, hosting static websites, and more. 6 | 7 | In this task, you will learn how to create and manage S3 buckets in AWS. 8 | 9 | ## Task 10 | 11 | - Create an S3 bucket using Terraform. 12 | - Configure the bucket to allow public read access. 13 | - Create an S3 bucket policy that allows read-only access to a specific IAM user or role. 14 | - Enable versioning on the S3 bucket. 15 | 16 | ## Resources 17 | 18 | [Terraform S3 bucket resource](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket) 19 | 20 | Good luck and happy learning! 21 | 22 | [← Previous Day](../day66/README.md) | [Next Day →](../day68/README.md) 23 | -------------------------------------------------------------------------------- /2023/day71/README.md: -------------------------------------------------------------------------------- 1 | # Day 71 - Let's prepare for some interview questions of Terraform 🔥 2 | 3 | ### 1. What is Terraform and how it is different from other IaaC tools? 4 | 5 | ### 2. How do you call a main.tf module? 6 | 7 | ### 3. What exactly is Sentinel? Can you provide few examples where we can use for Sentinel policies? 8 | 9 | ### 4. You have a Terraform configuration file that defines an infrastructure deployment. However, there are multiple instances of the same resource that need to be created. How would you modify the configuration file to achieve this? 10 | 11 | ### 5. You want to know from which paths Terraform is loading providers referenced in your Terraform configuration (\*.tf files). You need to enable debug messages to find this out. Which of the following would achieve this? 12 | 13 | A. Set the environment variable TF_LOG=TRACE 14 | 15 | B. Set verbose logging for each provider in your Terraform configuration 16 | 17 | C. Set the environment variable TF_VAR_log=TRACE 18 | 19 | D. Set the environment variable TF_LOG_PATH 20 | 21 | ### 6. Below command will destroy everything that is being created in the infrastructure. Tell us how would you save any particular resource while destroying the complete infrastructure. 22 | 23 | ``` 24 | terraform destroy 25 | ``` 26 | 27 | ### 7. Which module is used to store .tfstate file in S3? 28 | 29 | ### 8. How do you manage sensitive data in Terraform, such as API keys or passwords? 30 | 31 | ### 9. You are working on a Terraform project that needs to provision an S3 bucket, and a user with read and write access to the bucket. What resources would you use to accomplish this, and how would you configure them? 32 | 33 | ### 10. Who maintains Terraform providers? 34 | 35 | ### 11. How can we export data from one module to another? 36 | 37 | # 38 | 39 | Waiting for your responses😉.....Till then Happy learning :) 40 | 41 | [← Previous Day](../day70/README.md) | [Next Day →](../day72/README.md) 42 | -------------------------------------------------------------------------------- /2023/day72/README.md: -------------------------------------------------------------------------------- 1 | Day 72 - Grafana🔥 2 | 3 | Hello Learners , you guys are doing really a good job. You will not be there 24\*7 to monitor your resources. So, Today let’s monitor the resources in a smart way with - Grafana 🎉 4 | 5 | ## Task 1: 6 | 7 | > What is Grafana? What are the features of Grafana? 8 | > Why Grafana? 9 | > What type of monitoring can be done via Grafana? 10 | > What databases work with Grafana? 11 | > What are metrics and visualizations in Grafana? 12 | > What is the difference between Grafana vs Prometheus? 13 | 14 | --- 15 | 16 | [← Previous Day](../day71/README.md) | [Next Day →](../day73/README.md) 17 | -------------------------------------------------------------------------------- /2023/day73/README.md: -------------------------------------------------------------------------------- 1 | Day 73 - Grafana 🔥 2 | Hope you are now clear with the basics of grafana, like why we use, where we use, what can we do with this and so on. 3 | 4 | Now, let's do some practical stuff. 5 | 6 | --- 7 | 8 | Task: 9 | 10 | > Setup grafana in your local environment on AWS EC2. 11 | 12 | --- 13 | 14 | Ref: https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7042518379030556672-ZZA-?utm_source=share&utm_medium=member_desktop 15 | 16 | [← Previous Day](../day72/README.md) | [Next Day →](../day74/README.md) 17 | -------------------------------------------------------------------------------- /2023/day74/README.md: -------------------------------------------------------------------------------- 1 | # Day 74 - Connecting EC2 with Grafana . 2 | 3 | You guys did amazing job last day setting up Grafana on Local 🔥. 4 | 5 | Now, let's do one step ahead. 6 | 7 | --- 8 | 9 | Task: 10 | 11 | Connect an Linux and one Windows EC2 instance with Grafana and monitor the different components of the server. 12 | 13 | --- 14 | 15 | Don't forget to share this amazing work over LinkedIn and Tag us. 16 | 17 | ## Happy Learning :) 18 | 19 | [← Previous Day](../day73/README.md) | [Next Day →](../day75/README.md) 20 | -------------------------------------------------------------------------------- /2023/day75/README.md: -------------------------------------------------------------------------------- 1 | # Day 75 - Sending Docker Log to Grafana 2 | 3 | We have monitored ,😉 that you guys are understanding and doing amazing with monitoring tool. 👌 4 | 5 | Today, make it little bit more complex but interesting 😍 and let's add one more **Project** 🔥 to your resume. 6 | 7 | --- 8 | 9 | ## Task: 10 | 11 | - Install _Docker_ and start docker service on a Linux EC2 through [USER DATA](../day39/README.md) . 12 | - Create 2 Docker containers and run any basic application on those containers (A simple todo app will work). 13 | - Now intregrate the docker containers and share the real time logs with Grafana (Your Instance should be connected to Grafana and Docker plugin should be enabled on grafana). 14 | - Check the logs or docker container name on Grafana UI. 15 | 16 | --- 17 | 18 | You can use [this video](https://youtu.be/y3SGHbixmJw) for your refernce. But it's always better to find your own way of doing. 😊 19 | 20 | ## Bonus : 21 | 22 | - As you have done this amazing task, here is one bonus link.❤️ 23 | 24 | ## You can use this [refernce video](https://youtu.be/CCi957AnSfc) to intregrate _Prometheus_ with _Grafana_ and monitor Docker containers. Seems interesting ? 25 | 26 | Don't forget to share this amazing work over LinkedIn and Tag us. 27 | 28 | ## Happy Learning :) 29 | 30 | [← Previous Day](../day74/README.md) | [Next Day →](../day76/README.md) 31 | -------------------------------------------------------------------------------- /2023/day76/README.md: -------------------------------------------------------------------------------- 1 | # Day 76 Build a Grafana dashboard 2 | 3 | A dashboard gives you an at-a-glance view of your data and lets you track metrics through different visualizations. 4 | 5 | Dashboards consist of panels, each representing a part of the story you want your dashboard to tell. 6 | 7 | Every panel consists of a query and a visualization. The query defines what data you want to display, whereas the visualization defines how the data is displayed. 8 | 9 | ## Task 01 10 | 11 | - In the sidebar, hover your cursor over the Create (plus sign) icon and then click Dashboard. 12 | 13 | - Click Add a new panel. 14 | 15 | - In the Query editor below the graph, enter the query from earlier and then press Shift + Enter: 16 | 17 | `sum(rate(tns_request_duration_seconds_count[5m])) by(route)` 18 | 19 | - In the Legend field, enter {{route}} to rename the time series in the legend. The graph legend updates when you click outside the field. 20 | 21 | - In the Panel editor on the right, under Settings, change the panel title to “Traffic”. 22 | 23 | - Click Apply in the top-right corner to save the panel and go back to the dashboard view. 24 | 25 | - Click the Save dashboard (disk) icon at the top of the dashboard to save your dashboard. 26 | 27 | - Enter a name in the Dashboard name field and then click Save. 28 | 29 | Read [this](https://grafana.com/tutorials/grafana-fundamentals/) in case you have any questions 30 | 31 | Do share some amazing Dashboards with the community 32 | 33 | [← Previous Day](../day75/README.md) | [Next Day →](../day77/README.md) 34 | -------------------------------------------------------------------------------- /2023/day77/README.md: -------------------------------------------------------------------------------- 1 | # Day 77 Alerting 2 | 3 | Grafana Alerting allows you to learn about problems in your systems moments after they occur. Create, manage, and take action on your alerts in a single, consolidated view, and improve your team’s ability to identify and resolve issues quickly. 4 | 5 | Grafana Alerting is available for Grafana OSS, Grafana Enterprise, or Grafana Cloud. With Mimir and Loki alert rules you can run alert expressions closer to your data and at massive scale, all managed by the Grafana UI you are already familiar with. 6 | 7 | ## Task-01 8 | 9 | - Setup [Grafana cloud](https://grafana.com/products/cloud/) 10 | - Setup sample alerting 11 | 12 | Check out [this blog](https://grafana.com/docs/grafana/latest/alerting/) for more details 13 | 14 | [← Previous Day](../day76/README.md) | [Next Day →](../day78/README.md) 15 | -------------------------------------------------------------------------------- /2023/day78/README.md: -------------------------------------------------------------------------------- 1 | Day - 78 (Grafana Cloud) 2 | 3 | --- 4 | 5 | Task - 01 6 | 7 | 1. Setup alerts for EC2 instance. 8 | 2. Setup alerts for AWS Billing Alerts. 9 | 10 | --- 11 | 12 | For Reference: https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7044695663913148416-LfvD?utm_source=share&utm_medium=member_desktop 13 | 14 | [← Previous Day](../day77/README.md) | [Next Day →](../day79/README.md) 15 | -------------------------------------------------------------------------------- /2023/day79/README.md: -------------------------------------------------------------------------------- 1 | Day 79 - Prometheus 🔥 2 | 3 | Now, the next step is to learn about the Prometheus. 4 | It's an open-source system for monitoring services and alerts based on a time series data model. Prometheus collects data and metrics from different services and stores them according to a unique identifier—the metric name—and a time stamp. 5 | 6 | Tasks: 7 | 8 | --- 9 | 10 | 1. What is the Architecture of Prometheus Monitoring? 11 | 2. What are the Features of Prometheus? 12 | 3. What are the Components of Prometheus? 13 | 4. What database is used by Prometheus? 14 | 5. What is the default data retention period in Prometheus? 15 | 16 | --- 17 | 18 | Ref: https://www.devopsschool.com/blog/top-50-prometheus-interview-questions-and-answers/ 19 | 20 | [← Previous Day](../day78/README.md) | [Next Day →](../day80/README.md) 21 | -------------------------------------------------------------------------------- /2023/day80/README.md: -------------------------------------------------------------------------------- 1 | # Project-1 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project aims to automate the building, testing, and deployment process of a web application using Jenkins and GitHub. The Jenkins pipeline will be triggered automatically by GitHub webhook integration when changes are made to the code repository. The pipeline will include stages such as building, testing, and deploying the application, with notifications and alerts for failed builds or deployments. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7011367641952993281-DHn5?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day79/README.md) | [Next Day →](../day81/README.md) 16 | -------------------------------------------------------------------------------- /2023/day81/README.md: -------------------------------------------------------------------------------- 1 | # Project-2 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project is about automating the deployment process of a web application using Jenkins and its declarative syntax. The pipeline includes stages like building, testing, and deploying to a staging environment. It also includes running acceptance tests and deploying to production if all tests pass. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7014971330496212992-6Q2m?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day80/README.md) | [Next Day →](../day82/README.md) 16 | -------------------------------------------------------------------------------- /2023/day82/README.md: -------------------------------------------------------------------------------- 1 | # Project-3 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves hosting a static website using an AWS S3 bucket. Amazon S3 is an object storage service that provides a simple web services interface to store and retrieve any amount of data. The website files will be uploaded to an S3 bucket and configured to function as a static website. The bucket will be configured with the appropriate permissions and a unique domain name, making the website publicly accessible. Overall, the project aims to leverage the benefits of AWS S3 to host and scale a static website in a cost-effective and scalable manner. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_aws-project-devopsjobs-activity-7016427742300663808-JAQd?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day81/README.md) | [Next Day →](../day83/README.md) 16 | -------------------------------------------------------------------------------- /2023/day83/README.md: -------------------------------------------------------------------------------- 1 | # Project-4 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project aims to deploy a web application using Docker Swarm, a container orchestration tool that allows for easy management and scaling of containerized applications. The project will utilize Docker Swarm's production-ready features such as load balancing, rolling updates, and service discovery to ensure high availability and reliability of the web application. The project will involve creating a Dockerfile to package the application into a container and then deploying it onto a Swarm cluster. The Swarm cluster will be configured to provide automated failover, load balancing, and horizontal scaling to the application. The goal of the project is to demonstrate the benefits of Docker Swarm for deploying and managing containerized applications in production environments. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7034173810656296960-UjUw?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day82/README.md) | [Next Day →](../day84/README.md) 16 | -------------------------------------------------------------------------------- /2023/day84/README.md: -------------------------------------------------------------------------------- 1 | # Project-5 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Netflix clone web application on a Kubernetes cluster, a popular container orchestration platform that simplifies the deployment and management of containerized applications. The project will require creating Docker images of the web application and its dependencies and deploying them onto the Kubernetes cluster using Kubernetes manifests. The Kubernetes cluster will provide benefits such as high availability, scalability, and automatic failover of the application. Additionally, the project will utilize Kubernetes tools such as Kubernetes Dashboard and kubectl to monitor and manage the deployed application. Overall, the project aims to demonstrate the power and benefits of Kubernetes for deploying and managing containerized applications at scale. 8 | 9 | ## Task-01 10 | 11 | Get a netflix clone form [GitHub](https://github.com/devandres-tech/Netflix-Clone), read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7034173810656296960-UjUw?utm_source=share&utm_medium=member_desktop) and follow the Redit clone steps to similarly deploy a Netflix Clone 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day83/README.md) | [Next Day →](../day85/README.md) 16 | -------------------------------------------------------------------------------- /2023/day85/README.md: -------------------------------------------------------------------------------- 1 | # Project-6 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Node JS app on AWS ECS Fargate and AWS ECR. 8 | Read More about the tech stack [here](https://faun.pub/what-is-amazon-ecs-and-ecr-how-does-they-work-with-an-example-4acbf9be8415) 9 | 10 | ## Task-01 11 | 12 | - Get a NodeJs application from [GitHub](https://github.com/LondheShubham153/node-todo-cicd). 13 | 14 | - Build the Dockerfile present in the repo 15 | 16 | - Setup AWS CLI and AWS Login in order to tag and push to ECR 17 | 18 | - Setup an ECS cluster 19 | 20 | - Create a Task Definition for the node js project with ECR image 21 | 22 | - Run the Project and share it on LinkedIn :) 23 | 24 | Happy Learning :) 25 | 26 | [← Previous Day](../day84/README.md) | [Next Day →](../day86/README.md) 27 | -------------------------------------------------------------------------------- /2023/day86/README.md: -------------------------------------------------------------------------------- 1 | # Project-7 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Portfolio app on AWS S3 using GitHub Actions. 8 | Git Hub actions allows you to perform CICD with GitHub Repository integrated. 9 | 10 | ## Task-01 11 | 12 | - Get a Portfolio application from [GitHub](https://github.com/LondheShubham153/tws-portfolio). 13 | 14 | - Build the GitHub Actions Workflow 15 | 16 | - Setup AWS CLI and AWS Login in order to sync website to S3 (to be done as a part of YAML) 17 | 18 | - Follow this [video]() to understand it better 19 | 20 | - Run the Project and share it on LinkedIn :) 21 | 22 | Happy Learning :) 23 | 24 | [← Previous Day](../day85/README.md) | [Next Day →](../day87/README.md) 25 | -------------------------------------------------------------------------------- /2023/day87/README.md: -------------------------------------------------------------------------------- 1 | # Project-8 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a react application on AWS Elastic BeanStalk using GitHub Actions. 8 | Git Hub actions allows you to perform CICD with GitHub Repository integrated. 9 | 10 | ## Task-01 11 | 12 | - Get source code from [GitHub](https://github.com/sitchatt/AWS_Elastic_BeanStalk_On_EC2.git). 13 | 14 | - Setup AWS Elastic BeanStalk 15 | 16 | - Build the GitHub Actions Workflow 17 | 18 | - Follow this [blog](https://www.linkedin.com/posts/sitabja-chatterjee_effortless-deployment-of-react-app-to-aws-activity-7053579065487687680-wZI8?utm_source=share&utm_medium=member_desktop) to understand it better 19 | 20 | - Run the Project and share it on LinkedIn :) 21 | 22 | Happy Learning :) 23 | 24 | [← Previous Day](../day86/README.md) | [Next Day →](../day88/README.md) 25 | -------------------------------------------------------------------------------- /2023/day88/README.md: -------------------------------------------------------------------------------- 1 | # Project-9 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Django Todo app on AWS EC2 using Kubeadm Kubernetes cluster. 8 | 9 | Kubernetes Cluster helps in Auto-scaling and Auto-healing of your application. 10 | 11 | ## Task-01 12 | 13 | - Get a Django Full Stack application from [GitHub](https://github.com/LondheShubham153/django-todo-cicd). 14 | 15 | - Setup the Kubernetes cluster using [this script](https://github.com/RishikeshOps/Scripts/blob/main/k8sss.sh) 16 | 17 | - Setup Deployment and Service for Kubernetes. 18 | 19 | - Run the Project and share it on LinkedIn :) 20 | 21 | Happy Learning :) 22 | 23 | [← Previous Day](../day87/README.md) | [Next Day →](../day89/README.md) 24 | -------------------------------------------------------------------------------- /2023/day89/README.md: -------------------------------------------------------------------------------- 1 | # Project-10 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves Mounting of AWS S3 Bucket On Amazon EC2 Linux Using S3FS. 8 | 9 | This is a AWS Mini Project that will teach you AWS, S3, EC2, S3FS. 10 | 11 | ## Task-01 12 | 13 | - Create IAM user and set policies for the project resources using this [blog](https://medium.com/@chetxn/project-8-devops-implementation-8300b9ed1f2). 14 | - Utilize and make the best use of aws-cli 15 | - Run the Project and share it on LinkedIn :) 16 | 17 | Happy Learning :) 18 | 19 | [← Previous Day](../day88/README.md) | [Next Day →](../day90/README.md) 20 | -------------------------------------------------------------------------------- /2023/day90/README.md: -------------------------------------------------------------------------------- 1 | # Day 90: The Awesome Finale! 🎉 🎉 2 | 3 | 🚀 Can you believe it? You've hit the jackpot – Day 90, the grand finale of our DevOps bonanza. Time to give yourself a virtual high-five! 4 | 5 | ### What's Next? 6 | 7 | While this marks the end of the official 90-day journey, remember that your learning journey in DevOps is far from over. There's always something new to explore, tools to master, and techniques to refine. We're continuing to curate more content, challenges, and resources to help you advance your DevOps expertise. 8 | 9 | ### Share Your Achievement 10 | 11 | Share your journey with the world! Post about your accomplishments on social media using the hashtag #90DaysOfDevOps. Inspire others to join the DevOps movement and take charge of their learning path. 12 | 13 | ### Keep the Momentum Going! 14 | 15 | The knowledge and skills you've gained during these 90 days are just the beginning. Keep practicing, experimenting, and collaborating. DevOps is a continuous journey of improvement and innovation. 16 | 17 | ### Star the Repository 18 | 19 | If you've found value in this repository and the DevOps content we've curated, consider showing your appreciation by starring this repository. Your support motivates us to keep creating high-quality content and resources for the community. 20 | 21 | **[🌟 Star this repository](https://github.com/LondheShubham153/90DaysOfDevOps)** 22 | 23 | Thank you for being part of the "90 Days of DevOps" adventure. 24 | Keep coding, automating, deploying, and innovating! 🎈 25 | 26 | With gratitude, 27 | @TrainWithShubham 28 | 29 | [← Previous Day](../day89/README.md) 30 | -------------------------------------------------------------------------------- /2024/day01/README.md: -------------------------------------------------------------------------------- 1 | # Introduction - Day 1 2 | 3 | Welcome to the #90DaysOfDevOps Challenge with the #TrainWithShubham Community! Today, we begin our journey into the world of DevOps. Here’s what you need to do: 4 | 5 | 1. **Fork this Repository:** 6 | - Go to the repository on GitHub and fork it to your own account. This will allow you to track your progress and contribute. 7 | 8 | 2. **Start with a DevOps Roadmap:** 9 | - Watch the introductory video on DevOps: [DevOps Roadmap](https://youtu.be/g_QHuGq3E2Y?si=fR9K56-JevZTfrBK) 10 | 11 | 3. **Write a LinkedIn Post or a Small Article:** 12 | - Share your understanding of DevOps based on the video and your research. Cover the following points: 13 | 14 | - **What is DevOps:** 15 | 16 | 17 | - **What is Automation, Scaling, and Infrastructure:** 18 | 19 | 20 | - **Why DevOps is Important:** 21 | 22 | 23 | 24 | 4. **Engage with the Community:** 25 | - Share your LinkedIn post or article link in the community forum or on social media using the hashtags #90DaysOfDevOps and #TrainWithShubham. 26 | - Read and comment on posts from other participants to foster a collaborative learning environment. 27 | 28 | -------------------------------------------------------------------------------- /2024/day02/readme.md: -------------------------------------------------------------------------------- 1 | ## Basic linux commands 2 | 3 | ### Listing commands 4 | ```ls option_flag arguments ```--> list the sub directories and files avaiable in the present directory 5 | 6 | Examples: 7 | 8 | - ``` ls -l ```--> list the files and directories in long list format with extra information 9 | - ```ls -a ```--> list all including hidden files and directory 10 | - ```ls *.sh``` --> list all the files having .sh extension. 11 | 12 | - ```ls -i ``` --> list the files and directories with index numbers inodes 13 | - ``` ls -d */``` --> list only directories.(we can also specify a pattern) 14 | 15 | ### Directoy commands 16 | - ```pwd``` --> print work directory. Gives the present working directory. 17 | 18 | - ```cd path_to_directory``` --> change directory to the provided path 19 | 20 | - ```cd ~ ``` or just ```cd ``` --> change directory to the home directory 21 | 22 | - ``` cd - ``` --> Go to the last working directory. 23 | 24 | - ``` cd ..``` --> change directory to one step back. 25 | 26 | - ``` cd ../..``` --> Change directory to 2 levels back. 27 | 28 | - ``` mkdir directoryName``` --> to make a directory in a specific location 29 | 30 | Examples: 31 | ``` 32 | mkdir newFolder # make a new folder 'newFolder' 33 | 34 | mkdir .NewFolder # make a hidden directory (also . before a file to make it hidden) 35 | 36 | mkdir A B C D #make multiple directories at the same time 37 | 38 | mkdir /home/user/Mydirectory # make a new folder in a specific location 39 | 40 | mkdir -p A/B/C/D # make a nested directory 41 | ``` 42 | -------------------------------------------------------------------------------- /2024/day03/README.md: -------------------------------------------------------------------------------- 1 | # Day 3 Task: Basic Linux Commands with a Twist 2 | 3 | Task: What are the Linux commands to 4 | 5 | 1. View the content of a file and display line numbers. 6 | 2. Change the access permissions of files to make them readable, writable, and executable by the owner only. 7 | 3. Check the last 10 commands you have run. 8 | 4. Remove a directory and all its contents. 9 | 5. Create a `fruits.txt` file, add content (one fruit per line), and display the content. 10 | 6. Add content in `devops.txt` (one in each line) - Apple, Mango, Banana, Cherry, Kiwi, Orange, Guava. Then, append "Pineapple" to the end of the file. 11 | 7. Show the first three fruits from the file in reverse order. 12 | 8. Show the bottom three fruits from the file, and then sort them alphabetically. 13 | 9. Create another file `Colors.txt`, add content (one color per line), and display the content. 14 | 10. Add content in `Colors.txt` (one in each line) - Red, Pink, White, Black, Blue, Orange, Purple, Grey. Then, prepend "Yellow" to the beginning of the file. 15 | 11. Find and display the lines that are common between `fruits.txt` and `Colors.txt`. 16 | 12. Count the number of lines, words, and characters in both `fruits.txt` and `Colors.txt`. 17 | 18 | Reference: [Linux Commands for DevOps Used Day-to-Day](https://www.linkedin.com/pulse/linux-commands-devops-used-day-to-day-activit-chetan-/) 19 | 20 | [← Previous Day](../day02/README.md) | [Next Day →](../day04/README.md) 21 | -------------------------------------------------------------------------------- /2024/day03/image/task 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 1.png -------------------------------------------------------------------------------- /2024/day03/image/task 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 10.png -------------------------------------------------------------------------------- /2024/day03/image/task 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 11.png -------------------------------------------------------------------------------- /2024/day03/image/task 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 12.png -------------------------------------------------------------------------------- /2024/day03/image/task 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 2.png -------------------------------------------------------------------------------- /2024/day03/image/task 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 3.png -------------------------------------------------------------------------------- /2024/day03/image/task 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 4.png -------------------------------------------------------------------------------- /2024/day03/image/task 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 5.png -------------------------------------------------------------------------------- /2024/day03/image/task 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 6.png -------------------------------------------------------------------------------- /2024/day03/image/task 66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 66.png -------------------------------------------------------------------------------- /2024/day03/image/task 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 7.png -------------------------------------------------------------------------------- /2024/day03/image/task 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 8.png -------------------------------------------------------------------------------- /2024/day03/image/task 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day03/image/task 9.png -------------------------------------------------------------------------------- /2024/day04/README.md: -------------------------------------------------------------------------------- 1 | # Day 4 Task: Basic Linux Shell Scripting for DevOps Engineers 2 | 3 | ## What is Kernel? 4 | 5 | The kernel is a computer program that is the core of a computer’s operating system, with complete control over everything in the system. 6 | 7 | ## What is Shell? 8 | 9 | A shell is a special user program that provides an interface for users to interact with operating system services. It accepts human-readable commands from users and converts them into instructions that the kernel can understand. The shell is a command language interpreter that executes commands read from input devices such as keyboards or from files. It starts when the user logs in or opens a terminal. 10 | 11 | ## What is Linux Shell Scripting? 12 | 13 | Linux shell scripting involves writing programs (scripts) that can be run by a Linux shell, such as bash (Bourne Again Shell). These scripts automate tasks, perform system administration tasks, and facilitate the interaction between users and the operating system. 14 | 15 | **Tasks:** 16 | 17 | - Explain in your own words and with examples what Shell Scripting means for DevOps. 18 | - What is `#!/bin/bash`? Can we write `#!/bin/sh` as well? 19 | - Write a Shell Script that prints `I will complete #90DaysOfDevOps challenge`. 20 | - Write a Shell Script that takes user input, input from arguments, and prints the variables. 21 | - Provide an example of an If-Else statement in Shell Scripting by comparing two numbers. 22 | 23 | **Were the tasks challenging?** 24 | 25 | These tasks are designed to introduce you to basic concepts of Linux shell scripting for DevOps. Share your experience and solutions on LinkedIn and let me know how it went! :) 26 | 27 | **Article Reference:** [Click here to read basic Linux Shell Scripting](https://devopscube.com/linux-shell-scripting-for-devops/) 28 | 29 | **YouTube Video:** [EASIEST Shell Scripting Tutorial for DevOps Engineers](https://www.youtube.com/watch?v=_-D6gkRj7xc&list=PLlfy9GnSVerQr-Se9JRE_tZJk3OUoHCkh&index=3) 30 | 31 | [← Previous Day](../day03/README.md) | [Next Day →](../day05/README.md) 32 | -------------------------------------------------------------------------------- /2024/day04/image/task 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day04/image/task 1.png -------------------------------------------------------------------------------- /2024/day04/image/task 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day04/image/task 11.png -------------------------------------------------------------------------------- /2024/day04/image/task 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day04/image/task 2.png -------------------------------------------------------------------------------- /2024/day04/image/task 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day04/image/task 3.png -------------------------------------------------------------------------------- /2024/day04/image/task 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day04/image/task 4.png -------------------------------------------------------------------------------- /2024/day04/image/task 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day04/image/task 5.png -------------------------------------------------------------------------------- /2024/day04/solution.md: -------------------------------------------------------------------------------- 1 | 2 | # Day 4 Answers: Basic Linux Shell Scripting for DevOps Engineers 3 | 4 | Task 1: Explain in your own words and with examples what Shell Scripting means for DevOps. 5 | - 'Shell Scripting is writing a series of commands in a script file to automate tasks in the Unix/Linux shell. For DevOps, shell scripting is crucial for automating repetitive tasks, managing system configurations, deploying applications, and integrating various tools and processes in a CI/CD pipeline. It enhances efficiency, reduces errors, and saves time.' 6 | 7 | Example: Automating server setup 8 | ![image](https://github.com/Bhavin213/90DaysOfDevOps/blob/master/2024/day04/image/task%201.png) 9 | ![image](https://github.com/Bhavin213/90DaysOfDevOps/blob/master/2024/day04/image/task%2011.png) 10 | 11 | Task 2: What is `#!/bin/bash`? Can we write `#!/bin/sh` as well? 12 | - `#!/bin/bash` is called a "shebang" line. It indicates that the script should be run using the Bash shell. 13 | - `#!/bin/bash`: Uses Bash as the interpreter. It supports advanced features like arrays, associative arrays, and functions. 14 | - `#!/bin/sh`: Uses the Bourne shell. It’s more POSIX-compliant and is generally compatible with different Unix shells. 15 | 16 | ![image](https://github.com/Bhavin213/90DaysOfDevOps/blob/master/2024/day04/image/task%202.png) 17 | 18 | Task 3: Write a Shell Script that prints `I will complete #90DaysOfDevOps challenge`. 19 | 20 | ![image](https://github.com/Bhavin213/90DaysOfDevOps/blob/master/2024/day04/image/task%203.png) 21 | 22 | Task 4: Write a Shell Script that takes user input, input from arguments, and prints the variables. 23 | 24 | ![image](https://github.com/Bhavin213/90DaysOfDevOps/blob/master/2024/day04/image/task%204.png) 25 | 26 | Task 5: Provide an example of an If-Else statement in Shell Scripting by comparing two numbers. 27 | 28 | ![image](https://github.com/Bhavin213/90DaysOfDevOps/blob/master/2024/day04/image/task%205.png) 29 | -------------------------------------------------------------------------------- /2024/day05/image/task 1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 1-2.png -------------------------------------------------------------------------------- /2024/day05/image/task 1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 1-3.png -------------------------------------------------------------------------------- /2024/day05/image/task 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 1.png -------------------------------------------------------------------------------- /2024/day05/image/task 2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 2-1.png -------------------------------------------------------------------------------- /2024/day05/image/task 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 2.png -------------------------------------------------------------------------------- /2024/day05/image/task 3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 3-1.png -------------------------------------------------------------------------------- /2024/day05/image/task 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 3.png -------------------------------------------------------------------------------- /2024/day05/image/task 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day05/image/task 4.png -------------------------------------------------------------------------------- /2024/day06/image/task1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task1.png -------------------------------------------------------------------------------- /2024/day06/image/task3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task3.png -------------------------------------------------------------------------------- /2024/day06/image/task4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task4-1.png -------------------------------------------------------------------------------- /2024/day06/image/task4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task4.png -------------------------------------------------------------------------------- /2024/day06/image/task5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task5-1.png -------------------------------------------------------------------------------- /2024/day06/image/task5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task5-2.png -------------------------------------------------------------------------------- /2024/day06/image/task5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task5.png -------------------------------------------------------------------------------- /2024/day06/image/task6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task6-1.png -------------------------------------------------------------------------------- /2024/day06/image/task6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day06/image/task6.png -------------------------------------------------------------------------------- /2024/day07/image/task1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task1-2.png -------------------------------------------------------------------------------- /2024/day07/image/task1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task1.png -------------------------------------------------------------------------------- /2024/day07/image/task4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task4.png -------------------------------------------------------------------------------- /2024/day07/image/task5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task5-1.png -------------------------------------------------------------------------------- /2024/day07/image/task5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task5.png -------------------------------------------------------------------------------- /2024/day07/image/task6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task6-1.png -------------------------------------------------------------------------------- /2024/day07/image/task6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/task6.png -------------------------------------------------------------------------------- /2024/day07/image/taskj2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day07/image/taskj2.png -------------------------------------------------------------------------------- /2024/day08/README.md: -------------------------------------------------------------------------------- 1 | # Day 8 Task: Shell Scripting Challenge 2 | 3 | ### Task 1: Comments 4 | In bash scripts, comments are used to add explanatory notes or disable certain lines of code. Your task is to create a bash script with comments explaining what the script does. 5 | 6 | ### Task 2: Echo 7 | The echo command is used to display messages on the terminal. Your task is to create a bash script that uses echo to print a message of your choice. 8 | 9 | ### Task 3: Variables 10 | Variables in bash are used to store data and can be referenced by their name. Your task is to create a bash script that declares variables and assigns values to them. 11 | 12 | ### Task 4: Using Variables 13 | Now that you have declared variables, let's use them to perform a simple task. Create a bash script that takes two variables (numbers) as input and prints their sum using those variables. 14 | 15 | ### Task 5: Using Built-in Variables 16 | Bash provides several built-in variables that hold useful information. Your task is to create a bash script that utilizes at least three different built-in variables to display relevant information. 17 | 18 | ### Task 6: Wildcards 19 | Wildcards are special characters used to perform pattern matching when working with files. Your task is to create a bash script that utilizes wildcards to list all the files with a specific extension in a directory. 20 | 21 | ## Submission Instructions: 22 | - Create a single bash script that completes all the tasks mentioned above. 23 | - Add comments at appropriate places to explain what each part of the script does. 24 | - Ensure that your script is well-documented and easy to understand. 25 | - To submit your entry, create a GitHub repository and commit your script to it. 26 | 27 | **Good luck with Day 8 of the Bash Scripting Challenge! Tomorrow, the difficulty will increase as we move on to more advanced concepts. Happy scripting!** 28 | 29 | [← Previous Day](../day07/README.md) | [Next Day →](../day09/README.md) 30 | -------------------------------------------------------------------------------- /2024/day08/image/task1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day08/image/task1.png -------------------------------------------------------------------------------- /2024/day08/image/task2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day08/image/task2.png -------------------------------------------------------------------------------- /2024/day08/image/task3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day08/image/task3.png -------------------------------------------------------------------------------- /2024/day08/image/task4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day08/image/task4.png -------------------------------------------------------------------------------- /2024/day08/image/task5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day08/image/task5.png -------------------------------------------------------------------------------- /2024/day08/image/task6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day08/image/task6.png -------------------------------------------------------------------------------- /2024/day09/image/bash1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day09/image/bash1.png -------------------------------------------------------------------------------- /2024/day09/image/task1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day09/image/task1-2.png -------------------------------------------------------------------------------- /2024/day09/image/task11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day09/image/task11.png -------------------------------------------------------------------------------- /2024/day09/image/task2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day09/image/task2.png -------------------------------------------------------------------------------- /2024/day09/image/task3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day09/image/task3.png -------------------------------------------------------------------------------- /2024/day10/image/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day10/image/output.png -------------------------------------------------------------------------------- /2024/day10/image/task1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day10/image/task1.png -------------------------------------------------------------------------------- /2024/day10/image/task2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day10/image/task2.png -------------------------------------------------------------------------------- /2024/day11/image/task1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day11/image/task1.png -------------------------------------------------------------------------------- /2024/day11/image/task2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day11/image/task2.png -------------------------------------------------------------------------------- /2024/day11/image/task3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day11/image/task3.png -------------------------------------------------------------------------------- /2024/day11/image/task4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day11/image/task4.png -------------------------------------------------------------------------------- /2024/day11/image/task5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day11/image/task5.png -------------------------------------------------------------------------------- /2024/day11/image/task5ka1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day11/image/task5ka1.png -------------------------------------------------------------------------------- /2024/day12/README.md: -------------------------------------------------------------------------------- 1 | # Day 12 Task: Deep Dive in Git & GitHub for DevOps Engineers 2 | 3 | ## Find the answers by your understandings (Shouldn't be copied from the internet & use hand-made diagrams) of the questions below and write a blog on it. 4 | 5 | 1. What is Git and why is it important? 6 | 2. What is the difference between Main Branch and Master Branch? 7 | 3. Can you explain the difference between Git and GitHub? 8 | 4. How do you create a new repository on GitHub? 9 | 5. What is the difference between a local & remote repository? How to connect local to remote? 10 | 11 | ## Tasks 12 | 13 | ### Task 1: 14 | - Set your user name and email address, which will be associated with your commits. 15 | 16 | ### Task 2: 17 | - Create a repository named "DevOps" on GitHub. 18 | - Connect your local repository to the repository on GitHub. 19 | - Create a new file in Devops/Git/Day-02.txt & add some content to it. 20 | - Push your local commits to the repository on GitHub. 21 | 22 | Reference: [YouTube Video](https://youtu.be/AT1uxOLsCdk) 23 | 24 | Note: These steps assume that you have already installed Git on your computer and have created a GitHub account. If you need help with these prerequisites, you can refer to the [guide](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). 25 | 26 | [← Previous Day](../day11/README.md) | [Next Day →](../day13/README.md) 27 | -------------------------------------------------------------------------------- /2024/day12/image/connect_your_local_repository_to_the_repository_on_github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/connect_your_local_repository_to_the_repository_on_github.png -------------------------------------------------------------------------------- /2024/day12/image/create_a_new_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/create_a_new_file.png -------------------------------------------------------------------------------- /2024/day12/image/create_a_new_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/create_a_new_repository.png -------------------------------------------------------------------------------- /2024/day12/image/gitui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/gitui.png -------------------------------------------------------------------------------- /2024/day12/image/gitui1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/gitui1.png -------------------------------------------------------------------------------- /2024/day12/image/gitui2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/gitui2.png -------------------------------------------------------------------------------- /2024/day12/image/push_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/push_repository.png -------------------------------------------------------------------------------- /2024/day12/image/set_user_name_and_email_address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day12/image/set_user_name_and_email_address.png -------------------------------------------------------------------------------- /2024/day13/image/1 Create a Branch and Add a Feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/1 Create a Branch and Add a Feature.png -------------------------------------------------------------------------------- /2024/day13/image/10 Screenshot of branch structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/10 Screenshot of branch structure.png -------------------------------------------------------------------------------- /2024/day13/image/11 Merge Changes into Master_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/11 Merge Changes into Master_main.png -------------------------------------------------------------------------------- /2024/day13/image/12 Practice Rebase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/12 Practice Rebase.png -------------------------------------------------------------------------------- /2024/day13/image/2 Create a new branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/2 Create a new branch.png -------------------------------------------------------------------------------- /2024/day13/image/3 Commit your changes with a message reflecting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/3 Commit your changes with a message reflecting.png -------------------------------------------------------------------------------- /2024/day13/image/4 Push your local commits to the repository on GitHub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/4 Push your local commits to the repository on GitHub.png -------------------------------------------------------------------------------- /2024/day13/image/5 This is the bug fix in development branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/5 This is the bug fix in development branch.png -------------------------------------------------------------------------------- /2024/day13/image/6 This is gadbad code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/6 This is gadbad code.png -------------------------------------------------------------------------------- /2024/day13/image/7 This feature will gadbad everything from now.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/7 This feature will gadbad everything from now.png -------------------------------------------------------------------------------- /2024/day13/image/8 Restore the File to a Previous Version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/8 Restore the File to a Previous Version.png -------------------------------------------------------------------------------- /2024/day13/image/9 Create 2 or more branches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day13/image/9 Create 2 or more branches.png -------------------------------------------------------------------------------- /2024/day14/Git_cheat_sheet_rajat.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day14/Git_cheat_sheet_rajat.pdf -------------------------------------------------------------------------------- /2024/day14/Linux_cheat_sheet_rajat.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day14/Linux_cheat_sheet_rajat.pdf -------------------------------------------------------------------------------- /2024/day14/README.md: -------------------------------------------------------------------------------- 1 | # Day 14 Task: Create a Linux & Git-GitHub Cheat Sheet 2 | 3 | ## Finally!! 🎉 4 | 5 | You have completed the Linux & Git-GitHub hands-on tasks, and I hope you have learned something interesting from it. 🙌 6 | 7 | Now, let's create an interesting 😉 assignment that will not only help you in the future but also benefit the DevOps community! 8 | 9 | ## Task: Create a Cheat Sheet 10 | 11 | Let’s make a well-articulated and documented **cheat sheet** with all the commands you learned so far in Linux and Git-GitHub, along with a brief description of their usage. 12 | 13 | Show us your knowledge mixed with your creativity 😎. 14 | 15 | ### Guidelines 16 | 17 | - The cheat sheet should be unique and reflect your understanding. 18 | - Include all the important commands you have learned. 19 | - Provide a brief description of each command's usage. 20 | - Make it visually appealing and easy to understand. 21 | 22 | ### Reference 23 | 24 | For your reference, check out this [cheat sheet](https://education.github.com/git-cheat-sheet-education.pdf). However, ensure that your cheat sheet is unique. 25 | 26 | ### Share Your Work 27 | 28 | Post your cheat sheet on LinkedIn and spread the knowledge. 😃 29 | 30 | **Happy Learning! :)** 31 | 32 | [← Previous Day](../day13/README.md) | [Next Day →](../day15/README.md) 33 | -------------------------------------------------------------------------------- /2024/day15/README.md: -------------------------------------------------------------------------------- 1 | # Day 15 Task: Basics of Python for DevOps Engineers 2 | 3 | ## Hello Dosto 4 | 5 | Let's start with the basics of Python, as this is also important for DevOps Engineers to build logic and programs. 6 | 7 | ### What is Python? 8 | 9 | - Python is an open-source, general-purpose, high-level, and object-oriented programming language. 10 | - It was created by **Guido van Rossum**. 11 | - Python consists of vast libraries and various frameworks like Django, TensorFlow, Flask, Pandas, Keras, etc. 12 | 13 | ### How to Install Python? 14 | 15 | You can install Python on your system, whether it is Windows, macOS, Ubuntu, CentOS, etc. Below are the links for the installation: 16 | 17 | - [Windows Installation](https://www.python.org/downloads/) 18 | - Ubuntu: `apt-get install python3.6` 19 | 20 | ## Tasks 21 | 22 | ### Task 1: 23 | 24 | 1. Install Python on your respective OS, and check the version. 25 | 2. Read about different data types in Python. 26 | 27 | You can get the complete playlist [here](https://www.youtube.com/watch?v=abPgj_3hzVY&list=PLlfy9GnSVerS_L5z0COaF7rsbgWmJXTOM) 🙌 28 | 29 | Don't forget to share your journey over LinkedIn. Let the community know that you have started another chapter of your journey. 30 | 31 | **Happy Learning, Ruko Mat Phod do! 😃** 32 | 33 | [← Previous Day](../day14/README.md) | [Next Day →](../day16/README.md) 34 | -------------------------------------------------------------------------------- /2024/day15/image/Installation_Python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day15/image/Installation_Python.png -------------------------------------------------------------------------------- /2024/day16/README.md: -------------------------------------------------------------------------------- 1 | # Day 16 Task: Docker for DevOps Engineers 2 | 3 | ### Docker 4 | 5 | Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run, including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run. 6 | 7 | ## Tasks 8 | 9 | As you have already installed Docker in previous tasks, now is the time to run Docker commands. 10 | 11 | - Use the `docker run` command to start a new container and interact with it through the command line. [Hint: `docker run hello-world`] 12 | 13 | - Use the `docker inspect` command to view detailed information about a container or image. 14 | 15 | - Use the `docker port` command to list the port mappings for a container. 16 | 17 | - Use the `docker stats` command to view resource usage statistics for one or more containers. 18 | 19 | - Use the `docker top` command to view the processes running inside a container. 20 | 21 | - Use the `docker save` command to save an image to a tar archive. 22 | 23 | - Use the `docker load` command to load an image from a tar archive. 24 | 25 | These tasks involve simple operations that can be used to manage images and containers. 26 | 27 | For reference, you can watch this video: 28 | https://youtu.be/Tevxhn6Odc8 29 | 30 | You can post on LinkedIn and let us know what you have learned from this task by #90DaysOfDevOps Challenge. Happy Learning :) 31 | 32 | [← Previous Day](../day15/README.md) | [Next Day →](../day17/README.md) 33 | -------------------------------------------------------------------------------- /2024/day16/image/1_Start_a_New_Container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/1_Start_a_New_Container.png -------------------------------------------------------------------------------- /2024/day16/image/2_docker_inspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/2_docker_inspect.png -------------------------------------------------------------------------------- /2024/day16/image/3_docker_port.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/3_docker_port.png -------------------------------------------------------------------------------- /2024/day16/image/4_docker_stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/4_docker_stats.png -------------------------------------------------------------------------------- /2024/day16/image/5_docker_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/5_docker_top.png -------------------------------------------------------------------------------- /2024/day16/image/6_docker_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/6_docker_save.png -------------------------------------------------------------------------------- /2024/day16/image/7_docker_load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day16/image/7_docker_load.png -------------------------------------------------------------------------------- /2024/day17/README.md: -------------------------------------------------------------------------------- 1 | ## Day 17 Task: Docker Project for DevOps Engineers 2 | 3 | ### You people are doing just amazing in **#90daysofdevops**. Today's challenge is so special because you are going to do a DevOps project with Docker. Are you excited? 😍 4 | 5 | # Dockerfile 6 | 7 | Docker is a tool that makes it easy to run applications in containers. Containers are like small packages that hold everything an application needs to run. To create these containers, developers use something called a Dockerfile. 8 | 9 | A Dockerfile is like a set of instructions for making a container. It tells Docker what base image to use, what commands to run, and what files to include. For example, if you were making a container for a website, the Dockerfile might tell Docker to use an official web server image, copy the files for your website into the container, and start the web server when the container starts. 10 | 11 | For more about Dockerfile, visit [here](https://rushikesh-mashidkar.hashnode.dev/dockerfile-docker-compose-swarm-and-volumes). 12 | 13 | ## Task 14 | 15 | - Create a Dockerfile for a simple web application (e.g. a Node.js or Python app) 16 | - Build the image using the Dockerfile and run the container 17 | - Verify that the application is working as expected by accessing it in a web browser 18 | - Push the image to a public or private repository (e.g. Docker Hub) 19 | 20 | For a reference project, visit [here](https://youtu.be/Tevxhn6Odc8). 21 | 22 | If you want to dive further, watch this [bootcamp](https://youtube.com/playlist?list=PLlfy9GnSVerRqYJgVYO0UiExj5byjrW8u). 23 | 24 | You can share your learning with everyone over LinkedIn and tag us along. 😃 25 | 26 | Happy Learning :) 27 | 28 | [← Previous Day](../day16/README.md) | [Next Day →](../day18/README.md) 29 | -------------------------------------------------------------------------------- /2024/day17/code.txt: -------------------------------------------------------------------------------- 1 | root@Bhavin-Savaliya:~/flask-app# history 2 | 3 | 1 clear 4 | 2 ls 5 | 3 docker ps 6 | 4 docker 7 | 5 docker --version 8 | 6 systemctl status docker 9 | 7 clear 10 | 8 ls 11 | 9 mkdir flask-app 12 | 10 ls 13 | 11 cd flask-app 14 | 12 vim app.py 15 | 13 ls 16 | 14 cat app.py 17 | 15 clear 18 | 16 ls 19 | 17 vim requirements.txt 20 | 18 ls 21 | 19 cat requirements.txt 22 | 20 clear 23 | 21 ls 24 | 22 vim Dockerfile 25 | 23 ls 26 | 24 cat Dockerfile 27 | 25 clear 28 | 26 ls 29 | 27 docker build -t flask-app . 30 | 28 RUN pip install 31 | 29 apt pip install 32 | 30 pip 33 | 31 apt install python3-pip 34 | 32 pip 35 | 33 python --version 36 | 34 python3 --version 37 | 35 docker build -t flask-app . 38 | 36 pip install -r requirements.txt 39 | 37 ls 40 | 38 vim requirements.txt 41 | 39 cat requirements.txt 42 | 40 clear 43 | 41 docker build -t flask-app . 44 | 42 docker run -d -p 5000:5000 flask-app 45 | 43 docker tag flask-app bhavin1998/flask-app 46 | 44 docker push bhavin1998/flask-app 47 | 45 docker login 48 | 46 docker push bhavin1998/flask-app 49 | 47 history 50 | -------------------------------------------------------------------------------- /2024/day17/image/1_Create_a_new_directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/1_Create_a_new_directory.png -------------------------------------------------------------------------------- /2024/day17/image/2_app_py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/2_app_py.png -------------------------------------------------------------------------------- /2024/day17/image/3_Create_a_requirements_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/3_Create_a_requirements_file.png -------------------------------------------------------------------------------- /2024/day17/image/4_Create_a_Dockerfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/4_Create_a_Dockerfile.png -------------------------------------------------------------------------------- /2024/day17/image/5_build_the_docker_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/5_build_the_docker_image.png -------------------------------------------------------------------------------- /2024/day17/image/6_Run_the_Container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/6_Run_the_Container.png -------------------------------------------------------------------------------- /2024/day17/image/7_Verify_the_Application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/7_Verify_the_Application.png -------------------------------------------------------------------------------- /2024/day17/image/8_Tag_the_Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/8_Tag_the_Image.png -------------------------------------------------------------------------------- /2024/day17/image/9_Push_the_Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day17/image/9_Push_the_Image.png -------------------------------------------------------------------------------- /2024/day18/image/10_Remove_the_container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/10_Remove_the_container.png -------------------------------------------------------------------------------- /2024/day18/image/1_docker_compose_yml_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/1_docker_compose_yml_file.png -------------------------------------------------------------------------------- /2024/day18/image/2_Pull_the_Docker_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/2_Pull_the_Docker_image.png -------------------------------------------------------------------------------- /2024/day18/image/3_Add_the_current_user_to_the_Docker_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/3_Add_the_current_user_to_the_Docker_group.png -------------------------------------------------------------------------------- /2024/day18/image/4_Reboot_the_machine_to_apply_the_changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/4_Reboot_the_machine_to_apply_the_changes.png -------------------------------------------------------------------------------- /2024/day18/image/5_Run_the_Docker_container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/5_Run_the_Docker_container.png -------------------------------------------------------------------------------- /2024/day18/image/6_Inspect_the_container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/6_Inspect_the_container.png -------------------------------------------------------------------------------- /2024/day18/image/7_View_the_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/7_View_the_logs.png -------------------------------------------------------------------------------- /2024/day18/image/8_Stop_the_container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/8_Stop_the_container.png -------------------------------------------------------------------------------- /2024/day18/image/9_Start_the_container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day18/image/9_Start_the_container.png -------------------------------------------------------------------------------- /2024/day18/image/task1.png: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (113).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (113).png -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (114).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (114).png -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (116).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (116).png -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (117).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (117).png -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (118).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (118).png -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (119).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (119).png -------------------------------------------------------------------------------- /2024/day19/images/Screenshot (120).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day19/images/Screenshot (120).png -------------------------------------------------------------------------------- /2024/day20/Docker_cheat_sheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LondheShubham153/90DaysOfDevOps/4c3f0ea28e3e5290c5240a7aaac68705e51b48c3/2024/day20/Docker_cheat_sheet.pdf -------------------------------------------------------------------------------- /2024/day20/README.md: -------------------------------------------------------------------------------- 1 | # Day 20 Task: Docker for DevOps Engineers 2 | 3 | ## Finally!! 🎉 4 | 5 | You have completed ✅ the Docker hands-on sessions, and I hope you have learned something valuable from it. 🙌 6 | 7 | Now it's time to take your Docker skills to the next level by creating a comprehensive cheat-sheet of all the commands you've learned so far. This cheat-sheet should include commands for both Docker and Docker Compose, along with brief explanations of their usage. Not only will this cheat-sheet help you in the future, but it will also serve as a valuable resource for the DevOps community. 😊🙌 8 | 9 | So, put your knowledge and creativity to the test and create a cheat-sheet that truly stands out! 🚀 10 | 11 | For reference, I have added a [cheatsheet](https://cdn.hashnode.com/res/hashnode/image/upload/v1670863735841/r6xdXpsap.png?auto=compress,format&format=webp). Make sure your cheat-sheet is UNIQUE. 12 | 13 | Post it on LinkedIn and share your knowledge with the community. 😃 14 | 15 | **Happy Learning :)** 16 | 17 | [← Previous Day](../day19/README.md) | [Next Day →](../day21/README.md) 18 | -------------------------------------------------------------------------------- /2024/day21/README.md: -------------------------------------------------------------------------------- 1 | # Day 21 Task: Important Docker Interview Questions 2 | 3 | ## Docker Interview 4 | 5 | Docker is a crucial topic for DevOps Engineer interviews, especially for freshers. Here are some essential questions to help you prepare and ace your Docker interviews: 6 | 7 | ## Questions 8 | 9 | - What is the difference between an Image, Container, and Engine? 10 | - What is the difference between the Docker command COPY vs ADD? 11 | - What is the difference between the Docker command CMD vs RUN? 12 | - How will you reduce the size of a Docker image? 13 | - Why and when should you use Docker? 14 | - Explain the Docker components and how they interact with each other. 15 | - Explain the terminology: Docker Compose, Dockerfile, Docker Image, Docker Container. 16 | - In what real scenarios have you used Docker? 17 | - Docker vs Hypervisor? 18 | - What are the advantages and disadvantages of using Docker? 19 | - What is a Docker namespace? 20 | - What is a Docker registry? 21 | - What is an entry point? 22 | - How to implement CI/CD in Docker? 23 | - Will data on the container be lost when the Docker container exits? 24 | - What is a Docker swarm? 25 | - What are the Docker commands for the following: 26 | - Viewing running containers 27 | - Running a container under a specific name 28 | - Exporting a Docker image 29 | - Importing an existing Docker image 30 | - Deleting a container 31 | - Removing all stopped containers, unused networks, build caches, and dangling images? 32 | - What are the common Docker practices to reduce the size of Docker images? 33 | - How do you troubleshoot a Docker container that is not starting? 34 | - Can you explain the Docker networking model? 35 | - How do you manage persistent storage in Docker? 36 | - How do you secure a Docker container? 37 | - What is Docker overlay networking? 38 | - How do you handle environment variables in Docker? 39 | 40 | These questions will help you in your next DevOps interview. Write a blog and share it on LinkedIn to showcase your knowledge. 41 | 42 | **Happy Learning :)** 43 | 44 | [← Previous Day](../day20/README.md) | [Next Day →](../day22/README.md) 45 | -------------------------------------------------------------------------------- /2024/day24/README.md: -------------------------------------------------------------------------------- 1 | # Day 24 Task: Complete Jenkins CI/CD Project 2 | 3 | Let's create a comprehensive CI/CD pipeline for your Node.js application! 😍 4 | 5 | ## Did you finish Day 23? 6 | 7 | - Day 23 focused on Jenkins CI/CD, ensuring you understood the basics. Today, you'll take it a step further by completing a full project from start to finish, which you can proudly add to your resume. 8 | - As you've already worked with Docker and Docker Compose, you'll be integrating these tools into a live project. 9 | 10 | ## Task 1 11 | 12 | 1. Fork [this repository](https://github.com/LondheShubham153/node-todo-cicd.git). 13 | 2. Set up a connection between your Jenkins job and your GitHub repository through GitHub Integration. 14 | 3. Learn about [GitHub WebHooks](https://betterprogramming.pub/how-too-add-github-webhook-to-a-jenkins-pipeline-62b0be84e006) and ensure you have the CI/CD setup configured. 15 | 4. Refer to [this video](https://youtu.be/nplH3BzKHPk) for a step-by-step guide on the entire project. 16 | 17 | ## Task 2 18 | 19 | 1. In the "Execute Shell" section of your Jenkins job, run the application using Docker Compose. 20 | 2. Create a Docker Compose file for this project (a valuable open-source contribution). 21 | 3. Run the project and celebrate your accomplishment! 🎉 22 | 23 | For a detailed walkthrough and hands-on experience with the project, visit [this video](https://youtu.be/nplH3BzKHPk). 24 | 25 | You can post on LinkedIn and share your experiences and learnings from this task using the #90DaysOfDevOps Challenge. 26 | 27 | **Happy Learning :)** 28 | 29 | [← Previous Day](../day23/README.md) | [Next Day →](../day25/README.md) 30 | -------------------------------------------------------------------------------- /2024/day25/README.md: -------------------------------------------------------------------------------- 1 | # Day 25 Task: Complete Jenkins CI/CD Project - Continued with Documentation 2 | 3 | You've been making amazing progress, so let's take a moment to catch up and refine our work. Today's focus is on completing the Jenkins CI/CD project from Day 24 and creating thorough documentation for it. 4 | 5 | ## Did you finish Day 24? 6 | 7 | - Day 24 provided an end-to-end project experience, and adding this to your resume will be a significant achievement. 8 | 9 | - Take your time to finish the project, create comprehensive documentation, and make sure to highlight it in your resume and share your experience. 10 | 11 | ## Task 1 12 | 13 | - Document the entire process from cloning the repository to adding webhooks, deployment, and more. Create a detailed README file for your project. You can refer to [this example](https://github.com/LondheShubham153/fynd-my-movie/blob/master/README.md) for inspiration. 14 | 15 | - A well-written README file will not only help others understand your project but also make it easier for you to revisit and use the project in the future. 16 | 17 | ## Task 2 18 | 19 | - As it's a lighter day, set a small goal for yourself. Consider something you've been meaning to accomplish and use this time to focus on it. 20 | 21 | - Share your goal and how you plan to achieve it using [this template](https://www.linkedin.com/posts/shubhamlondhe1996_taking-resolutions-and-having-goals-for-an-activity-7023858409762373632-s2J8?utm_source=share&utm_medium=member_desktop). 22 | 23 | - Having small, achievable goals and strategies for reaching them is essential. Don't forget to reward yourself for your efforts! 24 | 25 | For a detailed walkthrough and project guidance, visit [this video](https://youtu.be/nplH3BzKHPk). 26 | 27 | You can post on LinkedIn and let us know what you have learned from this task using the #90DaysOfDevOps Challenge. 28 | 29 | **Happy Learning :)** 30 | 31 | [← Previous Day](../day24/README.md) | [Next Day →](../day26/README.md) 32 | -------------------------------------------------------------------------------- /2024/day27/README.md: -------------------------------------------------------------------------------- 1 | # Day 27 Task: Jenkins Declarative Pipeline with Docker 2 | 3 | Day 26 was all about a Declarative pipeline, now its time to level up things, let's integrate Docker and your Jenkins declarative pipeline 4 | 5 | ## Use your Docker Build and Run Knowledge 6 | 7 | **docker build -** you can use `sh 'docker build . -t ' ` in your pipeline stage block to run the docker build command. (Make sure you have docker installed with correct permissions. 8 | 9 | **docker run:** you can use `sh 'docker run -d '` in your pipeline stage block to build the container. 10 | 11 | **How will the stages look** 12 | 13 | ```groovy 14 | stages { 15 | stage('Build') { 16 | steps { 17 | sh 'docker build -t trainwithshubham/django-app:latest' 18 | } 19 | } 20 | } 21 | ``` 22 | 23 | # Task-01 24 | 25 | - Create a docker-integrated Jenkins declarative pipeline 26 | - Use the above-given syntax using `sh` inside the stage block 27 | - You will face errors in case of running a job twice, as the docker container will be already created, so for that do task 2 28 | 29 | # Task-02 30 | 31 | - Create a docker-integrated Jenkins declarative pipeline using the `docker` groovy syntax inside the stage block. 32 | - You won't face errors, you can Follow [this documentation](https://tempora-mutantur.github.io/jenkins.io/github_pages_test/doc/book/pipeline/docker/) 33 | 34 | - Complete your previous projects using this Declarative pipeline approach 35 | 36 | - In case of any issues feel free to post on any Groups, [Discord](https://discord.gg/Q6ntmMtH) or [Telegram](https://t.me/trainwithshubham) 37 | 38 | Are you enjoying the #90DaysOfDevOps Challenge? 39 | Let me know how are feeling after 4 weeks of DevOps Learnings, 40 | 41 | Happy Learning:) 42 | 43 | [← Previous Day](../day26/README.md) | [Next Day →](../day28/README.md) 44 | -------------------------------------------------------------------------------- /2024/day30/README.md: -------------------------------------------------------------------------------- 1 | ## Day 30 Task: Kubernetes Architecture 2 | 3 |

4 | 5 | ## Kubernetes Overview 6 | 7 | With the widespread adoption of [containers](https://cloud.google.com/containers) among organizations, Kubernetes, the container-centric management software, has become a standard to deploy and operate containerized applications and is one of the most important parts of DevOps. 8 | 9 | Originally developed at Google and released as open-source in 2014. Kubernetes builds on 15 years of running Google's containerized workloads and the valuable contributions from the open-source community. Inspired by Google’s internal cluster management system, [Borg](https://research.google.com/pubs/pub43438.html), 10 | 11 | ## Tasks 12 | 13 | 1. What is Kubernetes? Write in your own words and why do we call it k8s? 14 | 15 | 2. What are the benefits of using k8s? 16 | 17 | 3. Explain the architecture of Kubernetes, refer to [this video](https://youtu.be/FqfoDUhzyDo) 18 | 19 | 4. What is Control Plane? 20 | 21 | 5. Write the difference between kubectl and kubelets. 22 | 23 | 6. Explain the role of the API server. 24 | 25 | Kubernetes architecture is important, so make sure you spend a day understanding it. [This video](https://youtu.be/FqfoDUhzyDo) will surely help you. 26 | 27 | _Happy Learning :)_ 28 | 29 | [← Previous Day](../day29/README.md) | [Next Day →](../day31/README.md) 30 | -------------------------------------------------------------------------------- /2024/day31/pod.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: nginx 5 | spec: 6 | containers: 7 | - name: nginx 8 | image: nginx:1.14.2 9 | ports: 10 | - containerPort: 80 11 | 12 | 13 | # After creating this file , run below command: 14 | # kubectl apply -f 15 | -------------------------------------------------------------------------------- /2024/day32/Deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: todo-app 5 | labels: 6 | app: todo 7 | spec: 8 | replicas: 2 9 | selector: 10 | matchLabels: 11 | app: todo 12 | template: 13 | metadata: 14 | labels: 15 | app: todo 16 | spec: 17 | containers: 18 | - name: todo 19 | image: rishikeshops/todo-app 20 | ports: 21 | - containerPort: 3000 22 | -------------------------------------------------------------------------------- /2024/day32/README.md: -------------------------------------------------------------------------------- 1 | ## Day 32 Task: Launching your Kubernetes Cluster with Deployment 2 | 3 | ### Congratulation ! on your learning on K8s on Day-31 4 | 5 | ## What is Deployment in k8s 6 | 7 | A Deployment provides a configuration for updates for Pods and ReplicaSets. 8 | 9 | You describe a desired state in a Deployment, and the Deployment Controller changes the actual state to the desired state at a controlled rate. You can define Deployments to create new replicas for scaling, or to remove existing Deployments and adopt all their resources with new Deployments. 10 | 11 | ## Today's task let's keep it very simple. 12 | 13 | ## Task-1: 14 | 15 | **Create one Deployment file to deploy a sample todo-app on K8s using "Auto-healing" and "Auto-Scaling" feature** 16 | 17 | - add a deployment.yml file (sample is kept in the folder for your reference) 18 | - apply the deployment to your k8s (minikube) cluster by command 19 | `kubectl apply -f deployment.yml` 20 | 21 | Let's make your resume shine with one more project ;) 22 | 23 | **Having an issue? Don't worry, adding a sample deployment file , you can always refer that or wathch [this video](https://youtu.be/ONrbWFJXLLk)** 24 | 25 | Happy Learning :) 26 | 27 | [← Previous Day](../day31/README.md) | [Next Day →](../day33/README.md) 28 | -------------------------------------------------------------------------------- /2024/day33/README.md: -------------------------------------------------------------------------------- 1 | # Day 33 Task: Working with Namespaces and Services in Kubernetes 2 | 3 | ### Congrats🎊🎉 on updating your Deployment yesterday💥🙌 4 | 5 | ## What are Namespaces and Services in k8s 6 | 7 | In Kubernetes, Namespaces are used to create isolated environments for resources. Each Namespace is like a separate cluster within the same physical cluster. Services are used to expose your Pods and Deployments to the network. Read more about Namespace [Here](https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/) 8 | 9 | # Today's task: 10 | 11 | ## Task 1: 12 | 13 | - Create a Namespace for your Deployment 14 | 15 | - Use the command `kubectl create namespace ` to create a Namespace 16 | 17 | - Update the deployment.yml file to include the Namespace 18 | 19 | - Apply the updated deployment using the command: 20 | `kubectl apply -f deployment.yml -n ` 21 | 22 | - Verify that the Namespace has been created by checking the status of the Namespaces in your cluster. 23 | 24 | ## Task 2: 25 | 26 | - Read about Services, Load Balancing, and Networking in Kubernetes. Refer official documentation of kubernetes [Link](https://kubernetes.io/docs/concepts/services-networking/) 27 | 28 | Need help with Namespaces? Check out this [video](https://youtu.be/K3jNo4z5Jx8) for assistance. 29 | 30 | Keep growing your Kubernetes knowledge💥🙌 31 | 32 | Happy Learning! :) 33 | 34 | [← Previous Day](../day32/README.md) | [Next Day →](../day34/README.md) 35 | -------------------------------------------------------------------------------- /2024/day36/Deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: todo-app-deployment 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | app: todo-app 10 | template: 11 | metadata: 12 | labels: 13 | app: todo-app 14 | spec: 15 | containers: 16 | - name: todo-app 17 | image: rishikeshops/todo-app 18 | ports: 19 | - containerPort: 8000 20 | volumeMounts: 21 | - name: todo-app-data 22 | mountPath: /app 23 | volumes: 24 | - name: todo-app-data 25 | persistentVolumeClaim: 26 | claimName: pvc-todo-app 27 | -------------------------------------------------------------------------------- /2024/day36/pv.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: pv-todo-app 5 | spec: 6 | capacity: 7 | storage: 1Gi 8 | accessModes: 9 | - ReadWriteOnce 10 | persistentVolumeReclaimPolicy: Retain 11 | hostPath: 12 | path: "/tmp/data" 13 | -------------------------------------------------------------------------------- /2024/day36/pvc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: pvc-todo-app 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | resources: 9 | requests: 10 | storage: 500Mi 11 | -------------------------------------------------------------------------------- /2024/day37/README.md: -------------------------------------------------------------------------------- 1 | ## Day 37 Task: Kubernetes Important interview Questions. 2 | 3 | ## Questions 4 | 5 | 1.What is Kubernetes and why it is important? 6 | 7 | 2.What is difference between docker swarm and kubernetes? 8 | 9 | 3.How does Kubernetes handle network communication between containers? 10 | 11 | 4.How does Kubernetes handle scaling of applications? 12 | 13 | 5.What is a Kubernetes Deployment and how does it differ from a ReplicaSet? 14 | 15 | 6.Can you explain the concept of rolling updates in Kubernetes? 16 | 17 | 7.How does Kubernetes handle network security and access control? 18 | 19 | 8.Can you give an example of how Kubernetes can be used to deploy a highly available application? 20 | 21 | 9.What is namespace is kubernetes? Which namespace any pod takes if we don't specify any namespace? 22 | 23 | 10.How ingress helps in kubernetes? 24 | 25 | 11.Explain different types of services in kubernetes? 26 | 27 | 12.Can you explain the concept of self-healing in Kubernetes and give examples of how it works? 28 | 29 | 13.How does Kubernetes handle storage management for containers? 30 | 31 | 14.How does the NodePort service work? 32 | 33 | 15.What is a multinode cluster and single-node cluster in Kubernetes? 34 | 35 | 16.Difference between create and apply in kubernetes? 36 | 37 | ## These questions will help you in your next DevOps Interview. 38 | 39 | _Write a Blog and share it on LinkedIn._ 40 | 41 | **_Happy Learning :)_** 42 | 43 | [← Previous Day](../day36/README.md) | [Next Day →](../day38/README.md) 44 | -------------------------------------------------------------------------------- /2024/day38/README.md: -------------------------------------------------------------------------------- 1 | # Day 38 Getting Started with AWS Basics☁ 2 | 3 | ![AWS](https://user-images.githubusercontent.com/115981550/217238286-6c6bc6e7-a1ac-4d12-98f3-f95ff5bf53fc.png) 4 | 5 | Congratulations!!!! you have come so far. Don't let your excuses break your consistency. Let's begin our new Journey with Cloud☁. By this time you have created multiple EC2 instances, if not let's begin the journey: 6 | 7 | ## AWS: 8 | 9 | Amazon Web Services is one of the most popular Cloud Provider that has free tier too for students and Cloud enthutiasts for their Handson while learning (Create your free account today to explore more on it). 10 | 11 | Read from [here](https://aws.amazon.com/what-is-aws/) 12 | 13 | ## IAM: 14 | 15 | AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. With IAM, you can centrally manage permissions that control which AWS resources users can access. You use IAM to control who is authenticated (signed in) and authorized (has permissions) to use resources. 16 | Read from [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 17 | 18 | Get to know IAM more deeply [Click Here!!](https://www.youtube.com/watch?v=ORB4eY8EydA) 19 | 20 | ### Task1: 21 | 22 | Create an IAM user with username of your own wish and grant EC2 Access. Launch your Linux instance through the IAM user that you created now and install jenkins and docker on your machine via single Shell Script. 23 | 24 | ### Task2: 25 | 26 | In this task you need to prepare a devops team of avengers. Create 3 IAM users of avengers and assign them in devops groups with IAM policy. 27 | 28 | Post your progress on Linkedin. Till then Happy Learning :) 29 | 30 | [← Previous Day](../day37/README.md) | [Next Day →](../day39/README.md) 31 | -------------------------------------------------------------------------------- /2024/day42/README.md: -------------------------------------------------------------------------------- 1 | # Day 42: IAM Programmatic access and AWS CLI 🚀 ☁ 2 | 3 | Today is more of a reading excercise and getting some programmatic access for your AWS account 4 | 5 | ## IAM Programmatic access 6 | 7 | In order to access your AWS account from a terminal or system, you can use AWS Access keys and AWS Secret Access keys 8 | Watch [this video](https://youtu.be/XYKqL5GFI-I) for more details. 9 | 10 | ## AWS CLI 11 | 12 | The AWS Command Line Interface (AWS CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts. 13 | 14 | The AWS CLI v2 offers several new features including improved installers, new configuration options such as AWS IAM Identity Center (successor to AWS SSO), and various interactive features. 15 | 16 | ## Task-01 17 | 18 | - Create AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from AWS Console. 19 | 20 | ## Task-02 21 | 22 | - Setup and install AWS CLI and configure your account credentials 23 | 24 | Let me know if you have any issues while doing the task. 25 | 26 | Happy Learning :) 27 | 28 | [← Previous Day](../day41/README.md) | [Next Day →](../day43/README.md) 29 | -------------------------------------------------------------------------------- /2024/day43/README.md: -------------------------------------------------------------------------------- 1 | # Day 43: S3 Programmatic access with AWS-CLI 💻 📁 2 | 3 | Hi, I hope you had a great day yesterday. Today as part of the #90DaysofDevOps Challenge we will be exploring most commonly used service in AWS i.e S3. 4 | 5 | ![s3](https://user-images.githubusercontent.com/115981550/218308379-a2e841cf-6b77-4d02-bfbe-20d1bae09b20.png) 6 | 7 | # S3 8 | 9 | Amazon Simple Storage Service (Amazon S3) is an object storage service that provides a secure and scalable way to store and access data on the cloud. It is designed for storing any kind of data, such as text files, images, videos, backups, and more. 10 | Read more [here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 11 | 12 | ## Task-01 13 | 14 | - Launch an EC2 instance using the AWS Management Console and connect to it using Secure Shell (SSH). 15 | - Create an S3 bucket and upload a file to it using the AWS Management Console. 16 | - Access the file from the EC2 instance using the AWS Command Line Interface (AWS CLI). 17 | 18 | Read more about S3 using aws-cli [here](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) 19 | 20 | ## Task-02 21 | 22 | - Create a snapshot of the EC2 instance and use it to launch a new EC2 instance. 23 | - Download a file from the S3 bucket using the AWS CLI. 24 | - Verify that the contents of the file are the same on both EC2 instances. 25 | 26 | Added Some Useful commands to complete the task. [Click here for commands](https://github.com/LondheShubham153/90DaysOfDevOps/blob/833a67ac4ec17b992934cd6878875dccc4274f56/2023/day43/aws-cli.md) 27 | 28 | Let me know if you have any questions or face any issues while doing the tasks.🚀 29 | 30 | Happy Learning :) 31 | 32 | [← Previous Day](../day42/README.md) | [Next Day →](../day44/README.md) 33 | -------------------------------------------------------------------------------- /2024/day43/aws-cli.md: -------------------------------------------------------------------------------- 1 | Here are some commonly used AWS CLI commands for Amazon S3: 2 | 3 | `aws s3 ls` - This command lists all of the S3 buckets in your AWS account. 4 | 5 | `aws s3 mb s3://bucket-name` - This command creates a new S3 bucket with the specified name. 6 | 7 | `aws s3 rb s3://bucket-name` - This command deletes the specified S3 bucket. 8 | 9 | `aws s3 cp file.txt s3://bucket-name` - This command uploads a file to an S3 bucket. 10 | 11 | `aws s3 cp s3://bucket-name/file.txt .` - This command downloads a file from an S3 bucket to your local file system. 12 | 13 | `aws s3 sync local-folder s3://bucket-name` - This command syncs the contents of a local folder with an S3 bucket. 14 | 15 | `aws s3 ls s3://bucket-name` - This command lists the objects in an S3 bucket. 16 | 17 | `aws s3 rm s3://bucket-name/file.txt` - This command deletes an object from an S3 bucket. 18 | 19 | `aws s3 presign s3://bucket-name/file.txt` - This command generates a pre-signed URL for an S3 object, which can be used to grant temporary access to the object. 20 | 21 | `aws s3api list-buckets` - This command retrieves a list of all S3 buckets in your AWS account, using the S3 API. 22 | -------------------------------------------------------------------------------- /2024/day44/README.md: -------------------------------------------------------------------------------- 1 | # Day 44: Relational Database Service in AWS 2 | 3 | Amazon Relational Database Service (Amazon RDS) is a collection of managed services that makes it simple to set up, operate, and scale databases in the cloud 4 | 5 | ## Task-01 6 | 7 | - Create a Free tier RDS instance of MySQL 8 | - Create an EC2 instance 9 | - Create an IAM role with RDS access 10 | - Assign the role to EC2 so that your EC2 Instance can connect with RDS 11 | - Once the RDS instance is up and running, get the credentials and connect your EC2 instance using a MySQL client. 12 | 13 | Hint: 14 | 15 | You should install mysql client on EC2, and connect the Host and Port of RDS with this client. 16 | 17 | Post the screenshots once your EC2 instance can connect a MySQL server, that will be a small win for you. 18 | 19 | Watch [this video](https://youtu.be/MrA6Rk1Y82E) for reference. 20 | 21 | Happy Learning 22 | 23 | [← Previous Day](../day43/README.md) | [Next Day →](../day45/README.md) 24 | -------------------------------------------------------------------------------- /2024/day45/README.md: -------------------------------------------------------------------------------- 1 | # Day 45: Deploy Wordpress website on AWS 2 | 3 | Over 30% of all websites on the internet use WordPress as their content management system (CMS). It is most often used to run blogs, but it can also be used to run e-commerce sites, message boards, and many other popular things. This guide will show you how to set up a WordPress blog site. 4 | 5 | ## Task-01 6 | 7 | - As WordPress requires a MySQL database to store its data ,create an RDS as you did in Day 44 8 | 9 | To configure this WordPress site, you will create the following resources in AWS: 10 | 11 | - An Amazon EC2 instance to install and host the WordPress application. 12 | - An Amazon RDS for MySQL database to store your WordPress data. 13 | - Setup the server and post your new Wordpress app. 14 | 15 | Read [this](https://aws.amazon.com/getting-started/hands-on/deploy-wordpress-with-amazon-rds/) for a detailed explanation 16 | Happy Learning :) 17 | 18 | [← Previous Day](../day44/README.md) | [Next Day →](../day46/README.md) 19 | -------------------------------------------------------------------------------- /2024/day46/README.md: -------------------------------------------------------------------------------- 1 | # Day-46: Set up CloudWatch alarms and SNS topic in AWS 2 | 3 | Hey learners, you have been using aws services atleast for last 45 days. Have you ever wondered what happen if for any service is charging you bill continously and you don't know till you loose all your pocket money ? 4 | 5 | Hahahaha😁, Well! we, as a responsible community ,always try to make it under free tier , but it's good to know and setup something , which will inform you whenever bill touches a Threshold. 6 | 7 | ## What is Amazon CloudWatch? 8 | 9 | Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real time. You can use CloudWatch to collect and track metrics, which are variables you can measure for your resources and applications. 10 | 11 | Read more about cloudwatch from the official documentation [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 12 | 13 | ## What is Amazon SNS? 14 | 15 | Amazon Simple Notification Service is a notification service provided as part of Amazon Web Services since 2010. It provides a low-cost infrastructure for mass delivery of messages, predominantly to mobile users. 16 | 17 | Read more about it [here](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 18 | 19 | ## Task : 20 | 21 | - Create a CloudWatch alarm that monitors your billing and send an email to you when a it reaches $2. 22 | 23 | (You can keep it for your future use) 24 | 25 | - Delete your billing Alarm that you created now. 26 | 27 | (Now you also know how to delete as well. ) 28 | 29 | Need help with Cloudwatch? Check out this [official documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) for assistance. 30 | 31 | Keep growing your AWS knowledge💥🙌 32 | 33 | Happy Learning! :) 34 | 35 | [← Previous Day](../day45/README.md) | [Next Day →](../day47/README.md) 36 | -------------------------------------------------------------------------------- /2024/day49/README.md: -------------------------------------------------------------------------------- 1 | # Day 49 - INTERVIEW QUESTIONS ON AWS 2 | 3 | Hey people, we have listened to your suggestions and we are looking forward to get more! 4 | As you people have asked to put more interview based questions as part of Daily Task, So here it it :) 5 | 6 | ## INTERVIEW QUESTIONS: 7 | 8 | - Name 5 aws services you have used and what's the use cases? 9 | - What are the tools used to send logs to the cloud environment? 10 | - What are IAM Roles? How do you create /manage them? 11 | - How to upgrade or downgrade a system with zero downtime? 12 | - What is infrastructure as code and how do you use it? 13 | - What is a load balancer? Give scenarios of each kind of balancer based on your experience. 14 | - What is CloudFormation and why is it used for? 15 | - Difference between AWS CloudFormation and AWS Elastic Beanstalk? 16 | - What are the kinds of security attacks that can occur on the cloud? And how can we minimize them? 17 | - Can we recover the EC2 instance when we have lost the key? 18 | - What is a gateway? 19 | - What is the difference between the Amazon Rds, Dynamodb, and Redshift? 20 | - Do you prefer to host a website on S3? What's the reason if your answer is either yes or no? 21 | 22 | Let's share your answer on LinkedIn in best possible way thinking you are in a interview table. 23 | Happy Learning !! :) 24 | 25 | [← Previous Day](../day48/README.md) | [Next Day →](../day50/README.md) 26 | -------------------------------------------------------------------------------- /2024/day50/README.md: -------------------------------------------------------------------------------- 1 | # Day 50: Your CI/CD pipeline on AWS - Part-1 🚀 ☁ 2 | 3 | What if I tell you, in next 4 days, you'll be making a CI/CD pipeline on AWS with these tools. 4 | 5 | - CodeCommit 6 | - CodeBuild 7 | - CodeDeploy 8 | - CodePipeline 9 | - S3 10 | 11 | ## What is CodeCommit ? 12 | 13 | - CodeCommit is a managed source control service by AWS that allows users to store, manage, and version their source code and artifacts securely and at scale. It supports Git, integrates with other AWS services, enables collaboration through branch and merge workflows, and provides audit logs and compliance reports to meet regulatory requirements and track changes. Overall, CodeCommit provides developers with a reliable and efficient way to manage their codebase and set up a CI/CD pipeline for their software development projects. 14 | 15 | # Task-01 : 16 | 17 | - Set up a code repository on CodeCommit and clone it on your local. 18 | - You need to setup GitCredentials in your AWS IAM. 19 | - Use those credentials in your local and then clone the repository from CodeCommit 20 | 21 | # Task-02 : 22 | 23 | - Add a new file from local and commit to your local branch 24 | - Push the local changes to CodeCommit repository. 25 | 26 | For more details watch [this](https://youtu.be/p5i3cMCQ760) video. 27 | 28 | Happy Learning :) 29 | 30 | [← Previous Day](../day49/README.md) | [Next Day →](../day51/README.md) 31 | -------------------------------------------------------------------------------- /2024/day51/README.md: -------------------------------------------------------------------------------- 1 | # Day 51: Your CI/CD pipeline on AWS - Part 2 🚀 ☁ 2 | 3 | On your journey of making a CI/CD pipeline on AWS with these tools, you completed AWS CodeCommit. 4 | 5 | Next few days you'll learn these tools/services: 6 | 7 | - CodeBuild 8 | - CodeDeploy 9 | - CodePipeline 10 | - S3 11 | 12 | ## What is CodeBuild ? 13 | 14 | - AWS CodeBuild is a fully managed build service in the cloud. CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. CodeBuild eliminates the need to provision, manage, and scale your own build servers. 15 | 16 | # Task-01 : 17 | 18 | - Read about Buildspec file for Codebuild. 19 | - create a simple index.html file in CodeCommit Repository 20 | - you have to build the index.html using nginx server 21 | 22 | # Task-02 : 23 | 24 | - Add buildspec.yaml file to CodeCommit Repository and complete the build process. 25 | 26 | For more details watch [this](https://youtu.be/p5i3cMCQ760) video. 27 | 28 | Happy Learning :) 29 | 30 | [← Previous Day](../day50/README.md) | [Next Day →](../day52/README.md) 31 | -------------------------------------------------------------------------------- /2024/day52/README.md: -------------------------------------------------------------------------------- 1 | # Day 52: Your CI/CD pipeline on AWS - Part 3 🚀 ☁ 2 | 3 | On your journey of making a CI/CD pipeline on AWS with these tools, you completed AWS CodeCommit & CodeBuild. 4 | 5 | Next few days you'll learn these tools/services: 6 | 7 | - CodeDeploy 8 | - CodePipeline 9 | - S3 10 | 11 | ## What is CodeDeploy ? 12 | 13 | - AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances, serverless Lambda functions, or Amazon ECS services. 14 | 15 | CodeDeploy can deploy application content that runs on a server and is stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. CodeDeploy can also deploy a serverless Lambda function. You do not need to make changes to your existing code before you can use CodeDeploy. 16 | 17 | # Task-01 : 18 | 19 | - Read about Appspec.yaml file for CodeDeploy. 20 | - Deploy index.html file on EC2 machine using nginx 21 | - you have to setup a CodeDeploy agent in order to deploy code on EC2 22 | 23 | # Task-02 : 24 | 25 | - Add appspec.yaml file to CodeCommit Repository and complete the deployment process. 26 | 27 | For more details watch [this](https://youtu.be/IUF-pfbYGvg) video. 28 | 29 | Happy Learning :) 30 | 31 | [← Previous Day](../day51/README.md) | [Next Day →](../day53/README.md) 32 | -------------------------------------------------------------------------------- /2024/day53/README.md: -------------------------------------------------------------------------------- 1 | # Day 53: Your CI/CD pipeline on AWS - Part 4 🚀 ☁ 2 | 3 | On your journey of making a CI/CD pipeline on AWS with these tools, you completed AWS CodeCommit, CodeBuild & CodeDeploy. 4 | 5 | Finish Off in style with AWS CodePipeline 6 | 7 | ## What is CodePipeline ? 8 | 9 | - CodePipeline builds, tests, and deploys your code every time there is a code change, based on the release process models you define. 10 | Think of it as a CI/CD Pipeline service 11 | 12 | # Task-01 : 13 | 14 | - Create a Deployment group of Ec2 Instance. 15 | - Create a CodePipeline that gets the code from CodeCommit, Builds the code using CodeBuild and deploys it to a Deployment Group. 16 | 17 | For more details watch [this](https://youtu.be/IUF-pfbYGvg) video. 18 | 19 | Happy Learning :) 20 | 21 | [← Previous Day](../day52/README.md) | [Next Day →](../day54/README.md) 22 | -------------------------------------------------------------------------------- /2024/day54/README.md: -------------------------------------------------------------------------------- 1 | # Day 54: Understanding Infrastructure as Code and Configuration Management 2 | 3 | ## What's the difference bhaiyya? 4 | 5 | When it comes to the cloud, Infrastructure as Code (IaC) and Configuration Management (CM) are inseparable. With IaC, a descriptive model is used for infrastructure management. To name a few examples of infrastructure: networks, virtual computers, and load balancers. Using an IaC model always results in the same setting. 6 | 7 | Throughout the lifecycle of a product, Configuration Management (CM) ensures that the performance, functional and physical inputs, requirements, design, and operations of that product remain consistent. 8 | 9 | # Task-01 10 | 11 | - Read more about IaC and Config. Management Tools 12 | - Give differences on both with suitable examples 13 | - What are most commont IaC and Config management Tools? 14 | 15 | Write a blog on this topic in the most creative way and post it on linkedIn :) 16 | 17 | happy learning... 18 | 19 | [← Previous Day](../day53/README.md) | [Next Day →](../day55/README.md) 20 | -------------------------------------------------------------------------------- /2024/day55/README.md: -------------------------------------------------------------------------------- 1 | # Day 55: Understanding Configuration Management with Ansible 2 | 3 | ## What's this Ansible? 4 | 5 | Ansible is an open-source automation tool, or platform, used for IT tasks such as configuration management, application deployment, intraservice orchestration, and provisioning 6 | 7 | # Task-01 8 | 9 | - Installation of Ansible on AWS EC2 (Master Node) 10 | `sudo apt-add-repository ppa:ansible/ansible` `sudo apt update` 11 | `sudo apt install ansible` 12 | 13 | # Task-02 14 | 15 | - read more about Hosts file 16 | `sudo nano /etc/ansible/hosts ansible-inventory --list -y` 17 | 18 | # Task-03 19 | 20 | - Setup 2 more EC2 instances with same Private keys as the previous instance (Node) 21 | - Copy the private key to master server where Ansible is setup 22 | - Try a ping command using ansible to the Nodes. 23 | 24 | Write a blog on this topic with screenshots in the most creative way and post it on linkedIn :) 25 | 26 | happy learning... 27 | 28 | [← Previous Day](../day54/README.md) | [Next Day →](../day56/README.md) 29 | -------------------------------------------------------------------------------- /2024/day56/README.md: -------------------------------------------------------------------------------- 1 | # Day 56: Understanding Ad-hoc commands in Ansible 2 | 3 | Ansible ad hoc commands are one-liners designed to achieve a very specific task they are like quick snippets and your compact swiss army knife when you want to do a quick task across multiple machines. 4 | 5 | To put simply, Ansible ad hoc commands are one-liner Linux shell commands and playbooks are like a shell script, a collective of many commands with logic. 6 | 7 | Ansible ad hoc commands come handy when you want to perform a quick task. 8 | 9 | # Task-01 10 | 11 | - write an ansible ad hoc ping command to ping 3 servers from inventory file 12 | - Write an ansible ad hoc command to check uptime 13 | 14 | - You can refer to [this](https://www.middlewareinventory.com/blog/ansible-ad-hoc-commands/) blog to understand the different examples of ad-hoc commands and try out them, post the screenshots in a blog with an explanation. 15 | 16 | happy Learning :) 17 | 18 | [← Previous Day](../day55/README.md) | [Next Day →](../day57/README.md) 19 | -------------------------------------------------------------------------------- /2024/day57/README.md: -------------------------------------------------------------------------------- 1 | # Day 57: Ansible Hands-on with video 2 | 3 | Ansible is fun, you saw in last few days how easy it is. 4 | 5 | Let's make it fun now, by using a video explanation for Ansible. 6 | 7 | # Task-01 8 | 9 | - Write a Blog explanation for the [ansible video](https://youtu.be/SGB7EdiP39E) 10 | 11 | happy Learning :) 12 | 13 | [← Previous Day](../day56/README.md) | [Next Day →](../day58/README.md) 14 | -------------------------------------------------------------------------------- /2024/day58/README.md: -------------------------------------------------------------------------------- 1 | # Day 58: Ansible Playbooks 2 | 3 | Ansible playbooks run multiple tasks, assign roles, and define configurations, deployment steps, and variables. If you’re using multiple servers, Ansible playbooks organize the steps between the assembled machines or servers and get them organized and running in the way the users need them to. Consider playbooks as the equivalent of instruction manuals. 4 | 5 | # Task-01 6 | 7 | - Write an ansible playbook to create a file on a different server 8 | 9 | - Write an ansible playbook to create a new user. 10 | 11 | - Write an ansible playbook to install docker on a group of servers 12 | 13 | Watch [this](https://youtu.be/089mRKoJTzo) video to learn about ansible Playbooks 14 | 15 | # Task-02 16 | 17 | - Write a blog about writing ansible playbooks with the best practices. 18 | 19 | Let me or anyone in the community know if you face any challenges 20 | 21 | happy Learning :) 22 | 23 | [← Previous Day](../day57/README.md) | [Next Day →](../day59/README.md) 24 | -------------------------------------------------------------------------------- /2024/day59/README.md: -------------------------------------------------------------------------------- 1 | # Day 59: Ansible Project 🔥 2 | 3 | Ansible playbooks are amazing, as you learned yesterday. 4 | What if you deploy a simple web app using ansible, sounds like a good project, right? 5 | 6 | # Task-01 7 | 8 | - create 3 EC2 instances . make sure all three are created with same key pair 9 | 10 | - Install Ansible in host server 11 | 12 | - copy the private key from local to Host server (Ansible_host) at (/home/ubuntu/.ssh) 13 | 14 | - access the inventory file using sudo vim /etc/ansible/hosts 15 | 16 | - Create a playbook to install Nginx 17 | 18 | - deploy a sample webpage using the ansible playbook 19 | 20 | Read [this](https://medium.com/@sandeep010498/learn-ansible-with-real-time-project-cf6a0a512d45) Blog by [Sandeep Singh](https://medium.com/@sandeep010498) to clear all your doubts 21 | 22 | Let me or anyone in the community know if you face any challenges 23 | 24 | happy Learning :) 25 | 26 | [← Previous Day](../day58/README.md) | [Next Day →](../day60/README.md) 27 | -------------------------------------------------------------------------------- /2024/day60/README.md: -------------------------------------------------------------------------------- 1 | # Day 60 - Terraform🔥 2 | 3 | Hello Learners , you guys are doing every task by creating an ec2 instance (mostly). Today let’s automate this process . How to do it ? Well Terraform is the solution . 4 | 5 | ## What is Terraform? 6 | 7 | Terraform is an infrastructure as code (IaC) tool that allows you to create, manage, and update infrastructure 8 | resources such as virtual machines, networks, and storage in a repeatable, scalable, and automated way. 9 | 10 | ## Task 1: 11 | 12 | Install Terraform on your system 13 | Refer this [link](https://phoenixnap.com/kb/how-to-install-terraform) for installation 14 | 15 | ## Task 2: Answer below questions 16 | 17 | - Why we use terraform? 18 | - What is Infrastructure as Code (IaC)? 19 | - What is Resource? 20 | - What is Provider? 21 | - Whats is State file in terraform? What’s the importance of it ? 22 | - What is Desired and Current State? 23 | 24 | You can prepare for tomorrow's task from [here](https://www.youtube.com/live/965CaSveIEI?feature=share)🚀🚀 25 | 26 | We Hope this tasks will help you understand how to write a basic Terraform configuration file and basic commands on Terraform. 27 | 28 | Don’t forget to post in on LinkedIn. 29 | Happy Learning:) 30 | 31 | [← Previous Day](../day59/README.md) | [Next Day →](../day61/README.md) 32 | -------------------------------------------------------------------------------- /2024/day61/README.md: -------------------------------------------------------------------------------- 1 | # Day 61- Terraform🔥 2 | 3 | Hope you've already got the gist of What Working with Terraform would be like . Lets begin 4 | with day 2 of Terraform ! 5 | 6 | ## Task 1: 7 | 8 | find purpose of basic Terraform commands which you'll use often 9 | 10 | 1. `terraform init` 11 | 12 | 2. `terraform init -upgrade` 13 | 14 | 3. `terraform plan` 15 | 16 | 4. `terraform apply` 17 | 18 | 5. `terraform validate` 19 | 20 | 6. `terraform fmt` 21 | 22 | 7. `terraform destroy` 23 | 24 | Also along with these tasks its important to know about Terraform in general- 25 | Who are Terraform's main competitors? 26 | The main competitors are: 27 | 28 | Ansible 29 | Packer 30 | Cloud Foundry 31 | Kubernetes 32 | 33 | Want a Free video Course for terraform? Click [here](https://bit.ly/tws-terraform) 34 | 35 | Don't forget to share your learnings on Linkedin ! Happy Learning :) 36 | 37 | [← Previous Day](../day60/README.md) | [Next Day →](../day62/README.md) 38 | -------------------------------------------------------------------------------- /2024/day63/README.md: -------------------------------------------------------------------------------- 1 | # Day 63 - Terraform Variables 2 | 3 | variables in Terraform are quite important, as you need to hold values of names of instance, configs , etc. 4 | 5 | We can create a variables.tf file which will hold all the variables. 6 | 7 | ``` 8 | variable "filename" { 9 | default = "/home/ubuntu/terrform-tutorials/terraform-variables/demo-var.txt" 10 | } 11 | ``` 12 | 13 | ``` 14 | variable "content" { 15 | default = "This is coming from a variable which was updated" 16 | } 17 | ``` 18 | 19 | These variables can be accessed by var object in main.tf 20 | 21 | ## Task-01 22 | 23 | - Create a local file using Terraform 24 | Hint: 25 | 26 | ``` 27 | resource "local_file" "devops" { 28 | filename = var.filename 29 | content = var.content 30 | } 31 | ``` 32 | 33 | ## Data Types in Terraform 34 | 35 | ## Map 36 | 37 | ``` 38 | variable "file_contents" { 39 | type = map 40 | default = { 41 | "statement1" = "this is cool" 42 | "statement2" = "this is cooler" 43 | } 44 | } 45 | ``` 46 | 47 | ## Task-02 48 | 49 | - Use terraform to demonstrate usage of List, Set and Object datatypes 50 | - Put proper screenshots of the outputs 51 | 52 | Use `terraform refresh` 53 | 54 | To refresh the state by your configuration file, reloads the variables 55 | 56 | # Video Course 57 | 58 | I can imagine, Terraform can be tricky, so best to use a Free video Course for terraform [here](https://bit.ly/tws-terraform) 59 | 60 | Happy Learning :) 61 | 62 | [← Previous Day](../day62/README.md) | [Next Day →](../day64/README.md) 63 | -------------------------------------------------------------------------------- /2024/day64/README.md: -------------------------------------------------------------------------------- 1 | # Day 64 - Terraform with AWS 2 | 3 | Provisioning on AWS is quite easy and straightforward with Terraform. 4 | 5 | ## Prerequisites 6 | 7 | ### AWS CLI installed 8 | 9 | The AWS Command Line Interface (AWS CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts. 10 | 11 | ### AWS IAM user 12 | 13 | IAM (Identity Access Management) AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. You use IAM to control who is authenticated (signed in) and authorized (has permissions) to use resources. 14 | 15 | _In order to connect your AWS account and Terraform, you need the access keys and secret access keys exported to your machine._ 16 | 17 | ``` 18 | export AWS_ACCESS_KEY_ID= 19 | export AWS_SECRET_ACCESS_KEY= 20 | ``` 21 | 22 | ### Install required providers 23 | 24 | ``` 25 | terraform { 26 | required_providers { 27 | aws = { 28 | source = "hashicorp/aws" 29 | version = "~> 4.16" 30 | } 31 | } 32 | required_version = ">= 1.2.0" 33 | } 34 | ``` 35 | 36 | Add the region where you want your instances to be 37 | 38 | ``` 39 | provider "aws" { 40 | region = "us-east-1" 41 | } 42 | ``` 43 | 44 | ## Task-01 45 | 46 | - Provision an AWS EC2 instance using Terraform 47 | 48 | Hint: 49 | 50 | ``` 51 | resource "aws_instance" "aws_ec2_test" { 52 | count = 4 53 | ami = "ami-08c40ec9ead489470" 54 | instance_type = "t2.micro" 55 | tags = { 56 | Name = "TerraformTestServerInstance" 57 | } 58 | } 59 | ``` 60 | 61 | # Video Course 62 | 63 | I can imagine, Terraform can be tricky, so best to use a Free video Course for terraform [here](https://bit.ly/tws-terraform) 64 | 65 | Happy Learning :) 66 | 67 | [← Previous Day](../day63/README.md) | [Next Day →](../day65/README.md) 68 | -------------------------------------------------------------------------------- /2024/day66/README.md: -------------------------------------------------------------------------------- 1 | # Day 66 - Terraform Hands-on Project - Build Your Own AWS Infrastructure with Ease using Infrastructure as Code (IaC) Techniques(Interview Questions) ☁️ 2 | 3 | Welcome back to your Terraform journey. 4 | 5 | In the previous tasks, you have learned about the basics of Terraform, its configuration file, and creating an EC2 instance using Terraform. Today, we will explore more about Terraform and create multiple resources. 6 | 7 | ## Task: 8 | 9 | - Create a VPC (Virtual Private Cloud) with CIDR block 10.0.0.0/16 10 | - Create a public subnet with CIDR block 10.0.1.0/24 in the above VPC. 11 | - Create a private subnet with CIDR block 10.0.2.0/24 in the above VPC. 12 | - Create an Internet Gateway (IGW) and attach it to the VPC. 13 | - Create a route table for the public subnet and associate it with the public subnet. This route table should have a route to the Internet Gateway. 14 | - Launch an EC2 instance in the public subnet with the following details: 15 | - AMI: ami-0557a15b87f6559cf 16 | - Instance type: t2.micro 17 | - Security group: Allow SSH access from anywhere 18 | - User data: Use a shell script to install Apache and host a simple website 19 | - Create an Elastic IP and associate it with the EC2 instance. 20 | - Open the website URL in a browser to verify that the website is hosted successfully. 21 | 22 | #### This Terraform hands-on task is designed to test your proficiency in using Terraform for Infrastructure as Code (IaC) on AWS. You will be tasked with creating a VPC, subnets, an internet gateway, and launching an EC2 instance with a web server running on it. This task will showcase your skills in automating infrastructure deployment using Terraform. It's a popular interview question for companies looking for candidates with hands-on experience in Terraform. That's it for today. 23 | 24 | Happy Terraforming:) 25 | 26 | [← Previous Day](../day65/README.md) | [Next Day →](../day67/README.md) 27 | -------------------------------------------------------------------------------- /2024/day67/README.md: -------------------------------------------------------------------------------- 1 | # Day 67: AWS S3 Bucket Creation and Management 2 | 3 | ## AWS S3 Bucket 4 | 5 | Amazon S3 (Simple Storage Service) is an object storage service that offers industry-leading scalability, data availability, security, and performance. It can be used for a variety of use cases, such as storing and retrieving data, hosting static websites, and more. 6 | 7 | In this task, you will learn how to create and manage S3 buckets in AWS. 8 | 9 | ## Task 10 | 11 | - Create an S3 bucket using Terraform. 12 | - Configure the bucket to allow public read access. 13 | - Create an S3 bucket policy that allows read-only access to a specific IAM user or role. 14 | - Enable versioning on the S3 bucket. 15 | 16 | ## Resources 17 | 18 | [Terraform S3 bucket resource](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket) 19 | 20 | Good luck and happy learning! 21 | 22 | [← Previous Day](../day66/README.md) | [Next Day →](../day68/README.md) 23 | -------------------------------------------------------------------------------- /2024/day71/README.md: -------------------------------------------------------------------------------- 1 | # Day 71 - Let's prepare for some interview questions of Terraform 🔥 2 | 3 | ### 1. What is Terraform and how it is different from other IaaC tools? 4 | 5 | ### 2. How do you call a main.tf module? 6 | 7 | ### 3. What exactly is Sentinel? Can you provide few examples where we can use for Sentinel policies? 8 | 9 | ### 4. You have a Terraform configuration file that defines an infrastructure deployment. However, there are multiple instances of the same resource that need to be created. How would you modify the configuration file to achieve this? 10 | 11 | ### 5. You want to know from which paths Terraform is loading providers referenced in your Terraform configuration (\*.tf files). You need to enable debug messages to find this out. Which of the following would achieve this? 12 | 13 | A. Set the environment variable TF_LOG=TRACE 14 | 15 | B. Set verbose logging for each provider in your Terraform configuration 16 | 17 | C. Set the environment variable TF_VAR_log=TRACE 18 | 19 | D. Set the environment variable TF_LOG_PATH 20 | 21 | ### 6. Below command will destroy everything that is being created in the infrastructure. Tell us how would you save any particular resource while destroying the complete infrastructure. 22 | 23 | ``` 24 | terraform destroy 25 | ``` 26 | 27 | ### 7. Which module is used to store .tfstate file in S3? 28 | 29 | ### 8. How do you manage sensitive data in Terraform, such as API keys or passwords? 30 | 31 | ### 9. You are working on a Terraform project that needs to provision an S3 bucket, and a user with read and write access to the bucket. What resources would you use to accomplish this, and how would you configure them? 32 | 33 | ### 10. Who maintains Terraform providers? 34 | 35 | ### 11. How can we export data from one module to another? 36 | 37 | # 38 | 39 | Waiting for your responses😉.....Till then Happy learning :) 40 | 41 | [← Previous Day](../day70/README.md) | [Next Day →](../day72/README.md) 42 | -------------------------------------------------------------------------------- /2024/day72/README.md: -------------------------------------------------------------------------------- 1 | Day 72 - Grafana🔥 2 | 3 | Hello Learners , you guys are doing really a good job. You will not be there 24\*7 to monitor your resources. So, Today let’s monitor the resources in a smart way with - Grafana 🎉 4 | 5 | ## Task 1: 6 | 7 | > What is Grafana? What are the features of Grafana? 8 | > Why Grafana? 9 | > What type of monitoring can be done via Grafana? 10 | > What databases work with Grafana? 11 | > What are metrics and visualizations in Grafana? 12 | > What is the difference between Grafana vs Prometheus? 13 | 14 | --- 15 | 16 | [← Previous Day](../day71/README.md) | [Next Day →](../day73/README.md) 17 | -------------------------------------------------------------------------------- /2024/day73/README.md: -------------------------------------------------------------------------------- 1 | Day 73 - Grafana 🔥 2 | Hope you are now clear with the basics of grafana, like why we use, where we use, what can we do with this and so on. 3 | 4 | Now, let's do some practical stuff. 5 | 6 | --- 7 | 8 | Task: 9 | 10 | > Setup grafana in your local environment on AWS EC2. 11 | 12 | --- 13 | 14 | Ref: https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7042518379030556672-ZZA-?utm_source=share&utm_medium=member_desktop 15 | 16 | [← Previous Day](../day72/README.md) | [Next Day →](../day74/README.md) 17 | -------------------------------------------------------------------------------- /2024/day74/README.md: -------------------------------------------------------------------------------- 1 | # Day 74 - Connecting EC2 with Grafana . 2 | 3 | You guys did amazing job last day setting up Grafana on Local 🔥. 4 | 5 | Now, let's do one step ahead. 6 | 7 | --- 8 | 9 | Task: 10 | 11 | Connect an Linux and one Windows EC2 instance with Grafana and monitor the different components of the server. 12 | 13 | --- 14 | 15 | Don't forget to share this amazing work over LinkedIn and Tag us. 16 | 17 | ## Happy Learning :) 18 | 19 | [← Previous Day](../day73/README.md) | [Next Day →](../day75/README.md) 20 | -------------------------------------------------------------------------------- /2024/day75/README.md: -------------------------------------------------------------------------------- 1 | # Day 75 - Sending Docker Log to Grafana 2 | 3 | We have monitored ,😉 that you guys are understanding and doing amazing with monitoring tool. 👌 4 | 5 | Today, make it little bit more complex but interesting 😍 and let's add one more **Project** 🔥 to your resume. 6 | 7 | --- 8 | 9 | ## Task: 10 | 11 | - Install _Docker_ and start docker service on a Linux EC2 through [USER DATA](../day39/README.md) . 12 | - Create 2 Docker containers and run any basic application on those containers (A simple todo app will work). 13 | - Now intregrate the docker containers and share the real time logs with Grafana (Your Instance should be connected to Grafana and Docker plugin should be enabled on grafana). 14 | - Check the logs or docker container name on Grafana UI. 15 | 16 | --- 17 | 18 | You can use [this video](https://youtu.be/y3SGHbixmJw) for your refernce. But it's always better to find your own way of doing. 😊 19 | 20 | ## Bonus : 21 | 22 | - As you have done this amazing task, here is one bonus link.❤️ 23 | 24 | ## You can use this [refernce video](https://youtu.be/CCi957AnSfc) to intregrate _Prometheus_ with _Grafana_ and monitor Docker containers. Seems interesting ? 25 | 26 | Don't forget to share this amazing work over LinkedIn and Tag us. 27 | 28 | ## Happy Learning :) 29 | 30 | [← Previous Day](../day74/README.md) | [Next Day →](../day76/README.md) 31 | -------------------------------------------------------------------------------- /2024/day76/README.md: -------------------------------------------------------------------------------- 1 | # Day 76 Build a Grafana dashboard 2 | 3 | A dashboard gives you an at-a-glance view of your data and lets you track metrics through different visualizations. 4 | 5 | Dashboards consist of panels, each representing a part of the story you want your dashboard to tell. 6 | 7 | Every panel consists of a query and a visualization. The query defines what data you want to display, whereas the visualization defines how the data is displayed. 8 | 9 | ## Task 01 10 | 11 | - In the sidebar, hover your cursor over the Create (plus sign) icon and then click Dashboard. 12 | 13 | - Click Add a new panel. 14 | 15 | - In the Query editor below the graph, enter the query from earlier and then press Shift + Enter: 16 | 17 | `sum(rate(tns_request_duration_seconds_count[5m])) by(route)` 18 | 19 | - In the Legend field, enter {{route}} to rename the time series in the legend. The graph legend updates when you click outside the field. 20 | 21 | - In the Panel editor on the right, under Settings, change the panel title to “Traffic”. 22 | 23 | - Click Apply in the top-right corner to save the panel and go back to the dashboard view. 24 | 25 | - Click the Save dashboard (disk) icon at the top of the dashboard to save your dashboard. 26 | 27 | - Enter a name in the Dashboard name field and then click Save. 28 | 29 | Read [this](https://grafana.com/tutorials/grafana-fundamentals/) in case you have any questions 30 | 31 | Do share some amazing Dashboards with the community 32 | 33 | [← Previous Day](../day75/README.md) | [Next Day →](../day77/README.md) 34 | -------------------------------------------------------------------------------- /2024/day77/README.md: -------------------------------------------------------------------------------- 1 | # Day 77 Alerting 2 | 3 | Grafana Alerting allows you to learn about problems in your systems moments after they occur. Create, manage, and take action on your alerts in a single, consolidated view, and improve your team’s ability to identify and resolve issues quickly. 4 | 5 | Grafana Alerting is available for Grafana OSS, Grafana Enterprise, or Grafana Cloud. With Mimir and Loki alert rules you can run alert expressions closer to your data and at massive scale, all managed by the Grafana UI you are already familiar with. 6 | 7 | ## Task-01 8 | 9 | - Setup [Grafana cloud](https://grafana.com/products/cloud/) 10 | - Setup sample alerting 11 | 12 | Check out [this blog](https://grafana.com/docs/grafana/latest/alerting/) for more details 13 | 14 | [← Previous Day](../day76/README.md) | [Next Day →](../day78/README.md) 15 | -------------------------------------------------------------------------------- /2024/day78/README.md: -------------------------------------------------------------------------------- 1 | Day - 78 (Grafana Cloud) 2 | 3 | --- 4 | 5 | Task - 01 6 | 7 | 1. Setup alerts for EC2 instance. 8 | 2. Setup alerts for AWS Billing Alerts. 9 | 10 | --- 11 | 12 | For Reference: https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7044695663913148416-LfvD?utm_source=share&utm_medium=member_desktop 13 | 14 | [← Previous Day](../day77/README.md) | [Next Day →](../day79/README.md) 15 | -------------------------------------------------------------------------------- /2024/day79/README.md: -------------------------------------------------------------------------------- 1 | Day 79 - Prometheus 🔥 2 | 3 | Now, the next step is to learn about the Prometheus. 4 | It's an open-source system for monitoring services and alerts based on a time series data model. Prometheus collects data and metrics from different services and stores them according to a unique identifier—the metric name—and a time stamp. 5 | 6 | Tasks: 7 | 8 | --- 9 | 10 | 1. What is the Architecture of Prometheus Monitoring? 11 | 2. What are the Features of Prometheus? 12 | 3. What are the Components of Prometheus? 13 | 4. What database is used by Prometheus? 14 | 5. What is the default data retention period in Prometheus? 15 | 16 | --- 17 | 18 | Ref: https://www.devopsschool.com/blog/top-50-prometheus-interview-questions-and-answers/ 19 | 20 | [← Previous Day](../day78/README.md) | [Next Day →](../day80/README.md) 21 | -------------------------------------------------------------------------------- /2024/day80/README.md: -------------------------------------------------------------------------------- 1 | # Project-1 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project aims to automate the building, testing, and deployment process of a web application using Jenkins and GitHub. The Jenkins pipeline will be triggered automatically by GitHub webhook integration when changes are made to the code repository. The pipeline will include stages such as building, testing, and deploying the application, with notifications and alerts for failed builds or deployments. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7011367641952993281-DHn5?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day79/README.md) | [Next Day →](../day81/README.md) 16 | -------------------------------------------------------------------------------- /2024/day81/README.md: -------------------------------------------------------------------------------- 1 | # Project-2 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project is about automating the deployment process of a web application using Jenkins and its declarative syntax. The pipeline includes stages like building, testing, and deploying to a staging environment. It also includes running acceptance tests and deploying to production if all tests pass. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7014971330496212992-6Q2m?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day80/README.md) | [Next Day →](../day82/README.md) 16 | -------------------------------------------------------------------------------- /2024/day82/README.md: -------------------------------------------------------------------------------- 1 | # Project-3 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves hosting a static website using an AWS S3 bucket. Amazon S3 is an object storage service that provides a simple web services interface to store and retrieve any amount of data. The website files will be uploaded to an S3 bucket and configured to function as a static website. The bucket will be configured with the appropriate permissions and a unique domain name, making the website publicly accessible. Overall, the project aims to leverage the benefits of AWS S3 to host and scale a static website in a cost-effective and scalable manner. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_aws-project-devopsjobs-activity-7016427742300663808-JAQd?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day81/README.md) | [Next Day →](../day83/README.md) 16 | -------------------------------------------------------------------------------- /2024/day83/README.md: -------------------------------------------------------------------------------- 1 | # Project-4 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project aims to deploy a web application using Docker Swarm, a container orchestration tool that allows for easy management and scaling of containerized applications. The project will utilize Docker Swarm's production-ready features such as load balancing, rolling updates, and service discovery to ensure high availability and reliability of the web application. The project will involve creating a Dockerfile to package the application into a container and then deploying it onto a Swarm cluster. The Swarm cluster will be configured to provide automated failover, load balancing, and horizontal scaling to the application. The goal of the project is to demonstrate the benefits of Docker Swarm for deploying and managing containerized applications in production environments. 8 | 9 | ## Task-01 10 | 11 | Do the hands-on Project, read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7034173810656296960-UjUw?utm_source=share&utm_medium=member_desktop) 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day82/README.md) | [Next Day →](../day84/README.md) 16 | -------------------------------------------------------------------------------- /2024/day84/README.md: -------------------------------------------------------------------------------- 1 | # Project-5 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Netflix clone web application on a Kubernetes cluster, a popular container orchestration platform that simplifies the deployment and management of containerized applications. The project will require creating Docker images of the web application and its dependencies and deploying them onto the Kubernetes cluster using Kubernetes manifests. The Kubernetes cluster will provide benefits such as high availability, scalability, and automatic failover of the application. Additionally, the project will utilize Kubernetes tools such as Kubernetes Dashboard and kubectl to monitor and manage the deployed application. Overall, the project aims to demonstrate the power and benefits of Kubernetes for deploying and managing containerized applications at scale. 8 | 9 | ## Task-01 10 | 11 | Get a netflix clone form [GitHub](https://github.com/devandres-tech/Netflix-Clone), read [this](https://www.linkedin.com/posts/chetanrakhra_devops-project-share-activity-7034173810656296960-UjUw?utm_source=share&utm_medium=member_desktop) and follow the Redit clone steps to similarly deploy a Netflix Clone 12 | 13 | Happy Learning :) 14 | 15 | [← Previous Day](../day83/README.md) | [Next Day →](../day85/README.md) 16 | -------------------------------------------------------------------------------- /2024/day85/README.md: -------------------------------------------------------------------------------- 1 | # Project-6 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Node JS app on AWS ECS Fargate and AWS ECR. 8 | Read More about the tech stack [here](https://faun.pub/what-is-amazon-ecs-and-ecr-how-does-they-work-with-an-example-4acbf9be8415) 9 | 10 | ## Task-01 11 | 12 | - Get a NodeJs application from [GitHub](https://github.com/LondheShubham153/node-todo-cicd). 13 | 14 | - Build the Dockerfile present in the repo 15 | 16 | - Setup AWS CLI and AWS Login in order to tag and push to ECR 17 | 18 | - Setup an ECS cluster 19 | 20 | - Create a Task Definition for the node js project with ECR image 21 | 22 | - Run the Project and share it on LinkedIn :) 23 | 24 | Happy Learning :) 25 | 26 | [← Previous Day](../day84/README.md) | [Next Day →](../day86/README.md) 27 | -------------------------------------------------------------------------------- /2024/day86/README.md: -------------------------------------------------------------------------------- 1 | # Project-7 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Portfolio app on AWS S3 using GitHub Actions. 8 | Git Hub actions allows you to perform CICD with GitHub Repository integrated. 9 | 10 | ## Task-01 11 | 12 | - Get a Portfolio application from [GitHub](https://github.com/LondheShubham153/tws-portfolio). 13 | 14 | - Build the GitHub Actions Workflow 15 | 16 | - Setup AWS CLI and AWS Login in order to sync website to S3 (to be done as a part of YAML) 17 | 18 | - Follow this [video]() to understand it better 19 | 20 | - Run the Project and share it on LinkedIn :) 21 | 22 | Happy Learning :) 23 | 24 | [← Previous Day](../day85/README.md) | [Next Day →](../day87/README.md) 25 | -------------------------------------------------------------------------------- /2024/day87/README.md: -------------------------------------------------------------------------------- 1 | # Project-8 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a react application on AWS Elastic BeanStalk using GitHub Actions. 8 | Git Hub actions allows you to perform CICD with GitHub Repository integrated. 9 | 10 | ## Task-01 11 | 12 | - Get source code from [GitHub](https://github.com/sitchatt/AWS_Elastic_BeanStalk_On_EC2.git). 13 | 14 | - Setup AWS Elastic BeanStalk 15 | 16 | - Build the GitHub Actions Workflow 17 | 18 | - Follow this [blog](https://www.linkedin.com/posts/sitabja-chatterjee_effortless-deployment-of-react-app-to-aws-activity-7053579065487687680-wZI8?utm_source=share&utm_medium=member_desktop) to understand it better 19 | 20 | - Run the Project and share it on LinkedIn :) 21 | 22 | Happy Learning :) 23 | 24 | [← Previous Day](../day86/README.md) | [Next Day →](../day88/README.md) 25 | -------------------------------------------------------------------------------- /2024/day88/README.md: -------------------------------------------------------------------------------- 1 | # Project-9 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves deploying a Django Todo app on AWS EC2 using Kubeadm Kubernetes cluster. 8 | 9 | Kubernetes Cluster helps in Auto-scaling and Auto-healing of your application. 10 | 11 | ## Task-01 12 | 13 | - Get a Django Full Stack application from [GitHub](https://github.com/LondheShubham153/django-todo-cicd). 14 | 15 | - Setup the Kubernetes cluster using [this script](https://github.com/RishikeshOps/Scripts/blob/main/k8sss.sh) 16 | 17 | - Setup Deployment and Service for Kubernetes. 18 | 19 | - Run the Project and share it on LinkedIn :) 20 | 21 | Happy Learning :) 22 | 23 | [← Previous Day](../day87/README.md) | [Next Day →](../day89/README.md) 24 | -------------------------------------------------------------------------------- /2024/day89/README.md: -------------------------------------------------------------------------------- 1 | # Project-10 2 | 3 | ========= 4 | 5 | # Project Description 6 | 7 | The project involves Mounting of AWS S3 Bucket On Amazon EC2 Linux Using S3FS. 8 | 9 | This is a AWS Mini Project that will teach you AWS, S3, EC2, S3FS. 10 | 11 | ## Task-01 12 | 13 | - Create IAM user and set policies for the project resources using this [blog](https://medium.com/@chetxn/project-8-devops-implementation-8300b9ed1f2). 14 | - Utilize and make the best use of aws-cli 15 | - Run the Project and share it on LinkedIn :) 16 | 17 | Happy Learning :) 18 | 19 | [← Previous Day](../day88/README.md) | [Next Day →](../day90/README.md) 20 | -------------------------------------------------------------------------------- /2024/day90/README.md: -------------------------------------------------------------------------------- 1 | # Day 90: The Awesome Finale! 🎉 🎉 2 | 3 | 🚀 Can you believe it? You've hit the jackpot – Day 90, the grand finale of our DevOps bonanza. Time to give yourself a virtual high-five! 4 | 5 | ### What's Next? 6 | 7 | While this marks the end of the official 90-day journey, remember that your learning journey in DevOps is far from over. There's always something new to explore, tools to master, and techniques to refine. We're continuing to curate more content, challenges, and resources to help you advance your DevOps expertise. 8 | 9 | ### Share Your Achievement 10 | 11 | Share your journey with the world! Post about your accomplishments on social media using the hashtag #90DaysOfDevOps. Inspire others to join the DevOps movement and take charge of their learning path. 12 | 13 | ### Keep the Momentum Going! 14 | 15 | The knowledge and skills you've gained during these 90 days are just the beginning. Keep practicing, experimenting, and collaborating. DevOps is a continuous journey of improvement and innovation. 16 | 17 | ### Star the Repository 18 | 19 | If you've found value in this repository and the DevOps content we've curated, consider showing your appreciation by starring this repository. Your support motivates us to keep creating high-quality content and resources for the community. 20 | 21 | **[🌟 Star this repository](https://github.com/LondheShubham153/90DaysOfDevOps)** 22 | 23 | Thank you for being part of the "90 Days of DevOps" adventure. 24 | Keep coding, automating, deploying, and innovating! 🎈 25 | 26 | With gratitude, 27 | @TrainWithShubham 28 | 29 | [← Previous Day](../day89/README.md) 30 | -------------------------------------------------------------------------------- /2025/aws/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /2025/projects/README.md: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------