Skip to content

Commit

Permalink
terraform
Browse files Browse the repository at this point in the history
  • Loading branch information
devopseasylearning committed Feb 26, 2023
1 parent ef7fd61 commit 127c3cb
Show file tree
Hide file tree
Showing 149 changed files with 355,379 additions and 793 deletions.
52 changes: 52 additions & 0 deletions Github-Action/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,3 +340,55 @@ jobs:
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT
```
```yaml
name: Build and Deploy Docker Compose App to AWS ECS

on:
push:
branches: [ main ]

env:
AWS_REGION: us-east-1
ECS_CLUSTER: my-ecs-cluster
SERVICE_NAME: my-ecs-service
IMAGE_NAME: my-docker-image
TAG: latest
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: Install Docker and Docker Compose
run: |
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
- name: Build and tag Docker image
run: |
docker-compose build $IMAGE_NAME
docker tag $IMAGE_NAME $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$IMAGE_NAME:$TAG
- name: Push Docker image to Amazon ECR
run: |
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$IMAGE_NAME:$TAG
- name: Deploy Docker Compose app to ECS
run: |
ecs-cli configure --region $AWS_REGION --cluster $ECS_CLUSTER
ecs-cli compose --project-name $SERVICE_NAME service up
```
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,11 @@ provider "aws" {
variable "tags" {
type = map(string)
default = {
owner = "[email protected]"
project = "mam"
environment = "dev"
application = "mam-dev"
t_dcl = "2"
t_cost_centre = "9516.9130."
t_environment = "DEV"
t_AppID = "SVC02524232"
terraform = "tree"
owner = "Alpha"
project = "sre"
environment = "dev"
application = "sre-dev"
terraform = "tree"
}
}

Expand All @@ -25,20 +21,20 @@ resource "aws_s3_bucket" "repository" {
bucket = format("%s-repository-%s-%s", var.tags["environment"], data.aws_region.current.name, data.aws_caller_identity.current.account_id)
//RESULT: dev-repository-us-east-1-788210522308

tags = merge(map("bucket-name", format("%s-repository-%s-%s", var.tags["environment"], data.aws_region.current.name, data.aws_caller_identity.current.account_id)), map("csp_exception", "true"), var.tags)
}
//RESULT bucket-name: dev-repository-us-east-1-788210522308
tags = merge(map("bucket-name", format("%s-repository-%s-%s", var.tags["environment"], data.aws_region.current.name, data.aws_caller_identity.current.account_id)), map("csp_exception", "true"), var.tags)
}
//RESULT bucket-name: dev-repository-us-east-1-788210522308


resource "aws_s3_bucket" "collaborate" {
bucket = format("%s-collaborate-config-%s-%s", var.tags["environment"], data.aws_region.current.name, data.aws_caller_identity.current.account_id)
//RESULT: dev-collaborate-config-us-east-1-788210522308

tags = merge(map("Name", format("%s-collaborate-config-%s-%s", var.tags["environment"], data.aws_region.current.name, data.aws_caller_identity.current.account_id)), map("csp_exception", "true"), var.tags)

tags = merge(map("Name", format("%s-collaborate-config-%s-%s", var.tags["environment"], data.aws_region.current.name, data.aws_caller_identity.current.account_id)), map("csp_exception", "true"), var.tags)
//RESULT bucket-name: dev-collaborate-config-us-east-1-788210522308

versioning {
enabled = true
}
}
}
2 changes: 1 addition & 1 deletion Terraform/Terraform-Commands/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ terraform plan -var="instancetype=t2.small"

### To deploy resources in the dev environment while using workspace.
```
terraform apply -var-file=dev.tfvars
terraform plan -var-file=dev.tfvars
OR
terraform apply -var-file=dev.tfvars
```
Expand Down
16 changes: 9 additions & 7 deletions Terraform/Terraform-jenkins/example01/main.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
provider "aws" {
region = "eu-west-2"
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
region = "eu-west-2"
access_key = var.access_key
secret_key = var.secret_key
}

data "aws_ami" "ubuntu" {
Expand All @@ -21,13 +21,15 @@ data "aws_ami" "ubuntu" {
}

resource "aws_instance" "web" {
ami = "${data.aws_ami.ubuntu.id}"
ami = data.aws_ami.ubuntu.id
instance_type = "t2.micro"

tags {
Name = "HelloWorld"
}
}
output "ip"{
value= "${aws_instance.web.public_ip}"
}
output "ip" {
value = aws_instance.web.public_ip
}


23 changes: 22 additions & 1 deletion azure-devops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,25 @@ https://www.youtube.com/watch?v=Nu33FKoGyWY&list=PLaFzfwmPR7_Ifxq-udm66fhReFeGOe


Self Hosted private Agent on Linux (Ubuntu) for Azure Pipelines
https://www.youtube.com/watch?v=psa8xfJ0-zI
https://www.youtube.com/watch?v=psa8xfJ0-zI


## Set up azure agent
https://www.youtube.com/watch?v=Hy6fne9oQJM
https://www.coachdevops.com/2023/01/how-to-setup-self-hosted-linux-agent-in.html
```
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.17_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.17_amd64.deb
rm libssl1.1_1.1.1f-1ubuntu2.17_amd64.deb
sudo sed -i 's/openssl_conf = openssl_init/#openssl_conf = openssl_init/g' /etc/ssl/openssl.cnf
wget https://vstsagentpackage.azureedge.net/agent/2.214.1/vsts-agent-linux-x64-2.214.1.tar.gz
tar zxvf vsts-agent-linux-x64-2.214.1.tar.gz
./config.sh
sudo ./svc.sh install &
sudo ./runsvc.sh &
```

## Pipeline steps
https://aka.ms/yaml
60 changes: 60 additions & 0 deletions devops-easy-learning/S3/Dockerfile/volume.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
```sh
docker run -it -d -p 8084:80 --name httpd_tia -v "$PWD":"/usr/local/apache2/htdocs/" --workdir "/usr/local/apache2/htdocs/" httpd

