1
0
Fork 0
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
This commit is contained in:
Arnaud Morin 2022-03-23 23:56:51 +01:00
parent 18d80d1be3
commit 0a03f5bb81
10 changed files with 93 additions and 1 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.swp

View File

@ -53,6 +53,17 @@ Ajouter une resource output pour afficher l'url de votre serveur demo-flask:
```bash
# Adaptez demo-flask avec le nom de votre serveur
output "demo-flask-url" {
value = "${format("http://%s", openstack_compute_instance_v2.demo-flask.address)}"
value = "${format("http://%s", openstack_compute_instance_v2.demo-flask.address)}:8080"
}
```
## Ajout d'une resource security group
Vous avez essayer d'ouvrir l'url ? Cela fonctionne-t-il ?
Il vous manque sans doute quelques resources pour gerer les security groups rules:
```
openstack_networking_secgroup_v2
openstack_networking_secgroup_rule_v2
```
N'oubliez pas que `demo-flask` ecoute par defaut sur le port 8080 !

57
terraform/training/103.md Normal file
View File

@ -0,0 +1,57 @@
# Terraform 103
## Objectif
Maintenant que vous avez les rudiments terraform, essayer de deployer `demo-flask` en backend avec `nginx` en frontend tout en utilisant une `floatin-ip` sur le frontend.
```
INTERNET
┌───────────────────┐
│ │
│ FLOATING IP │
│ │
┌──────────┴───────────────────┴───────────┐
│ │
│ │
│ │
│ FRONTEND (NGINX) │
│ │
│ │
│ │
│ │
└────────────────────┬─────────────────────┘
┌──────────────────────────────────────────┐
│ │
│ │
│ │
│ │
│ BACKEND (DEMO-FLASK) │
│ │
│ │
│ │
└──────────────────────────────────────────┘
```
Pour vous aider, je vous donne un fichier d'installation de nginx (template terraform) en mode proxy + certificat https:
[install-nginx.sh.tpl](files/install-nginx.sh.tpl)
## Solution
La solution est dans les fichiers `.tf.gpg` mais ils sont chiffres avec la clef GPG d'arnaud. Vous ne pouvez pas les dechiffrer, ils vous faut trouver la solution par vous meme.

4
terraform/training/files/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.tf
*.tfstate
.terraform.lock.hcl
.terraform

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,19 @@
#!/bin/bash
apt-get update
apt-get install -y nginx python3-certbot-nginx certbot
cat <<EOF > /etc/nginx/sites-enabled/default
server {
listen 80;
server_name ${frontend}.xip.opensteak.fr;
listen [::]:80;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / { proxy_pass http://${backend}:8080; }
}
EOF
systemctl restart nginx
# certbot
certbot run --agree-tos --register-unsafely-without-email --non-interactive --nginx --redirect --domain ${frontend}.xip.opensteak.fr

Binary file not shown.

Binary file not shown.

Binary file not shown.