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
|
```bash
|
||||||
# Adaptez demo-flask avec le nom de votre serveur
|
# Adaptez demo-flask avec le nom de votre serveur
|
||||||
output "demo-flask-url" {
|
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