Mit den entsprechenden Berechtigungen kann der Nutzer eine VM auf einem bestimmten Host/Rechenknoten in OpenStack Mitaka starten. Sie müssen lediglich –availability_zone zone:host verwenden -Argument beim Ausführen von openstack server create Befehl wie unten gezeigt:
$openstack server create --image --flavor m1.tiny --key_name test --availability-zone nova:compute3
Um diesen Vorgang auszuführen, müssen Sie mithilfe von create:forced_host festlegen, welche Rollen eine Instanz auf einem bestimmten Host starten können Option in policy.json im nova-Konfigurationsordner. Standardmäßig ist diese Option nur für den Administrator aktiviert Rolle.
Öffnen Sie also die Datei /etc/nova/policy.json Datei und ändern Sie die folgende Zeile:
"compute:create:forced_host": "is_admin:True",
zu
"compute:create:forced_host": "",
Listen Sie dann die gültigen Compute-Hosts mit dem folgenden Befehl auf:
$ openstack hypervisor list +----+----------------------------+ | ID | Hypervisor Hostname | +----+----------------------------+ | 1 | compute2 | | 2 | compute3 | +----+----------------------------+
Verwenden Sie nun den Namen des Servers aus der obigen Liste und erzwingen Sie eine Instanz auf einem bestimmten Host.
$ openstack server create --flavor m1.small --image cirros --key-name mykey --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --security-group default --availability-zone nova:compute3 ubuntu1-on-compute3
In Ordnung! Warten. Der obige Befehl mit einer Fehlermeldung:
Policy doesn't allow os_compute_api:servers:create:forced_host to be performed. (HTTP 403) (Request-ID: req-993cd21d-e546-4e68-bad7-3ebc70bfd18a)
Es zeigt deutlich, dass die vom Administrator festgelegte Richtlinie einem normalen Benutzer nicht erlaubt, eine Instanz auf einem bestimmten Knoten zu planen. Die Lösung besteht darin, eine Regel zu erstellen, die es sogar einem normalen Benutzer ermöglicht, eine VM auf einem bestimmten Host zu planen, wie unten gezeigt:
Öffnen Sie die Datei /etc/nova/policy.json Datei auf dem Controller-Knoten und ändern Sie sie wie folgt:
"os_compute_api:servers:create:forced_host": "rule:admin_api",
zu
"os_compute_api:servers:create:forced_host": "",
Und starten Sie die nova-api neu Service wie unten gezeigt:
#/etc/init.d/nova-api restart
Hinweis:Diese Änderungen müssen nicht in Rechenknoten vorgenommen werden.
Jetzt sollten Sie als normaler Benutzer in der Lage sein, eine VM auf einem bestimmten Host zu starten.