DevOps – Kynd – Feb – 2024 Notes

DevOps

YOUR COSMETIC CARE STARTS HERE

Find the Best Cosmetic Hospitals

Trusted • Curated • Easy

Looking for the right place for a cosmetic procedure? Explore top cosmetic hospitals in one place and choose with confidence.

“Small steps lead to big changes — today is a perfect day to begin.”

Explore Cosmetic Hospitals Compare hospitals, services & options quickly.

✓ Shortlist providers • ✓ Review options • ✓ Take the next step with confidence

Day1 – DevOps & Git

-----------------------
START - 10 AM IST
End  - 6 PM IST
-----------------
5:30 - 6:00 - Assignment

1:30 - 2:30 - LUNCH BREAK
-----------------------------
11.30 - 15 mins - 
4:00 - 15 mins - 
=======================================
LAB -- on AWS
--------------------------
50% Demo & Discussion --- 50 % Lab..
============================================
1 Hour of Discussion
---------------------
======================================================

How to get started?
----------------------------
Lab # 1
https://www.devopsschool.com/blog/git-tutorial-git-basic-workflow/
Code language: PHP (php)

Day 2 – GIT

==========================================
============================================
Authentication with Github?
--------------------------------------
HTTPS -----> PAT is not a github password
- https://www.devopsschool.com/blog/github-tutorials-how-to-generate-pat-in-github/

SSH ---> Upload ur pub key to github
- https://www.devopsschool.com/blog/how-to-generate-upload-your-public-key-to-github-for-ssh-access-on-github/


https://www.devopsschool.com/blog/git-tutorial-git-basic-workflow-working-with-remote-repo-at-github-com/
Code language: JavaScript (javascript)

Day 2 – Docker

What is Docker?
=========================
	Container mgmt tool/platform
	From soloman kykes
	in go
	Free and Open Source


	tool
	- Save cost - PS --> VS --> Container(Less cpu+ram+s+nlc)
	- Save time --- 1 day -- 5 min --- 1 sec
	- imp Quality ----->

	mgmt
	vm  - create - start - stop - start - restart - pause - unp - kill - rm
	Container  - create - start - stop -	 start - restart - pause - unp - kill - rm

	Container
	https://www.youtube.com/watch?v=zd2TgM_pxJI
	<blockquote class="wp-embedded-content" data-secret="767zcUTqyE"><a href="https://www.devopsschool.com/blog/top-4-youtube-channel-for-free-videos-tutorials/">Best youtube channels for software developers</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Best youtube channels for software developers” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/top-4-youtube-channel-for-free-videos-tutorials/embed/#?secret=Vep313hdQP#?secret=767zcUTqyE" data-secret="767zcUTqyE" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
	FUNC -> is LIGHTWEIGHT APP RUNtime env 
	TECH -> Each container is havng
			1 USER namespace
			attached to
				1 MOUNT NS
				1 PID ns
				1 NETWORK NS
			


	COMPUTE ==
	BOOTFS + ROOTFS + USERFS + APPFS
	Kernal + ubuntu
	--------------------------
		 os
	
	VM = BOOTFS + ROOTFS + USERFS + APPFS
	Container -  ROOTFS + USERFS + APPFS

============================================================================
Architecture of Docker
------------------------------
HUMAN ----> Docker Client ---> Docker Server -----> ContainerD ----> Kernal
									Containers work
	======================================
		 Docker Engine



Components of Docker
=================================
Step 1 - Install Docker Engine
How to install Docker?
<blockquote class="wp-embedded-content" data-secret="LStIUvjN4f"><a href="https://www.devopsschool.com/blog/how-to-install-docker-in-linux/">Docker Tutorials: How to Install Docker in Ubuntu?</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Docker Tutorials: How to Install Docker in Ubuntu?” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/how-to-install-docker-in-linux/embed/#?secret=AvyQ4VdAm7#?secret=LStIUvjN4f" data-secret="LStIUvjN4f" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

 12  which docker
   13  which dockerd
   14  ps -eaf | grep ocker
   15  which containerd
   16  ps -eaf | grep usr/bin/docker
   17  ps -eaf | gre containerd
   18  ps -eaf | grep containerd
   21  docker version
   22  docker info


Step 2 - Decide which app and locate Docker image
VM Image --> BOOTFS + ROOTFS + USERFS + APPFS
Docker Image ---> ROOTFS + USERFS + APPFS

Step 3 - From Registry - https://hub.docker.com/

