Add last
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
This commit is contained in:
parent
18d80d1be3
commit
0a03f5bb81
|
@ -0,0 +1 @@
|
|||
*.swp
|
|
@ -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 !
|
||||
|
|
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
|||
*.tf
|
||||
*.tfstate
|
||||
.terraform.lock.hcl
|
||||
.terraform
|
Binary file not shown.
Binary file not shown.
|
@ -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.
Loading…
Reference in New Issue