Configuration
Configuration
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.
Les grosses instances sont fédérées par FG-cloud.
Pré-requis
Réseau
A minima, les ports TCP/IP Openstack suivants doivent etre accessibles (ouvert en sortie coté client):
Logiciels
Disposer des commandes terraform et python-openstackclient.
Ces commandes sont disponibles par exemple via pkgx.
Configuration
dependencies:
opendev.org/openstack/python-openstackclient: ^6.3
terraform.io: ^1.6Activation
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.
✓ ~/.pkgx/terraform.io/v1.6.4
✓ ~/.pkgx/opendev.org/openstack/python-openstackclient/v6.3.0
env +opendev.org/openstack/python-openstackclient^6.3 +terraform.io^1.6python-openstackclient
Nous allons maintenant faire pointer l’environnement de notre répertoire de projet sur le projet OpenStack resinfo-discotech@stratuslab.production.virtualdata.
env:
OS_CLOUD: resinfo-discotech@stratuslab.production.virtualdata
dependencies:
opendev.org/openstack/python-openstackclient: ^6.3
terraform.io: ^1.6Test
On recharge notre environnement.
env -opendev.org/openstack/python-openstackclient^6.3 -terraform.io^1.6
env +opendev.org/openstack/python-openstackclient^6.3 +terraform.io^1.6Puis on requette OpenStack pour vérifier que la configuration de l’authentification est correcte.
+----------------------+-------+
| Resource | Limit |
+----------------------+-------+
| cores | 40 |
| instances | 20 |
| ram | 51200 |
| fixed-ips | -1 |
| injected-file-size | 10240 |
| injected-path-size | 255 |
| injected-files | 5 |
| key-pairs | 100 |
| properties | 128 |
| server-groups | 10 |
| server-group-members | 10 |
| floating-ips | -1 |
| secgroup-rules | -1 |
| secgroups | -1 |
+----------------------+-------+terraform
Provider OpenStack
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.
terraform {
required_version = ">= 1.6.0"
required_providers {
openstack = {
source = "terraform-provider-openstack/openstack"
version = "~> 1.51.1"
}
}
}
provider openstack {}Initialisation
On initialise l’état terraform via la sous-commande init de la commande terraform.
~/projet-cloud/ $ terraform initValidation
On vérifie ce que terraform va faire.
~/projet-cloud/ $ terraform plan