├── config └── Images │ ├── README.md │ └── DevOps-tools.png ├── Git ├── versioncontrolsystem.png └── README.md ├── VirtualMacine ├── VirtualMachine.png └── README.md ├── AWS └── EC2 │ └── InstanceCreationSteps │ ├── 5keypair.png │ ├── 6finish.png │ ├── 3Image AMI.png │ ├── 4choosetier.png │ ├── 1EC2 Service.png │ ├── 2Launch Instance.png │ └── README.md ├── Linux ├── Screenshot 2022-04-01 at 9.33.29 AM.png ├── Screenshot 2022-04-01 at 9.33.34 AM.png └── README.md ├── What is DevOps └── Introduction.md ├── argocd └── README.md └── README.md /config/Images/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Git/versioncontrolsystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/Git/versioncontrolsystem.png -------------------------------------------------------------------------------- /config/Images/DevOps-tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/config/Images/DevOps-tools.png -------------------------------------------------------------------------------- /VirtualMacine/VirtualMachine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/VirtualMacine/VirtualMachine.png -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/5keypair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/AWS/EC2/InstanceCreationSteps/5keypair.png -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/6finish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/AWS/EC2/InstanceCreationSteps/6finish.png -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/3Image AMI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/AWS/EC2/InstanceCreationSteps/3Image AMI.png -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/4choosetier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/AWS/EC2/InstanceCreationSteps/4choosetier.png -------------------------------------------------------------------------------- /Linux/Screenshot 2022-04-01 at 9.33.29 AM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/Linux/Screenshot 2022-04-01 at 9.33.29 AM.png -------------------------------------------------------------------------------- /Linux/Screenshot 2022-04-01 at 9.33.34 AM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/Linux/Screenshot 2022-04-01 at 9.33.34 AM.png -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/1EC2 Service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/AWS/EC2/InstanceCreationSteps/1EC2 Service.png -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/2Launch Instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devops-by-examples/complete-devops-course/HEAD/AWS/EC2/InstanceCreationSteps/2Launch Instance.png -------------------------------------------------------------------------------- /Git/README.md: -------------------------------------------------------------------------------- 1 | # Version Control System 2 | 3 | Video Version of this README in English 4 | [Git and GitHub](https://www.youtube.com/watch?v=D4pQ6B3nr3Q&t=6s) 5 | 6 | ![1](https://github.com/devops-by-examples/complete-devops-course/blob/main/Git/versioncontrolsystem.png) 7 | -------------------------------------------------------------------------------- /Linux/README.md: -------------------------------------------------------------------------------- 1 | # 30 Most Used Linux/Shell Commands 2 | 3 | ![1](https://github.com/devops-by-examples/complete-devops-course/blob/main/Linux/Screenshot%202022-04-01%20at%209.33.29%20AM.png) 4 | 5 | ---- 6 | 7 | ![2](https://github.com/devops-by-examples/complete-devops-course/blob/main/Linux/Screenshot%202022-04-01%20at%209.33.34%20AM.png) 8 | -------------------------------------------------------------------------------- /VirtualMacine/README.md: -------------------------------------------------------------------------------- 1 | # What is a Virtual Machine ? 2 | 3 | A Virtual Machine (VM) is a compute resource that uses software instead of a physical computer to run programs and deploy apps. One or more virtual “guest” machines run on a physical “host” machine. Each virtual machine runs its own operating system and functions separately from the other VMs, even when they are all running on the same host. This means that, for example, a virtual MacOS virtual machine can run on a physical PC. 4 | 5 | 6 | -------------------------------------------------------------------------------- /AWS/EC2/InstanceCreationSteps/README.md: -------------------------------------------------------------------------------- 1 | # AWS ec2 instance creation with screenshots 2 | 3 | ## Locate EC2 Service 4 | ---------------------- 5 | ![1](https://github.com/devops-by-examples/complete-devops-course/blob/main/AWS/EC2/InstanceCreationSteps/1EC2%20Service.png) 6 | 7 | ## Click on Launch Instance 8 | ---------------------------- 9 | ![2](https://github.com/devops-by-examples/complete-devops-course/blob/main/AWS/EC2/InstanceCreationSteps/2Launch%20Instance.png) 10 | 11 | ## Pick the free tier image 12 | --------------------------- 13 | ![3](https://github.com/devops-by-examples/complete-devops-course/blob/main/AWS/EC2/InstanceCreationSteps/3Image%20AMI.png) 14 | 15 | ## Pick resources 16 | ----------------- 17 | ![4](https://github.com/devops-by-examples/complete-devops-course/blob/main/AWS/EC2/InstanceCreationSteps/4choosetier.png) 18 | 19 | ## Create keycpair or any existing one 20 | -------------------------------------- 21 | ![5](https://github.com/devops-by-examples/complete-devops-course/blob/main/AWS/EC2/InstanceCreationSteps/5keypair.png) 22 | 23 | ## Finish 24 | ----------- 25 | ![6](https://github.com/devops-by-examples/complete-devops-course/blob/main/AWS/EC2/InstanceCreationSteps/6finish.png) 26 | -------------------------------------------------------------------------------- /What is DevOps/Introduction.md: -------------------------------------------------------------------------------- 1 | # What is DevOps 2 | 3 | According to Google: 4 | 5 | The organizational and cultural movement that aims to increase software delivery velocity, improve service reliability, and build 6 | shared ownership among software stakeholders. 7 | 8 | According to RedHat: 9 | 10 | DevOps describes approaches to speeding up the processes by which an idea (like a new software feature, a request for 11 | enhancement, or a bug fix) goes from development to deployment in a production environment where it can provide value to the user. 12 | 13 | These approaches require that development teams and operations teams communicate frequently and approach their work 14 | with empathy for their teammates. Scalability and flexible provisioning are also necessary. 15 | 16 | With DevOps, those that need power the most, get it—through self service and automation. 17 | 18 | Developers, usually coding in a standard development environment, work closely with IT operations to 19 | speed software builds, tests, and releases—without sacrificing reliability. 20 | 21 | ## Why DevOps 22 | 23 | - Continuous Delivery. 24 | - Enhanced Security. 25 | - Path to build large scale systems. 26 | - Enhance Trust in promoting the application to production. 27 | - Less Manual Intervention. 28 | - Integration. 29 | -------------------------------------------------------------------------------- /argocd/README.md: -------------------------------------------------------------------------------- 1 | # Installation and Configuration 2 | 3 | https://abhishekveeramalla-av.medium.com/run-argo-cd-using-operator-on-kind-e59f48687d38 4 | 5 | ## Run Argo CD using operator on Kind 6 | 7 | This post will document how to run an Argo CD instance using Argo CD operator. 8 | 9 | We will use Kind to create the Kubernetes cluster and Nginx as ingress controller. 10 | Kubernetes Cluster 11 | 12 | We can leverage Kind’s extraPortMapping config option when creating a cluster to forward ports from the host to an ingress controller running on a node. 13 | Create a kind cluster with extraPortMappings and node-labels. 14 | 15 | ``` 16 | extraPortMappings allow the local host to make requests to the Ingress controller over ports 80/443 17 | node-labels only allow the ingress controller to run on a specific node(s) matching the label selector 18 | ``` 19 | 20 | `$ kubectl create -f https://raw.githubusercontent.com/iam-veeramalla/argocd-clusterconfig-demo/main/kind-argocd-ingress.yaml` 21 | 22 | ## Install Nginx Ingress Controller 23 | 24 | `$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml` 25 | 26 | The manifests contains kind specific patches to forward the hostPorts to the ingress controller, set taint toleration and schedule it to the custom labelled node. 27 | 28 | Now the Ingress is all setup. Wait until is ready to process requests running: 29 | 30 | ``` 31 | $ kubectl wait --namespace ingress-nginx \ 32 | --for=condition=ready pod \ 33 | --selector=app.kubernetes.io/component=controller \ 34 | --timeout=90s 35 | ``` 36 | 37 | ## Install Argo CD Operator 38 | 39 | Install Operator Lifecycle Manager (OLM), a tool to help manage the Operators running on your cluster. 40 | 41 | `$ curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.20.0/install.sh | bash -s v0.20.0` 42 | 43 | or 44 | 45 | `$ operator-sdk olm install` 46 | 47 | 2. Create subscription resource for Argo CD operator using the below command. 48 | 49 | `$ kubectl create -f https://operatorhub.io/install/argocd-operator.yaml` 50 | 51 | 3. After install, watch your operator come up using next command. 52 | 53 | `$ kubectl get csv -n operators` 54 | 55 | ## Create Argo CD Instance 56 | 57 | We are done with the creation of a Kubernetes cluster and installing Nginx ingress controller and Argo CD operator. The next step is to create an Argo CD instance in the cluster. 58 | 59 | `$ kubectl apply -f https://raw.githubusercontent.com/argoproj-labs/argocd-operator/master/examples/argocd-ingress.yaml` 60 | 61 | Watch for the Argo CD workloads to start. 62 | 63 | `$ kubectl get pods -w` 64 | 65 | ## Login to Argo CD 66 | 67 | Once the pods are up and running, you can access the Argo CD server using the below URL on your browser. 68 | 69 | `https://example-argocd` 70 | 71 | **Note: ** The Argo CD admin password is stored in the secret with name-cluster. 72 | 73 | `$ oc extract secret/example-argocd-cluster — to=-` 74 | 75 | Thanks for reading :). I hope you find this article useful. Go Argo CD !!! 76 | 77 | **References:** 78 | 79 | Argo CD Operator: https://github.com/argoproj-labs/argocd-operator 80 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Complete Devops Course 2 | 3 | Video version of this README file is available on my [YouTube](https://youtu.be/tXRLYSVVUOI) channel. 4 | 5 | ![DevOps Tools](https://github.com/devops-by-examples/complete-devops-course/blob/main/config/Images/DevOps-tools.png) 6 | 7 | ## Basics 8 | --------- 9 | - What is DevOps and Why DevOps ? 10 | - SDLC (Software Development Life Cycle) 11 | - Creating AWS account Free Trail 12 | - What is a Virtual Machine ? 13 | - Basics of Linux 14 | - Shell Scripting using bash 15 | 16 | ## Version Control and Source Code Management 17 | --------------------------------------------- 18 | - SCM - Git 101 19 | - Introduction to GitHub, Bitbucket, GitLab 20 | - Familiarity with git cli 21 | - Pull Requests and Issues(Shell scripts) 22 | - Webhooks 101 23 | 24 | ## Basics of AWS(Virtual Machine and its configuration) 25 | ---------------------------- 26 | - Introduction to PAAS, IAAS, SAAS (More focus on PAAS and IAAS) 27 | - AWS (Basics) 28 | - AWS EC2 and its configuration 29 | - AWS CLI 30 | - Create multiple EC2 instances 31 | - Q/A day (Ask Anything we learnt) 32 | 33 | ## Configuration Management 34 | ---------------------------- 35 | - Configuration Management 101 36 | - Ansible - Basics, Set-up 37 | - Ansible - Build Live Projects 38 | 39 | ## Infrastrcuture as Code 40 | -------------------------- 41 | - Terraform 101 42 | - Terraform - Basics, Setup, Build Live Project 43 | 44 | ## AWS Intermediate Level 45 | ------------------------- 46 | - AWS - Introduction to all the services 47 | - AWS (Private, Public and Hybrid Clouds) 48 | - AWS - EC2, EBS, Elastic IP, Lambda Functions, VPC and more 49 | 50 | ## Project Management 51 | --------------------- 52 | - Internal Tracking tools 101 (Jira, Rally) 53 | - Basics of Confluence, SharePoint 54 | - Q/A day (Ask Anything we learnt) 55 | 56 | ## Build Process and CICD 57 | ------------------------- 58 | - Complete Understanding of Build Process 59 | - CICD - 101 (Basics) 60 | - CICD - Introduction to various CICD tools 61 | - CICD - Build Live Projects using Jenkins 62 | - CICD - Conclusion (Q/A, Interactive Session) 63 | 64 | ## Reporting and Escalations 65 | ---------------------------- 66 | - Service Now (Change Management, Incident Management) 67 | - Release Process - Live Demo in GitHub 68 | 69 | ## Containerization 70 | ------------------- 71 | - Introduction to the world of Containers 72 | - Docker 101 (Basics) 73 | - Docker Build Live Projects 74 | - Docker Conclusion (Q/A, Interactive Session) 75 | 76 | ## Container Orchestration using Kubernetes 77 | ------------------------------------------- 78 | - Kubernetes 101 79 | - Kubernetes Installation and Set-up 80 | - Kubernetes - Deep dive into Pods, Deployment and Services 81 | - Kubernetes Advanced - Service Account, RBAC, Ingress 82 | - Kubernetes - Build Live Projects 83 | - Kubernetes Conclusion (Q/A, Interactive Session) 84 | 85 | ## AWS Advanced 86 | --------------- 87 | - AWS - CICD 88 | - Elastic Load Balancers 89 | - EKS - Amazon Kubernetes service. 90 | - Multi Region, Fail over, Backups 91 | - Cost Optimization 92 | - AWS Conclusion (Q/A, Interactive Session) 93 | 94 | 95 | ## Python 96 | --------- 97 | 98 | I have developed an easy, problem oriented and competetive learning portal for Python using Readthedocs. You can refer the 99 | [website](https://python-by-examples.readthedocs.io/en/latest/) for getting acquinted with Python. 100 | 101 | - Python 101 102 | - Basics of Python 103 | - Data Types 104 | - Logical, Arithmetic and other Operations 105 | - Deepdive 106 | - Deepdive with examples 107 | - Flask and Django 101 108 | - Django(explaining workflow) 109 | - Django Deepdive 110 | - Django Build Live Projects 111 | - Django Build Live Projects 112 | --------------------------------------------------------------------------------