DevOps – Kynd – Feb – 2024 Notes

DevOps

MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare

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