OpenStack biedt meerdere opties voor het beheer van je OpenStack-project. Naast toegang via de Horizon-webinterface, kun je ook gebruikmaken van de 'Command Line Interface' (CLI) van OpenStack waarmee je jouw OpenStack-omgeving volledig kunt beheren en onderhouden.
In deze handleiding laten we zien hoe je de OpenStack CLI client installeert op Windows, macOS en Linux-systemen. We raden aan om vóór de installatie te controleren of je computer volledig up-to-date is.
OpenStack CLI-tools installeren in Windows
Het is aanzienlijk eenvoudiger om de OpenStack CLI-tools te installeren als je de Windows Subsystem for Linux (WSL) gebruikt. Gebruik in dat geval de installatie-instructie voor Linux.
Stap 1
Log in op de OpenStack Horizon-webinterface en klik rechtsboven op je gebruikersnaam > 'OpenStack RC File v3'. Een download voor <gebruikersnaam>-open-stack-openrc.sh wordt gestart. Sla het bestand op in een locatie waar je makkelijk bij kunt.

Stap 2
Windows kan standaard niet omgaan met shell-scripts en alternatieve methodes om die uit te voeren hebben wisselende resultaten. Daarom raden we aan het gedownloade bestand aan te passen naar een PowerShell-script.
Open het gedownloade bestand en verwijder alle uitgecommentarieerde regels (de regels die met # beginnen) en de regels die met 'if' beginnen. Het resultaat ziet er als volgt uit:
export OS_AUTH_URL=https://auth.teamblue.cloud
export OS_PROJECT_ID=<jouw-project-id>
export OS_PROJECT_NAME="<jouw-project-naam"
export OS_USER_DOMAIN_NAME="transip"
export OS_PROJECT_DOMAIN_ID="ac231232123e1239b1f693ed5a5ee2e6"
unset OS_TENANT_ID
unset OS_TENANT_NAME
export OS_USERNAME="<jouw-gebruikersnaam>"
echo "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: "
read -sr OS_PASSWORD_INPUT
export OS_PASSWORD=$OS_PASSWORD_INPUT
export OS_REGION_NAME="AMS2"
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3Maak in deze regels de volgende aanpassingen:
- Vervang 'export' en 'unset' door '$env:'
- Sluit de regel $env:OS_TENANT_ID en $env:OS_TENANT_NAME af met = $null
- Vervang het hele 'echo'-deel door: $OS_PASSWORD_INPUT = Read-Host -Prompt "Please enter your OpenStack Password for project $env:OS_PROJECT_NAME as user $env:OS_USERNAME" -AsSecureString
- Vervang de regel die begint met 'read' door: $env:OS_PASSWORD = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBstr($OS_PASSWORD_INPUT))
- Plaats de waarde van iedere variabele (met uitzondering van $null en 3) tussen aanhalingstekens " ", zie het voorbeeld hieronder.
Let op: Gebruik geen spaties tenzij aangegeven in het voorbeeld hieronder.
Het resultaat ziet er als volgt uit (let op de scrollbalk):
$env:OS_AUTH_URL=https://auth.teamblue.cloud"
$env:OS_PROJECT_ID="<jouw-project-id>"
$env:OS_PROJECT_NAME="<jouw-project-naam>"
$env:OS_USER_DOMAIN_NAME="transip"
$env:OS_PROJECT_DOMAIN_ID="ac23823215e24239b1f693ed5a5ee2e6"
$env:OS_TENANT_ID=$null
$env:OS_TENANT_NAME=$null
$env:OS_USERNAME="<jouw-gebruikersnaam>"
$OS_PASSWORD_INPUT = Read-Host -Prompt "Please enter your OpenStack Password for project $env:OS_PROJECT_NAME as user $env:OS_USERNAME" -AsSecureString
$env:OS_PASSWORD = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($OS_PASSWORD_INPUT))
$env:OS_REGION_NAME="AMS2"
$env:OS_INTERFACE="public"
$env:OS_IDENTITY_API_VERSION=3Sla het bestand op maar dan met de extensie .ps1 (als PowerShell-script).
Stap 3
Download de nieuwste versie van Python door op de 'Download Python <versienummer>'-knop te klikken.

Stap 4
Open het gedownloade bestand en klik op 'Customize Installation'. Hiermee kun je de optie aanvinken om al tijdens de installatie de omgevingsvariabelen correct in te stellen.