Step 4 - Container
	create - start - stop -	 start - restart - pause - unp - kill - rm


DOCKER TUTORIALS
<blockquote class="wp-embedded-content" data-secret="rV1QFrCg2C"><a href="https://www.devopsschool.com/blog/lifecycle-of-docker-containers/">Docker Tutorials: Lifecycle of Docker Containers</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Docker Tutorials: Lifecycle of Docker Containers” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/lifecycle-of-docker-containers/embed/#?secret=fJ4dkZDwWK#?secret=rV1QFrCg2C" data-secret="rV1QFrCg2C" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
https://www.devopsschool.com/blog/?s=docker
<blockquote class="wp-embedded-content" data-secret="sjCYxnfRHp"><a href="https://www.devopsschool.com/blog/simple-docker-workflow-quick-start/">Docker Tutorials: Basic Workflow with example commands</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Docker Tutorials: Basic Workflow with example commands” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/simple-docker-workflow-quick-start/embed/#?secret=svd0nEcSvr#?secret=sjCYxnfRHp" data-secret="sjCYxnfRHp" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

<blockquote class="wp-embedded-content" data-secret="rU5fyYlBuM"><a href="https://www.devopsschool.com/blog/how-to-login-linux-server-of-aws-from-windows-using-putty/">How to login linux server of AWS from windows using putty?</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“How to login linux server of AWS from windows using putty?” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/how-to-login-linux-server-of-aws-from-windows-using-putty/embed/#?secret=XdnuTxKIj7#?secret=rU5fyYlBuM" data-secret="rU5fyYlBuM" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

 26  docker images
   27  docker pull httpd
   28  docker images
   29  clear
   30  ls
   31  docker ps
   32  docker ps -a
   33  docker images
   34  docker create httpd
   35  docker ps -a
   36  docker start d0f4e67de127
   37  docker ps -a
   38  docker stop d0f4e67de127
   39  docker ps -a
   40  docker start d0f4e67de127
   41  docker ps -a
   42  docker restart d0f4e67de127
   43  docker ps -a
   44  clear
   45  docekr ps
   46  docker ps
   47  docker pause optimistic_lewin
   48  docker ps
   49  docker stats
   50  docker upause optimistic_lewin
   51  docker unpause optimistic_lewin
   52  docker stats
   53  docker ps
   54  docker kill d0f4e67de127
   55  docker ps -a
   56  docker rm d0f4e67de127
   57  docker ps -a
   58  docker create httpd
   59  docker ps -a
   60  history

Code language: HTML, XML (xml)
PS			VS			Container
------------------------------------------------------------
is running		is running		is running
as long as		as long as		as long as
PID1 is running		PID1 is running		PID1 is running

KERNEL			KERNEL			ANYTHING
=============================================
		RUN
---------------------------------------------------
pull + create + start + attach(attach to a pid1 executable of the container)


		RUN -d
---------------------------------------------------
pull + create + start + DO NOT attach(attach to a pid1 executable of the container)Code language: PHP (php)
   94  ls
   95  docker run -itd ubuntu
   96  docker ps
   97  docker inspect 7d3038a7471b
   98  curl http://172.17.0.5
   99  clear
  100  docker run -d -p 81:80 httpd
  101  docker ps
  102  docker run -d -p 82:80 httpd
  103  history
Code language: JavaScript (javascript)

Day 3 – Ansible

What is Ansible?
========================================
	Configuration mgmt tool
	(Server(S) Config)
	in Python
	Release
		Ansible - CMD - FREE N OS
			How to Write code in Ansible?
		AWX - UI - FREE
		Tower - UI - PAID

	From Redhat

What there in Server?
----------------------------
file		A C D
dir		"
package		I R U
services	 S S R E D
usr		A E  D
group
yum		I U 
cmd		cmd - script
shell		

Where does it stand in SDLC?
-============================================
PLAN - CODE - SCAN - BUILD - UT - PACK - Archive - DEPQA - AT - CC --- Release
------------------------------------------------------------------------
Jira  GIT    Sonar    Maven Junit Packer  Artifactory --- Ansible

https://devopsschool.com/path/

How ansible Works?
======================================
Human ----> Ansible Server(ACS) ---> Ansible Remote Server(ARS)
		LINUX			ANY
		Ansible			NA
		-----------------------SSH----------- (LINUX)
		-----------------------Winrm ----------- (Windows)
		python			python(linux)
					ps3. + donet (windows)
-------------------------------------------------------------------

