OpenStack Client
Der Python OpenStack Client (python-openstackclient) ist das offizielle Kommandozeilen-Tool für die Verwaltung von OpenStack-Umgebungen.
Installation (Linux / Mac)
Erstellen sie eine Umgebung für den OpenStack Client unter ~/.openstack-env
python3 -m venv ~/.openstack-env
Aktivieren sie die soeben erstellte Umgebung
source ~/.openstack-env/bin/activate
Installieren sie python-openstackclient per pip
python3 -m pip install python-openstackclient
Testen sie, ob der Client aufrufbar ist
openstack --version
Verbindung mit clouds.yaml
Die Zugänge zu einer OpenStack Cloud werden durch eine Konfigurationsdatei, der clouds.yaml definiert. Diese wird wird im Verzeichnis ~/.config/openstack/ abgelegt.
Erstellen sie das Verzeichnis - falls dieses noch nicht existiert
~/.config/openstack/
Erstellen sie dort eine Datei mit dem Namen clouds.yaml und folgendem Inhalt
- Bei Verwendung eines lokalen Keystone-Users mit Password
project_a:
auth:
auth_url: <keystone_endpoint>
username: <username>
project_id: <project_id>
project_name: <project_name>
user_domain_name: <user_domain_name>
password: <password>
region_name: RegionOne
interface: public
identity_api_version: 3
- Bei Verwendung eines Application Credentials mit Secret
project_b:
auth_type: v3applicationcredential
auth:
auth_url: <keystone_endpoint>
application_credential_id: <application_credential_id>
application_credential_secret: <application_credential_secret>
region_name: RegionOne
interface: public
identity_api_version: 3
Ersetzen sie die Platzhalter durch die eigentlichen Werte, welche sie aus ihren Zugangsdaten entnehmen. Den Keystone Endpoint sowie die Project-ID finden sie im Horizon unter Project -> API Access.
Nun können sie die Verbindung testen, indem sie alle Server in ihrem Projekt auflisten
openstack server list --os-project project_a
Mit dem Parameter --os-project wählen sie das Projekt aus ihrer clouds.yaml aus. Alternativ können sie dies auch mit einer Umgebungsvariable festlegen.
export OS_PROJECT=project_b
Sicherheitshinweis
Die clouds.yaml enthält sensible Zugangsdaten, welche wie ein Passwort zu behandeln sind. Bitte setzen sie die Berechtigungen der Datei möglichst restriktiv, beispielweise 0600.
Alternativ kann das Passwort bzw. Application Credential Secret auch weggelassen werden. In diesem Fall wird der Wert beim Ausführen von Befehlen abgefragt, oder kann mittels Umgebungsvariablen wie folgt temporär gesetzt werden:
export OS_PASSWORD=mein-geheimes-password