Stap 5
Pas in de 'Optional Features'-stap niets aan en klik op 'Next'.

Stap 6
Vink in de 'Advanced Options'-stap de optie 'Add Python to environment variables' aan en klik vervolgens op 'Install'.

Wanneer de installatie van Python is afgerond zie je de bevestiging 'Setup was successful'. Klik optioneel eerst op 'Disable path length limit' (indien van toepassing), of direct op 'Close' om het scherm af te sluiten.

Stap 7
Voor de installatie van de OpenStack CLI client is Microsoft Visual C++ 14.0 of nieuwer nodig. Download deze door op https://visualstudio.microsoft.com/visual-cpp-build-tools/ op 'Download Build Tools' te klikken.

Stap 8
Open het gedownloade bestand en klik op 'Continue' om de installatie te starten.

Stap 9
Selecteer 'Desktop development with C++' en druk op de 'Install'-knop rechtsonder om Desktop development with C++ te installeren. Dit proces zal even duren.

Klik na de installatie op het kruis rechtsboven om het installatiescherm te sluiten.

Stap 10
Start PowerShell als administrator (Start > PowerShell > Rechter muisknop > Uitvoeren als administrator / Run as administrator).

Stap 11
Installeer de OpenStack CLI client met de commando's:
python.exe -m pip install --upgrade pip
pip install python-openstackclientHet eerste commando installeert eventuele updates van Pip. Het tweede installeert daadwerkelijk de OpenStack CLI client.
Stap 12
Herinner je je het bestand uit stap 2 nog? Dit heb je nodig om de OpenStack CLI client te configureren om jouw OpenStack-project te gebruiken.
Navigeer naar de map waar je het bestand hebt opgeslagen, bijvoorbeeld:
cd C:\Users\<gebruiker>\Downloads\
Stap 13
Het PowerShell-script uit stap 2 is unsigned. Start daarom een PowerShell-shell in de PowerShell-shell en voer daarna het script uit met de commando's:
powershell.exe -ExecutionPolicy Unrestricted
.\<gebruikersnaam>-open-stack-openrc.ps1Vervang hier <gebruikersnaam>-open-stack-openrc.ps1 door de bestandsnaam waaronder je het bestand in stap 2 hebt opgeslagen.
Er wordt gevraagd om het wachtwoord waarmee je inlogt op de OpenStack Horizon-webinterface (zie onze 'OpenStack getting started'-handleiding voor hoe je het wachtwoord instelt). Let op: Er wordt geen bevestiging getoond als je het juiste wachtwoord gebruikt:
Please enter your OpenStack Password for project testtransip-open-stack as user testtransip:That's it! Je kunt nu de werking van de OpenStack client direct testen met het commando:
openstack server listAls je al één of meer instances hebt aangemaakt zal de output er ongeveer als volgt uitzien (let op de scrollbar):
transip@Demo:~$ openstack server list
+--------------------------------------+-------------+--------+-----------------------------------------------------------------------------------------+-------+--------------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------+--------+-----------------------------------------------------------------------------------------+-------+--------------+
| f506cf10-c53d-4d51-996d-9dc721472637 | Server 2022 | ACTIVE | TestNetwork=192.168.0.2; net-public=123.123.123.123; net-public-ipv6=2a02:348:5e6:1::6b60 | | Standard 4GB |
+--------------------------------------+-------------+--------+-----------------------------------------------------------------------------------------+-------+--------------+Daarmee zijn we aan het eind gekomen van deze handleiding over de installatie van de CLI-tools binnen OpenStack. Een volledig overzicht van beschikbare commando's vind je op https://docs.openstack.org/python-openstackclient/latest/cli/command-list.html#command-list.
OpenStack CLI client installeren in macOS/Linux
Stap 1
Log in op de OpenStack Horizon-webinterface en klik rechtsboven op je gebruikersnaam > 'OpenStack RC File v3'. Een download voor <gebruikersnaam>-open-stack-openrc.sh wordt gestart. Sla het bestand op in een locatie waar je via command-line makkelijk bij kunt.
Werk je vanuit Windows via WSL? Je kan het gedownloade bestand openen en de inhoud kopiëren (het is vrij klein). Plak deze vervolgens in een nieuw bestand, bijvoorbeeld openstack.sh, en gebruik die bestandsnaam in stap 3.

