Zum Inhalt springen

Konfiguration

Im französischen akademischen Ökosystem für Infrastruktur-als-Dienst fiel die Wahl auf Openstack als Plattform für Cloud-Dienste.
Große Instanzen werden über FG-cloud föderiert.

Voraussetzungen

Netzwerk

Mindestens die folgenden OpenStack TCP/IP-Ports müssen erreichbar sein (ausgehend auf der Client-Seite geöffnet):

  • Der Horizon Web-UI-Dienst (80, 443),
  • Der Keystone Identitätsdienst (5000),
  • Der Glance Image-Dienst (9292),
  • Der Nova Compute-Dienst (8774),
  • Der Neutron Netzwerkdienst (9696),
  • Der Octavia Load-Balancer-Dienst (9876).

Software

Die Befehle terraform und python-openstackclient müssen verfügbar sein.

Diese Befehle sind zum Beispiel über pkgx verfügbar.

Konfiguration

dependencies:
  opendev.org/openstack/python-openstackclient: ^6.3
  terraform.io: ^1.6

Aktivierung

Auf einer Maschine, auf der der dev-Befehl von pkgx noch nie ausgeführt wurde, werden die binären Abhängigkeiten unseres Projekts gecacht.
 ✓  ~/.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.6

python-openstackclient

Wir richten unser Projektverzeichnis auf das OpenStack-Projekt resinfo-discotech@stratuslab.production.virtualdata aus.

env:
  OS_CLOUD: resinfo-discotech@stratuslab.production.virtualdata
dependencies:
  opendev.org/openstack/python-openstackclient: ^6.3
  terraform.io: ^1.6

Test

Unsere Umgebung neu laden.

env -opendev.org/openstack/python-openstackclient^6.3 -terraform.io^1.6
env +opendev.org/openstack/python-openstackclient^6.3 +terraform.io^1.6

OpenStack abfragen, um die Authentifizierungskonfiguration zu überprüfen.

+----------------------+-------+
| 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

OpenStack-Provider

Der terraform-Befehl verwendet die Umgebungsvariable OS_CLOUD, die wir in der pkgx.yaml-Datei unseres Arbeitsverzeichnisses konfiguriert haben.
terraform {
  required_version = ">= 1.6.0"
  required_providers {
    openstack = {
      source = "terraform-provider-openstack/openstack"
      version = "~> 1.51.1"
    }
  }
}

provider openstack {}

Initialisierung

Den Terraform-Zustand mit dem Unterbefehl init initialisieren.

~/projet-cloud/ $ terraform init

Validierung

Überprüfen, was terraform ausführen wird.

~/projet-cloud/ $ terraform plan