Infrastructure-as-a-Service > configuration¶
Info
Dans l'écosystème académique français d'Infrastructre-as-a-Service, le choix s'est porté sur le produit Openstack pour offrir du service de type Cloud.
Les grosses instances sont fédérées par FG-cloud.
Pré-requis¶
Réseau¶
Warning
A minima, les ports TCP/IP Openstack suivants doivent etre accessibles (ouvert en sortie coté client):
- Le service WebUI Horizon (80,443),
- Le service de gestion des identitées Keystone (5000),
- Le service de gestion des images Glance (9292),
- Le service de gestion des instances Nova (8774),
- Le service de gestion des réseaux Neutron (9696),
- Le service de gestion des équilibreurs-de-charge Octavia (9876).
Logiciels¶
Disposer des commandes terraform et python-openstackclient.
Tip
Ces commandes sont disponibles par exemple via pkgx.
Configuration¶
~/projet-cloud/ $ cat pkgx.yaml | |
---|---|
Activation¶
Tip
Sur une machine sur laquelle la commande dev définie par pkgx n'a jamais été invoquée, celle-ci va mettre en cache les dépendances binaires de notre projet.
~/projet-cloud/ $ dev | |
---|---|
python-openstackclient¶
Nous allons maintenant faire pointer l'environnement de notre répertoire de projet sur le projet OpenStack resinfo-discotech@stratuslab.production.virtualdata sur lequel nous venons de configurer l'authentification.
~/projet-cloud/ $ cat pkgx.yaml | |
---|---|
- Positionne la variable d'environnement OS_CLOUD
Test¶
On recharge notre environnement.
~/projet-cloud/ $ dev off && dev on | |
---|---|
Puis on requette OpenStack pour vérifier que la configuration de l'authentification est correcte.
terraform¶
Provider OpenStack¶
Tip
La commande terraform va utiliser la variable d'environnement OS_CLOUD que nous avons paramétré dans le fichier pkgx.yaml de notre répertoire de travail.
~/projet-cloud/ $ cat terraform.tf | |
---|---|
Initialisation¶
On initialise l'état terraform via la sous-commande init de la commande terraform.
~/projet-cloud/ $ terraform init | |
---|---|
Validation¶
On vérifie ce que terraform va faire.
~/projet-cloud/ $ terraform plan | |
---|---|