How to install ansible
<blockquote class="wp-embedded-content" data-secret="3bmvhidvs2"><a href="https://www.devopsschool.com/blog/ansible-installation-and-configuration-guide/">Ansible Installation and Configuration Guide</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Ansible Installation and Configuration Guide” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/ansible-installation-and-configuration-guide/embed/#?secret=2rTuSteUvO#?secret=3bmvhidvs2" data-secret="3bmvhidvs2" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

ACS Components
--------------------------
Ansible
	Executables
	Modules		- A code - Running in ARS. set with param. eg. copy
		https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html
		https://docs.ansible.com/ansible/2.8/modules/modules_by_category.html
	Plugins		- A code - To empower ACS feature
	Ansible Config  - /etc/ansible/ansible.cfg

copy file -- cp src dest
	----------------------
	     cmd param param
	     module param parma

Playbook
		yaml file -- code which would run in ARS

Inventory
		a file which contains IP add of ARS
=====================================================================

RUN ONE CMD
		-----> cmd --------------------- Ansible Adhoc Cmd
		-----> script ------------------ Playbook

===================================================================
Requirement
	- Write a code in Ansible which would deploy web server in 100s

Psucode
- S1 - Install apache in ubuntu "ansible module for" + generic requirement - apt
- S2 - Copy Package to Web dir of Apache				 - copy
- S3 - Start and Enable Service					- service

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/service_module.html

Coding
=========================================
ansible localhost -m apt -a"name=apache2 state=latest"
ansible localhost -m copy -a"src=index.html dest=/var/www/html/index.html"
ansible localhost -m service -a"name=apache2 state=started"
=========================================

Code language: HTML, XML (xml)
======================================================
INVENTORY
-----------------------
	LIST of Ipaddres of ARS
		CMD		4.5.5.2
		FILE		
		SCRIPT

ansible localhost -m apt -a"name=apache2 state=latest"
ansible localhost -m copy -a"src=index.html dest=/var/www/html/index.html"
ansible localhost -m service -a"name=apache2 state=started"

ansible all -i 52.90.127.191,54.242.87.241, -m apt -a"name=apache2 state=latest" -u ubuntu --key-file=node.pem -b
ansible all -i 52.90.127.191,54.242.87.241, -m copy -a"src=index.html dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible all -i 52.90.127.191,54.242.87.241, -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b


SSH AUTHENTICATION
--------------
username and pass
username and key

SSH AUTHORIZATION
-------------------
sudo without password
sudo with password
sudo with another user n pass
sudo with another user n key



ansible all -i inventory -m apt -a"name=apache2 state=latest" -u ubuntu --key-file=node.pem -b
ansible all -i inventory -m copy -a"src=index.html dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible all -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b


root@ip-172-31-29-115:~# more inventory

[web]
52.90.127.191
54.242.87.241

[db]
4.5.6.7
3.4.5.6
7.8.82.2



ansible web -i inventory -m apt -a"name=apache2 state=latest" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b


ansible db -i inventory -m apt -a"name=apache2 state=latest" -u ubuntu --key-file=node.pem -bCode language: PHP (php)
========================================================
Playbook
	
	YAML FILE
	Contains PLAY

What is play
----------------------
	Specification of 
	Hosts:	localhost or all or anygroupname
	Task(S):
		Module and Its param
		Module and Its param
		Module and Its param
		Module and Its param
=====================================

---
- name: Update web servers
  hosts: web

  tasks:
  - name: Install Apache in ubuntu
    ansible.builtin.apt:
      name: apache2
      state: present
  - name: Copy file with owner and permissions
    ansible.builtin.copy:
      src: index.html
      dest: /var/www/html/index.html
  - name: Start service apache2, if not started
    ansible.builtin.service:
      name: apache2
      state: started


ansible-playbook -i inventory play.yaml -u ubuntu --key-file=node.pem -b

Requrement
- Installl mysql db
- start a db service


---
- name: Update DB servers
  hosts: db

  tasks:
  - name: Install Apache in ubuntu
    ansible.builtin.apt:
      update_cache: true
    ignore_errors: yes
  - name: Install Apache in ubuntu
    ansible.builtin.apt:
      name: mysql-server
      state: present
  - name: Start service apache2, if not started
    ansible.builtin.service:
      name: mysql.service
      state: started

ansible-playbook -i inventory db.yaml -u ubuntu --key-file=node.pem -bCode language: JavaScript (javascript)

Day 4 – Jenkins

Jenkins
============================================
- CI Tool
- Dev in JAVA
- Open Source and Free
- All feature is powered by - plugins
	https://plugins.jenkins.io/