docker run -it -d \
-p 8083:80 \
--name httpd_tia \
-v "$PWD":"/usr/local/apache2/htdocs/" \
--workdir "/usr/local/apache2/htdocs/" \
httpd

docker run -it --rm \
-v "$PWD":"/code" \
--workdir "/code" \
ubuntu


docker run --rm \
-v "$PWD":"/code" \
--workdir "/code" \
ubuntu \
bash script.sh


docker run --rm \
-v "$PWD":"/code" \
--workdir "/code" \
ubuntu bash script.sh


docker run --rm \
-v "$PWD":"/code" \
--workdir "/code" \
ubuntu cat /etc/*release


docker run --rm \
-v "$PWD":"/python" \
--workdir "/python" \
python \
python python.py


docker run -it --rm \
-v "$PWD":"/awscli" \
--workdir "/awscli" \
organs/awscli


## We will have a project on this for interview
docker run -it --rm \
-v "$PWD":"/code" \
--workdir "/code" \
container-here

docker run -it --rm \
--name some-postgres2 \
-e POSTGRES_PASSWORD=12345 \
-d postgres \
postgres bash
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

#### How can I immediately delete a Secrets Manager secret so that I can create a new secret with the same name?

- [Use the AWS Secrets Manager console to get the deleted Secrets Manager secret ID](https://aws.amazon.com/premiumsupport/knowledge-center/delete-secrets-manager-secret/#:~:text=Open%20the%20Secrets%20Manager%20console,switch%2C%20and%20then%20choose%20Save.)

#### Delete a secret
https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html
```
aws secretsmanager delete-secret --secret-id sonar --force-delete-without-recovery --region us-east-1
aws secretsmanager delete-secret --secret-id splunk_key --force-delete-without-recovery --region us-east-1
aws secretsmanager delete-secret --secret-id datadog --force-delete-without-recovery --region us-east-1
aws secretsmanager delete-secret --secret-id argocd --force-delete-without-recovery --region us-east-1
aws secretsmanager delete-secret --secret-id aws-key --force-delete-without-recovery --region us-east-1
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
provider "aws" {
region = "us-east-1"
}

# variable "aws-secret-string" {
# type = list(string)
# default = [
# "jenkins",
# "splunk_key",
# "argocd",
# "aws-key",
# "elk-key"
# ]
# }

# resource "aws_secretsmanager_secret" "example" {
# count = length(var.aws-secret-string)
# name = var.aws-secret-string[count.index]
# tags = {
# "Terraform" = "true"
# "Project" = "MAM"
# }
# }




variable "aws-secret-string" {
type = set(string)
default = [
"jenkins",
"splunk_key",
"aws-key",
"elk-key"
]
}

resource "aws_secretsmanager_secret" "example" {
for_each = var.aws-secret-string
name = each.value
tags = {
"Terraform" = "true"
"Project" = "MAM"
}
}


56 changes: 56 additions & 0 deletions devops-easy-learning/S3/terroform/examples/comments/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
terraform {
required_version = ">= 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}

provider "aws" {
region = "us-east-1" # this a single line comment
}


resource "aws_instance" "app_server" {
ami = "ami-052efd3df9dad4825" #kdkjjkdxl;lsde;kdes;k;ers
instance_type = "t2.micro"

lifecycle {
prevent_destroy = true
}

tags = {
Name = "web01"
}
}

/*
resource "aws_instance" "app_server" {
ami = "ami-052efd3df9dad4825" #kdkjjkdxl;lsde;kdes;k;ers
instance_type = "t2.micro"
lifecycle {
prevent_destroy = true
}
tags = {
Name = "web01"
}
}
*/


# resource "aws_instance" "app_server" {
# ami = "ami-052efd3df9dad4825" #kdkjjkdxl;lsde;kdes;k;ers
# instance_type = "t2.micro"

# lifecycle {
# prevent_destroy = true
# }

# tags = {
# Name = "web01"
# }
# }
24 changes: 24 additions & 0 deletions devops-easy-learning/S3/terroform/examples/count/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
terraform {
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}

provider "aws" {
region = "us-east-1"
}


resource "aws_instance" "app_server" {
ami = "ami-052efd3df9dad4825"
instance_type = "t2.micro"
count = 3
tags = {
Name = "web-server-${count.index}"
}
}

Loading

0 comments on commit 127c3cb

Please sign in to comment.