{"id":19291588,"url":"https://github.com/debapriya-source/devops-learning","last_synced_at":"2026-03-01T17:36:45.465Z","repository":{"id":245487723,"uuid":"818387054","full_name":"Debapriya-source/devops-learning","owner":"Debapriya-source","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-21T19:35:24.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-14T17:38:19.717Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Debapriya-source.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-21T18:29:39.000Z","updated_at":"2024-06-21T19:35:27.000Z","dependencies_parsed_at":"2024-06-22T11:26:55.088Z","dependency_job_id":null,"html_url":"https://github.com/Debapriya-source/devops-learning","commit_stats":null,"previous_names":["debapriya-source/devops-learning"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Debapriya-source/devops-learning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fdevops-learning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fdevops-learning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fdevops-learning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fdevops-learning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Debapriya-source","download_url":"https://codeload.github.com/Debapriya-source/devops-learning/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fdevops-learning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29976288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T22:26:20.873Z","updated_at":"2026-03-01T17:36:45.430Z","avatar_url":"https://github.com/Debapriya-source.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learning DevOps\n\n### Here is the the overview of the my journey(ongoing) of learning DevOps. Here are some of the key points that I have shared and also provided all the resourses and code refernces I'm following.\n\n\n## Basics\n\n- DevOps is a culture or a practice or process of increasing or improving any organization’s ability to deliver applications.\n    - It ensures CI/CD, automation, quality, continuous monitoring, continuous testing.\n\n### SDLC\n\n- Plan: Gather requirements\n- Define: SRS\n- Design: High Level Design (HLD), LLD\n- Develop\n- **Build(dev): Push the code in git**\n- **Test(QE: quality ensure):**\n- **Deploy: push into production**\n\nBold parts are the main parts for DevOps engineers to automate.\n\n### VMs\n\n- Logical partitions of the physical machines\n- E.g. ec2 instance is a VM\n- VMs are created using hypervisor like VMWARE, XEN, VirtualBox etc.\n\n### Automate AWS VMs by scripting\n\nAWS CLI\n\n- Install AWS CLI: Using this we can use any AWS service from our local terminal\n- Add to path\n- Authenticate with the AWS account\n    - Go to security credentials in the profile section in top right corner\n    - Create new access key\n    - Enter `aws configure` in terminal\n\nAWS CFT\n\nBoto3 (python module)\n\nhttps://www.youtube.com/watch?v=cN4pt5KQ9eA\u0026list=PLdpzxOOAlwvIKMhk8WhzN1pYoJ1YU8Csa\u0026index=6\n\n### Linux \u0026 Shell Scripting\n\nhttps://www.youtube.com/watch?v=9jw9F6mcQDo\u0026list=PLdpzxOOAlwvIKMhk8WhzN1pYoJ1YU8Csa\u0026index=7\n\nOS\n\n- Kernel: It is primarily responsible for\n    1. Device management\n    2. Memory management\n    3. Process managements \n    4. Handling System calls\n\nShell\n\n- It is a way to talk to the OS\n\nSome important CMDs to remember ( for details type `$man \u003ccmd_name\u003e`)\n\n- cd \n- ls -ltr\n- pwd\n- free -g (memory)\n- nproc (cpus)\n- df -h (disk size)\n- top (for above 3 in one place)\n\nScripting\n\n- create a file with .sh extension e.g. test.sh\n- Make it executable using chmod (4 read, 2 write, 1, execute) usr grp everyone then provide the file name\n- To run use `./[test.sh](http://test.sh)` or `sh test.sh`\n- The syntaxs are:\n\n```bash\n #!/bin/bash (#! is called shebang, bash is the executable which executes the script)\n #!/bin/sh is now linked with #!/bin/dash so with need to write bash instead of bash as they have different syntax\n \n echo \"Hello world\" # it's the print statement\n \n```\n\nVIM\n\n:q! quits\n\n:wq! write then quit\n\ni to insert\n\n### Imp AWS services for DeOvps\n\n1. **EC2** ← Elastic Compute Cloud (VMs)\n2. **VPC** ← Virtual Private cloud (for security)\n3. **EBS** ← Volume\n4. **S3** ← Storage (encrypted by default)\n5. **IAM** ← Identity and Access Management\n6. **CloudWatch** ← takes care of monitoring and observability  (guardrail service)\n7. **Lambda** ← serverless compute (we can directly run a program to use it without even creating any virtual instances, AWS will create an instance as per needs and perform the task accordingly, it is used for short actions or functionalities for which we don’t want an entire dedicated instance running 24x7, unlike ec2 instances which we use to deploy an entire application)\n8. **CloudTrail** ← records API logs and preserve it for specific time\n9. **Cloud Build Services** ← AWS Code Pipeline, AWS Code Build, AWS Code Deploy\n10. **AWS configuration** ← Used for monitoring, one can write and lookup configurations and specific actions or remedies for any specific tasks (guardrail service)\n11. **Billing and Costing**\n12. **AWS KMS** ← Key Management Service\n13. **AWS EKS** ← AWS Elastic Kubernetes Service (It is a managed service from Kubernetes by AWS)\n14. **Fargate (container service), ECS(Elastic Container Service** ←  it is also a containerization service but it is a AWS proprietary service)\n15. **ELK (ElasticSearch Logstash Kibana stack)** ← logging search mechanism (splunk is also similar)\n\n### Configuration Management with Ansible\n\nConfiguration management (CM) in DevOps is the process of managing and controlling the configuration of software systems throughout their lifecycle. It involves tracking and maintaining the consistency and integrity of software and hardware components, settings, and dependencies. CM is a key part of the DevOps lifecycle and is necessary for managing complex software systems. It helps engineering teams build robust and stable systems, and helps businesses scale.\n\nAdvantages\n\n- It is a push model (puppet has master/slave model)\n- It is an agentless model\n- Dynamic Inventory\n- Support for windows(winRM) and Linux(ssh) both\n- Simple (uses .yaml instead of any new language)\n- We can write our own Ansible modules in python and share using Ansible galaxy\n- For Ansible the cloud providers not matters like if it is AWS or Azure or GCP\n\nDisadvantages\n\n- For windows advanced ansible is a little bit tricky\n- Not good debugging\n- Not very good performance in terms of parallel executions\n\nProject\n\nprerequisite\n\n- Install anisible\n- setup password less authentication using ansible\n    - Create public-key using ssh-keygen\n    - It creates a private key and public key (with .pub extension). Private key should not be shared its only for logging into the current server.\n    - setup the public key as authorized key in the target machine in “~/.ssh/authorized_keys”\n- Inventory file is something which stores the IP addresses of the target servers.\n    \n    ```bash\n    [grp name]\n    IP address list\n    ```\n    \n- ansible adhoc commands ([All modules](https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html))\n    \n    ```bash\n    ansible -i “inventory_filename” * -m “module_name” -a “cmd_we_want_to_execute_in_the_target_machine”\n    ```\n    \n    **“*” ← `all` for every ips, `specific ip` for a specific ip address, `grp_name` for all the ips in a specific group.**\n    \n\nWhen we want to perform multiple tasks we use playbooks\n\n```bash\nansible-playbook -i inventory “playbook_name.yml”\n```\n\nExample of a playbook installing node in all instances of test-grp\n\n```yaml\n---\n- name: Install Node.js using NVM\n  hosts: test\n  become: yes\n  tasks:\n    - name: Update and upgrade apt packages\n      apt:\n        update_cache: yes\n        upgrade: yes\n        cache_valid_time: 3600\n\n    - name: Install dependencies\n      apt:\n        name:\n          - build-essential\n          - libssl-dev\n          - curl\n        state: present\n\n    - name: Clone NVM repository\n      git:\n        repo: 'https://github.com/nvm-sh/nvm.git'\n        dest: ~/.nvm\n        version: v0.39.7\n        update: no\n\n    - name: Add NVM to bash profile\n      shell: |\n        echo 'export NVM_DIR=\"$HOME/.nvm\"' \u003e\u003e ~/.bashrc\n        echo '[ -s \"$NVM_DIR/nvm.sh\" ] \u0026\u0026 \\. \"$NVM_DIR/nvm.sh\"' \u003e\u003e ~/.bashrc\n        echo '[ -s \"$NVM_DIR/bash_completion\" ] \u0026\u0026 \\. \"$NVM_DIR/bash_completion\"' \u003e\u003e ~/.bashrc\n      args:\n        executable: /bin/bash\n\n    - name: Source bash profile\n      shell: source ~/.bashrc\n      args:\n        executable: /bin/bash\n\n    - name: Install Node.js\n      shell: |\n        . ~/.nvm/nvm.sh\n        nvm install node\n      args:\n        executable: /bin/bash\n\n    - name: Verify Node.js installation\n      shell: |\n        . ~/.nvm/nvm.sh\n        node -v\n        npm -v\n      register: node_version\n      args:\n        executable: /bin/bash\n\n    - name: Display Node.js version\n      debug:\n        msg: \"Node.js version: {{ node_version.stdout_lines }}\"\n```\n\n**Ansible Roles**\n\n\u003e Used to structure complex playbooks\n\u003e \n\n\u003e `ansible-galaxy role init “role-name”`\n\u003e \n\n\u003e role-name is a newly created folder which will contain all of the tasks (in a folder named tasks)\n\u003e \n\n```yaml\n---\n- hosts: test\n\n  roles: \n    - role-name\n```\n\nReference\n\nhttps://github.com/ansible/ansible-examples\n\n### Infrastructure As Code (IAC)\n\n\u003e **IAC ← We automate our infrastructure with some code. For example, AWS CFT or AWS CLI could be used to automate the process of multiple ec2 instances at once with some scripts. Same thing we can think for Azure or GCP.**\n\u003e \n\n\u003e **Terraform ← It is an API as code tool, where we don’t have to learn multiple tools (for IAC) for different cloud providers.**\n\u003e \n- **Migration between one cloud to another is very smooth in terraform.**\n- **Also terraform is good for hybrid cloud infrastructure**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebapriya-source%2Fdevops-learning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebapriya-source%2Fdevops-learning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebapriya-source%2Fdevops-learning/lists"}