- Release
	Jenkins =============================== Classic
	Cloudbees Jenkins (Enterprise) - Paid 
	Blueocean
	JenkinsX


What is CI?
============================
- Cont Integ

Auto Build + Auto Test 
---------------------
     imm feedback

https://devopsschool.com/path/

SDLC
			Dev						QA
========================================================   ==========================
--------------------------------------------
PLAN -> Code -> Scan -> Compile -> UT -> Package -> Archive -> Dep2QA -> AT -> CC
=================================================================================
              |============================================ | =====================|
				Build				      TesT
=====================================================================================
				IMM FEEDBACK
		
Jira	Git   Sonar    Maven    jnit	packer     nexus	Ansible  Sel   jacoc
==========================================================================================
					CI TOOL
					JENKINS

							Integration
							Feedback
							Scheduling

How Jenkins Works?
======================================
YOU ------>  Jenkins Master ----> Jenkins Slave(Node)
		WEB 			Agent


How to install Jenkins?
-==--------------------------------


How to Create a JOB?
=========================
<blockquote class="wp-embedded-content" data-secret="dJ2g1WGhAB"><a href="https://www.devopsschool.com/blog/jenkins-tutorials-preparation-of-jenkins-job-setup-checklist/">Jenkins Tutorials: Preparation of Jenkins Job Setup Checklist</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Jenkins Tutorials: Preparation of Jenkins Job Setup Checklist” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/jenkins-tutorials-preparation-of-jenkins-job-setup-checklist/embed/#?secret=jc6LJDOYqc#?secret=dJ2g1WGhAB" data-secret="dJ2g1WGhAB" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
	
=============================================

Question#1 – What is your programming Language
		JAVA
Question#2 – Where is the source code for project?
		Github
		https://github.com/devopsschool-demo-labs-projects/helloworld-java-maven
Question#3 – How Frequently you want this JOB to be triggered?
		daily
Question#4 – What is your Builders?
		maven			ant			gradle
		pom.xml			build.xml		build.gradle
		goal			target			task
		===================================================
		compile - compile	compile			compile	
		test	- test
		package - package
Question# 5 – Whom you want to deliver Feedback of Job
			devops@rajeshkumar.xyz



<blockquote class="wp-embedded-content" data-secret="S1UtzKWS8x"><a href="https://www.devopsschool.com/blog/configure-jenkins-first-job-of-java-code-base-with-maven-build-tool/">Configure Jenkins First job of Java Code base with Maven Build tool</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Configure Jenkins First job of Java Code base with Maven Build tool” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/configure-jenkins-first-job-of-java-code-base-with-maven-build-tool/embed/#?secret=roaaN2mc6U#?secret=S1UtzKWS8x" data-secret="S1UtzKWS8x" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
=================================================================

Integration
Scheduling

Feedback


Integration
========================================================
Process of Integration
------------------------
S1 - installl a plugins
S2 - Config a plugins
		SonarQube Server
		SonarQube Scanner
S3 - Use inside a job
https://github.com/devopsschool-demo-labs-projects/java-sonarqube-helloworld-src
====================================================================

Scheduling
<blockquote class="wp-embedded-content" data-secret="LRlNyJ36jP"><a href="https://www.devopsschool.com/blog/how-to-schedule-and-trigger-a-jenkins-job-automatically/">How to Schedule and Trigger a Jenkins job automatically?</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“How to Schedule and Trigger a Jenkins job automatically?” — DevOpsSchool.com" src="https://www.devopsschool.com/blog/how-to-schedule-and-trigger-a-jenkins-job-automatically/embed/#?secret=5PROCzJQIx#?secret=LRlNyJ36jP" data-secret="LRlNyJ36jP" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>


Method 1 – AT CERTAIN TIME AKA Build periodically

Method 2 – AT CERTAIN TIME BUT Build only when there is Code changes AKA Poll SCM

Method 3 – Trigger using command line or script AKA Trigger builds remotely (e.g., from scripts)

Method 4 – Trigger this job if other job is triggerred AKA Build after other projects are built

Method 5 – Trigger a job when there is PUSH into Github AKA GitHub hook trigger for GITScm polling
Method 6 – Trigger a job when there is PUSH into Bitbucket AKA GitHub hook trigger for GITScm polling


Method 7 – Trigger another job after this Job AKA Post Build Action => Build Other project

Method 8 – Trigger a Jenkins jobs using Jenkins command line jar file


