Skip to content

Commit d630388

Browse files
committed
jupdating network demo started
1 parent f2db6cd commit d630388

5 files changed

Lines changed: 173 additions & 1 deletion

File tree

05-iac/00-terraform/03-usando-inputs-outputs/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ Antes de aplicar nuestros cambios, sería estupendo poder validar que la configu
3333

3434
## Desplegando la Configuración Actualizada
3535

36+
[Desplegando la Configuración Actualizada - Demo 06](06-demo.md)
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Añadiendo nuevos recursos a la configuración
2+
3+
## Pre requisitos
4+
5+
> Si has destruidfo el entorno recrealo
6+
7+
```bash
8+
cd lab/lc_web_app/
9+
terraform plan -out d1.tfplan
10+
terraform apply "d2.tfplan"
11+
```
12+
13+
## Pasos
14+
15+
### Paso 1. Crear nuevos recursos y renombrar
16+
17+
* Crear `./lab/lc_web_app/loadbalancer.tf`
18+
* Crear `./lab/lc_web_app/instances.tf`
19+
* Renombrar `./lab/lc_web_app/main.tf` --> `./lab/lc_web_app/network.tf`
20+
21+
### Paso 2. Movemos la instancia a su propio fichero.
22+
23+
Cortamos el contenido en `network.tf`
24+
25+
```diff
26+
- # INSTANCES #
27+
- resource "aws_instance" "nginx1" {
28+
- ami = nonsensitive(data.aws_ssm_parameter.ami.value)
29+
- instance_type = var.aws_instance_type
30+
- subnet_id = aws_subnet.subnet1.id
31+
- vpc_security_group_ids = [aws_security_group.nginx-sg.id]
32+
-
33+
- user_data = <<EOF
34+
- #! /bin/bash
35+
- sudo amazon-linux-extras install -y nginx1
36+
- sudo service nginx start
37+
- sudo rm /usr/share/nginx/html/index.html
38+
- echo '<html><head><title>Lemon Land Server</title></head><body style=\"background-color:#1F778D\"><p style=\"text-align: center;\"><span style=\"color:#FFFFFF;\"><span style=\"font-size:28px;\">Welcome to &#127819; land</span></span></p></body></html>' | sudo tee /usr/share/nginx/html/index.html
39+
- EOF
40+
-
41+
- tags = local.common_tags
42+
-
43+
- }
44+
```
45+
46+
Y lo añadimos a `instances.tf`
47+
48+
```tf
49+
# INSTANCES #
50+
resource "aws_instance" "nginx1" {
51+
ami = nonsensitive(data.aws_ssm_parameter.ami.value)
52+
instance_type = var.aws_instance_type
53+
subnet_id = aws_subnet.subnet1.id
54+
vpc_security_group_ids = [aws_security_group.nginx-sg.id]
55+
56+
user_data = <<EOF
57+
#! /bin/bash
58+
sudo amazon-linux-extras install -y nginx1
59+
sudo service nginx start
60+
sudo rm /usr/share/nginx/html/index.html
61+
echo '<html><head><title>Lemon Land Server</title></head><body style=\"background-color:#1F778D\"><p style=\"text-align: center;\"><span style=\"color:#FFFFFF;\"><span style=\"font-size:28px;\">Welcome to &#127819; land</span></span></p></body></html>' | sudo tee /usr/share/nginx/html/index.html
62+
EOF
63+
64+
tags = local.common_tags
65+
66+
}
67+
```
68+
69+
### Paso 3. Nos preparamos para añadir los recursos del balanceo de carga
70+
71+
Actualizamos `loadbalancer.tf`
72+
73+
```tf
74+
## aws_lb
75+
76+
## aws_lb_target_group
77+
78+
## aws_lb_listener
79+
80+
## aws_lb_target_group_attachment
81+
```
82+
83+
## Clean Up
84+
85+
```bash
86+
terraform destroy
87+
```
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Añadiendo availability zones
2+
3+
## Pre requisitos
4+
5+
> Si has destruidfo el entorno recrealo
6+
7+
```bash
8+
cd lab/lc_web_app/
9+
terraform plan -out d1.tfplan
10+
terraform apply "d2.tfplan"
11+
```
12+
13+
## Pasos
14+
15+
### Paso 1. Navegando en la documentación
16+
17+
Navegamos a la documentación oficial [registry.terraform.io](https://registry.terraform.io/)
18+
19+
Aquí seleccionamos los `providers`, dentro de los providers, encontraremos `AWS`.
20+
21+
Veremos ahora dos tabs: `Overview` y `Documentation`, selecionar `Documentation`.
22+
23+
A la izquierda tenemos un buscador, comenzar a escribir `availability`, veremos como filtra en tiempo real, la entrada que estamos buscando es [aws_availability_zones](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones)
24+
25+
26+
### Paso 2. Actualizar nuestro código
27+
28+
Actualizar `network.tf`
29+
30+
```diff
31+
# ....
32+
# DATA
33+
data "aws_ssm_parameter" "ami" {
34+
name = "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
35+
}
36+
+
37+
+data "aws_availability_zones" "available" {
38+
+ state = "available"
39+
+}
40+
+
41+
# ....
42+
```
43+
44+
## Clean Up
45+
46+
```bash
47+
terraform destroy
48+
```
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Actualizando Network y la Configuración de Instancia
2+
3+
## Pre requisitos
4+
5+
> Si has destruidfo el entorno recrealo
6+
7+
```bash
8+
cd lab/lc_web_app/
9+
terraform plan -out d1.tfplan
10+
terraform apply "d2.tfplan"
11+
```
12+
13+
## Pasos

05-iac/00-terraform/04-incorporando-recursos/readme.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@ Vamos a mejorar la arquitectura de la soluciñon actualmente tenemos una sola in
77
* Añadir un balanceador de carga
88
* Mantener la legibilidad deel código.
99

10+
Para añadir todos estos requisitos vamos a incuir las siguientes entradas:
11+
12+
```
13+
# Data source
14+
"aws_availability_zones" # List of current availability zones
15+
16+
# Load balancer resources
17+
"aws_lb" # AWS Application Load Balancer
18+
"aws_lb_target_group" # Target group for load balancer
19+
"aws_lb_listener" # Listener configuration for target group
20+
"aws_lb_target_group_attachement" # Attach for EC2 instances
21+
```
22+
1023
## Añadiendo nuevos recuros a la configuración
1124

12-
[Añadiendo nuevos recursos a la configuración - Demo 07](07-demo.md)
25+
[Añadiendo nuevos recursos a la configuración - Demo 07](07-demo.md)
26+
27+
## Usando la Documentación
28+
29+
En la demo anterior hemos hemos dejado abierto una serie de recursos, los cuales necesitamos para añadir el balanceo de carga, la pregunta es dónde podemos encontrar como generar estos recursos, la respuesta es usando la documentación: [registry.terraform.io](https://registry.terraform.io/)
30+
31+
[Añadiendo availability zones - Demo 08](08-demo.md)
32+
33+
## Actualizando Network y la Configuración de Instancia
34+
35+
[Actualizando Network y la Configuración de Instancia](09-demo.md)

0 commit comments

Comments
 (0)