Stap 2
Installeer de OpenStack CLI client via command-line met de commando's:
CentOS Stream / AlmaLinux / Rocky Linux
sudo dnf -y update
sudo dnf -y install python3-openstackclientUbuntu/Debian
sudo apt -y update && sudo apt -y upgrade
sudo apt -y install python3-openstackclientmacOS
Voor de installatie van de OpenStack CLI client is Python 3 vereist. Je kunt Python 3 vanaf deze website downloaden.
pip3 install python-openstackclient
Stap 3
Herinner je je het bestand uit stap 1 nog? Dit heeft alle benodigdheden om de OpenStack CLI client te configureren om jouw OpenStack-project te gebruiken. Dit doe je met het commando:
source <gebruikersnaam>-open-stack-openrc.sh- Vervang <gebruikersnaam> door de daadwerkelijke naam in het bestand uit stap 1.
- Voer het commando uit in de directory waar het .sh-bestand is opgeslagen, of verwijs daarnaar, bijvoorbeeld:
source /some/directory/<gebruikersnaam>-open-stack-openrc.shEr wordt vervolgens gevraagd om het wachtwoord waarmee je inlogt op de OpenStack Horizon-webinterface (zie onze 'OpenStack getting started'-handleiding voor hoe je het wachtwoord instelt):
Please enter your OpenStack Password for project testtransip-open-stack as user testtransip:Geef het wachtwoord op. Er wordt geen bevestiging getoond als je het juiste wachtwoord gebruikt.
That's it! Je kunt nu de werking van de OpenStack client direct testen met het commando:
openstack server listAls je al één of meer instances hebt aangemaakt zal de output er ongeveer als volgt uitzien (let op de scrollbar):
transip@Demo:~$ openstack server list
+--------------------------------------+-------------+--------+-----------------------------------------------------------------------------------------+-------+--------------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------+--------+-----------------------------------------------------------------------------------------+-------+--------------+
| f506cf10-c53d-4d51-996d-9dc721472637 | Server 2022 | ACTIVE | TestNetwork=192.168.0.2; net-public=123.123.123.123; net-public-ipv6=2a02:348:5e6:1::6b60 | | Standard 4GB |
+--------------------------------------+-------------+--------+-----------------------------------------------------------------------------------------+-------+--------------+Daarmee zijn we aan het eind gekomen van deze handleiding over de installatie van de CLI-tools binnen OpenStack. Een volledig overzicht van beschikbare commando's vind je op https://docs.openstack.org/python-openstackclient/latest/cli/command-list.html#command-list.
clouds.yaml downloaden en gebruiken (Windows, macOS & Linux)
Met OpenStack kun je naast de RC-file ook een clouds.yaml gebruiken. Dit is de standaardconfiguratie voor de OpenStack CLI en openstacksdk. In deze paragraaf download je het bestand en plaats je het op de juiste locatie per besturingssysteem.
Stap 1
Log in op de Horizon-webinterface > klik rechtsboven op je gebruikersnaam > 'OpenStack RC File v3' of ga naar 'API Access' > 'Download OpenStack clouds.yaml'. Sla het bestand op.
Windows
Stap 2
Open PowerShell en maak (indien nodig) de OpenStack-configmap aan in jouw profiel:
$configDir = Join-Path $env:APPDATA "openstack"
New-Item -ItemType Directory -Path $configDir -Force | Out-Null
Stap 3
Verplaats het gedownloade bestand naar de juiste locatie en hernoem het naar clouds.yaml (pas het pad van je download aan):
Move-Item "C:\Users\<gebruikersnaam>\Downloads\clouds.yaml" `
-Destination (Join-Path $env:APPDATA "openstack\clouds.yaml") -Force
Stap 4
Beperk de ACL's zodat alleen jouw gebruiker lees-/schrijfrechten heeft (beveiliging):
icacls "$env:APPDATA\openstack\clouds.yaml" /inheritance:r /grant:r "$env:USERNAME:(R,W)"
macOS
Stap 2
Maak de OpenStack-configmap aan en verplaats clouds.yaml naar de standaardlocatie:
mkdir -p ~/.config/openstack
mv ~/Downloads/clouds.yaml ~/.config/openstack/clouds.yaml
chmod 700 ~/.config/openstack
chmod 600 ~/.config/openstack/clouds.yaml
De rechten 600 zorgen ervoor dat alleen jouw gebruiker het bestand kan lezen/schrijven.
Linux
Stap 2
Gebruik dezelfde paden en permissies als bij macOS:
mkdir -p ~/.config/openstack
mv ~/Downloads/clouds.yaml ~/.config/openstack/clouds.yaml
chmod 700 ~/.config/openstack
chmod 600 ~/.config/openstack/clouds.yaml
Stap 5
Test of de configuratie werkt met de cloudnaam uit je clouds.yaml (bijv. 'transip'):
openstack --os-cloud transip server listApplication Credentials gebruiken (aanbevolen)
In plaats van je inlogwachtwoord kun je 'Application Credentials' gebruiken. Dit zijn sleutels met beperkte rechten en een eigen secret; veiliger en beter te roteren.
Stap 1
Maak in Horizon een nieuwe credential: 'Identity' > 'Application Credentials' > 'Create Application Credential' > geef een naam, kies (optioneel) een role en klik op 'Create'. Noteer de ID (of Name) en de Secret.
Stap 2
Pas je clouds.yaml aan om de credential te gebruiken met auth_type v3applicationcredential en zet de secret in een omgevingsvariabele i.p.v. in een bestand:
clouds:
transip:
region_name: AMS2
interface: public
auth:
auth_url: "https://auth.teamblue.cloud"
auth_type: "v3applicationcredential"
# Gebruik óf ID óf Name
application_credential_id: "<app-cred-id>"
# of:
# application_credential_name: "<app-cred-name>"Windows (PowerShell): secret als omgevingvariabele
$env:OS_APPLICATION_CREDENTIAL_SECRET = "<app-cred-secret>"macOS / Linux (bash/zsh): secret als omgevingsvariabele
export OS_APPLICATION_CREDENTIAL_SECRET="<app-cred-secret>"Standaard cloud instellen & CLI-alias maken
Om het werken met de CLI te versnellen, kun je een standaard cloud instellen of een alias gebruiken. In beide gevallen verwijs je naar de cloudnaam die je in clouds.yaml hebt gedefinieerd (bijv. transip).
Optie A: Standaard cloud met OS_CLOUD (aanbevolen)
Windows (PowerShell)
Stap 1
Stel de variabele voor de huidige sessie in:
$env:OS_CLOUD = "transip"
Stap 2
Maak de instelling persistent via je PowerShell-profiel ($PROFILE):
if (-not (Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force | Out-Null }
Add-Content -Path $PROFILE -Value '$env:OS_CLOUD = "transip"'
Sluit en heropen PowerShell om de wijziging te laden.
macOS / Linux (bash/zsh)
Stap 1
Stel de variabele in voor je shell en maak deze persistent:
echo 'export OS_CLOUD=transip' >> ~/.bashrc # gebruik ~/.zshrc voor zsh
source ~/.bashrc # of: source ~/.zshrc
Optie B: Alias of functie
Windows (PowerShell)
Stap 1
Voeg een functie toe aan je PowerShell-profiel die automatisch --os-cloud meegeeft:
if (-not (Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force | Out-Null }
Add-Content -Path $PROFILE -Value @'
function os {
param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Args)
openstack --os-cloud transip @Args
}
'@
Sluit en heropen PowerShell. Gebruik vervolgens os in plaats van openstack:
os server list
os flavor list
macOS / Linux (bash/zsh)
Stap 1
Maak een alias aan en maak deze persistent:
echo 'alias os="openstack --os-cloud transip"' >> ~/.bashrc # gebruik ~/.zshrc voor zsh
source ~/.bashrc # of: source ~/.zshrc
Gebruik vervolgens:
os server list
os image list
CLI-gebruik zonder steeds --os-cloud
Na het instellen van OS_CLOUD of het aanmaken van een alias gebruik je de CLI zonder extra parameter:
openstack server list # met OS_CLOUD
# of:
os server list # met alias/functieBeveiliging: best practices
- Beperk bestandsrechten: gebruik chmod 600 (macOS/Linux) en icacls (Windows) zoals hierboven.
- Gebruik application credentials i.p.v. je accountwachtwoord; roteer de secret periodiek.
- Commits: neem geen clouds.yaml of secrets op in versiebeheer; zet ze in .gitignore.
- Secrets: plaats secrets niet in clouds.yaml. Gebruik omgevingsvariabelen of interactieve prompts.