curl -X POST --user rajesh:114d384630ab71842ce148905f1500a43d http://54.84.88.44:8080/job/DevOpsSchool/job/compile/build?delay=0sec

Code language: HTML, XML (xml)

Terraform

What is Terraform?
================================
	IAAC
	Coding for Infra
	
	in Go

	by Hashicorp

	Release
		community - cmd
		enterprise  - gui  - hosted
		cloud = gui on Cloud

What is Infra?
--------------------------
https://registry.terraform.io/browse/providers 4000 infra platform

Why Terraform?
-----------------------------
ONE CODING STAND FOR ALL 4000 PROVIDERS

How Terraform Works?

How to install terraform? 
https://www.devopsschool.com/blog/terraform-install-configurations/

How to install provider?
using code
=====================================
.tf

--------ONE DIR--------
1.tf 2.tf 3.tf 4.tf
------------------------
	ONE CODE

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "5.37.0"
    }
    azurerm = {
      source = "hashicorp/azurerm"
      version = "3.92.0"
    }
  }
}

provider "aws" {
  # Configuration options
}


provider "azurerm" {
  # Configuration options
}


$ terraform init
Code language: PHP (php)
==============================================================

Resources name
		its param
Resources name
		its param

Resources name
		its param

Resources name
		its param

Resources name
		its param





resource "aws_instance" "web" {
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t3.micro"

  tags = {
    Name = "HelloWorld77777"
  }
}

https://registry.terraform.io/providers/hashicorp/aws/latest/docs
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

terraform plan
terraform apply
terraform apply --auto-approve
terraform destory
terraform destroy --auto-approveCode language: JavaScript (javascript)
variable "instance_count" {
  type = number
  default = 1
}

variable "instance_name" {
  type = string
  default = "Rajesh"
}

resource "aws_instance" "example-number" {
  count = var.instance_count
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t2.micro"
  
  tags = {
    Name = var.instance_name
  }
}


variable "security_groups" {
  type = list(string)
  default = ["sg-0751e756f0c838861"]
}


resource "aws_instance" "example-list" {
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t2.micro"
  vpc_security_group_ids = var.security_groups
}

variable "instance_tags" {
  type = map(string)
  default = {
    Name = "my-instance4mMap-Rajesh"
  }
}

resource "aws_instance" "example-map" {
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t2.micro"
  tags = var.instance_tags
}

variable "create_vm" {
  description = "If set to true, it will create vm"
   type   = bool
}

resource "aws_instance" "example-bool" {
  count   = var.create_vm ? 1 : 0
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t2.micro"
  tags = var.instance_tags
}Code language: PHP (php)
=========================================================================
===========================================================================
Modules
--------------------------------------------

	a Directory
		where you have
			- tf code
			- tf vars

root module
	main.tf
		module  [ compute]
 		module   [ db]

	child modile [ compute]
	a Directory
		where you have
			- tf code
			- tf vars
	child modile [ db]
	a Directory
		where you have
			- tf code
			- tf vars
==============================================
resource "aws_instance" "example-number-mod1r" {
  count = 1
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t2.micro"
  
  tags = {
    Name = var.instance_name
  }
}


resource "aws_instance" "example-number-mod1" {
  count = 1
  ami           = "ami-0c7217cdde317cfec"
  instance_type = "t2.micro"
  
  tags = {
    Name = var.instance_name
  }
}







module "raju1" {
  source      = "./mod1"
}

module "raju2" {
  source      = "./mod2"
}


C:\Users\Rajesh Kumar\Desktop\DevOps\terar1>tree
Folder PATH listing for volume Windows
Volume serial number is DCF7-F64C
C:.
├───.terraform
│   ├───modules
│   └───providers
│       └───registry.terraform.io
│           └───hashicorp
│               ├───aws
│               │   └───5.37.0
│               │       └───windows_amd64
│               └───azurerm
│                   └───3.92.0
│                       └───windows_amd64
├───mod1
└───mod2




module "raju1" {
  source      = "./mod1"
}

module "raju2" {
  source      = "./mod2"
}

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"

  name = "my-vpc"
  cidr = "10.0.0.0/16"

  azs             = ["us-east-1a", "us-east-1b", "us-east-1c"]
  private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
  public_subnets  = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]

  enable_nat_gateway = false
  enable_vpn_gateway = false

  tags = {
    Terraform = "true"
    Environment = "dev"
  }
}

https://www.devopsschool.com/blog/?s=terraform+moduleCode language: JavaScript (javascript)
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x