-
Notifications
You must be signed in to change notification settings - Fork 0
/
answers.yaml
51 lines (34 loc) · 4.56 KB
/
answers.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
answers:
- Q.1: Quel est l'identifiant (champ id) de votre projet ?
Réponse: aea9f58513c8469db739272f667a3cc4
- Q.2: À combien s'élève le quota maximum en vCPUs de votre projet ?
Réponse: 8
- Q.3: Quel est le nom du service responsable de la gestion du réseau ?
Réponse: Neutron
- Q.4: Quelle est l'adresse IP de la passerelle dans le sous-réseau private-subnet ?
Réponse: 10.0.0.1
- Q.5: L'instance web-server-1 peut-elle accéder à internet ?
Réponse: non
- Q.6: Est-il possible d?ajouter de nouveaux volumes et de nouvelles interfaces à une instance ?
Réponse: oui
- Q.7: Le port 80 de l'instance web-server-1 est-il accessible sans modifications ?
Réponse: non
- Q.8: Une règle de sécurité ingress permet-elle un filtrage sur la destination ?
Réponse: non
- Q.9: Assigner plusieurs groupes de sécurité à une instance peut résulter en un conflit de règles ? Donnez la raison.
Réponse: non, car les règles sont construit de tel sorte que l'on ajoute des règles pour permettre l'accès à un port (80 par exemple) mais il n'y a pas de règle qui interdit l'accès à un port. On ne peut donc pas se retrouver dans une situation un port est autorisé par une règle et interdit par une autre.
- Q.10: Quel est le nom du service responsable des zones et des enregistrements DNS ?
Réponse: Designate
- Q.Bonus: Quelle méthode permet la configuration de TLS sur un Load Balancer ?
Réponse:
- Projet:
L'objectif du projet était de mettre en place une petite infrastructure cloud avec les éléments suivant.
Un bastion qui permet à un admin de se connecter depuis l'extérieur en ssh pour accéder aux différentes machines du web server et qui ne sont pas accessible depuis l'extérieur. La visibilité de celles-ci doit se limiter à une visibilité depuis le réseau privé (adresse ip en 10.0.0.0) que ce soit pour la connection ssh et http.
L'un de mes première interrogation a été de savoir comment installer nginx sur chaque machine sans avoir à s'y connecter et à le réaliser manuellement. Après quelques recherches, je me suis rendu compte qu'il était possible d'utiliser l'un des arguments de openstack_compute_instance_v2 pour indiquer un fichier bash à exécuter au lancement de l'instance. J'ai donc utilisé ce paramètre user_data pour passer le script web-server-init.sh ( user_data = "${file("web-server-init.sh")}" )
L'un de mes difficultés s'est posé lors de création du load balancer car je ne savais pas à quel réseau il devait être rataché, je pensais dans un premier temps que cette attache devait se faire dans le réseau externe mais en réalité il devait être attaché au réseau privé dans lequel se trouve les web server. Le seul lien avec l'extérieur (external-net) pour le load balancer se fait lors de l'ajout de l'IP flottante allouée dans le réseau externe.
Une nouvelle difficulté s'est posé lorsque j'ai souhaité ajouter le groupe de sécurité sur pour autorisé le port 80 en HTTP sur les trois web servers qui devait se limiter à autoriser le HTTP venant uniquement du load balancer. Dans un premier temps j'ai voulu m'inspirer du groupe de sécurité permettant la connection ssh sur le web servers uniquement depuis le bastion en utilisant directement l'IP allouée au load balancer dans le réseau privé. Cependant contrairement à ce que j'attendais l'IP utilisé par le load balancer pour faire la requête vers un web server n'est pas celle qui lui est attribué dans le réseau. Si le load balancer à par exemple une IP privée 10.0.0.89, celle utilisée vers le server web peut par exemple être 10.0.0.67. Il n'existe pourtant aucune méthode pour connaitre cette IP et j'ai regardé dans le fichier de log de NGINX pour voir cette différence d'IP. La règle pour le port 80 des web servers ne se limite dont pas à l'IP du load balancer mais à l'ensemble des IP du réseau privé (10.0.0.0/24).
Ma dernière difficulté se porte sur la création d'un snapshot de l'une ders instance web server. J'ai, en effet, réussi à créer un volume et à l'attacher avec une de mes instance web server mais je n'arrive pas à comprendre comment créer le snapshot (openstack_backstorage_snapshot_v3). J'arrive à créer une image depuis l'interface mais pas en utilisant Terraform.
Liste des fichiers :
versions.tf, main.tf, outputs.tf et variables.tf
web-server-init.sh est utilisé pour mettre à jour les packages des instances web servers mais également installer et démarrer le serveur nginx
index.html et style.css sont deux fichiers exemples qui sont ajouté dans le container.