Con le autorizzazioni appropriate, l'utente può avviare VM su un host/nodo di calcolo specificato in OpenStack Mitaka. Tutto quello che devi fare è utilizzare –availability_zone zone:host argomento durante l'esecuzione di creazione server openstack comando come mostrato di seguito:
$openstack server create --image --flavor m1.tiny --key_name test --availability-zone nova:compute3
Per eseguire questa operazione, devi impostare quali ruoli possono avviare un'istanza su un host specifico utilizzando create:forced_host opzione in policy.json nella cartella di configurazione di nova. Per impostazione predefinita, questa opzione è abilitata solo per l'amministratore ruolo.
Quindi, apri il file /etc/nova/policy.json file e cambia la riga sottostante:
"compute:create:forced_host": "is_admin:True",
a
"compute:create:forced_host": "",
Quindi elenca gli host di calcolo validi utilizzando il comando seguente:
$ openstack hypervisor list +----+----------------------------+ | ID | Hypervisor Hostname | +----+----------------------------+ | 1 | compute2 | | 2 | compute3 | +----+----------------------------+
Ora usa il nome del server dall'elenco sopra e forza un'istanza su un host specifico.
$ 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
Ok! Attesa. Il comando precedente con un messaggio di errore:
Policy doesn't allow os_compute_api:servers:create:forced_host to be performed. (HTTP 403) (Request-ID: req-993cd21d-e546-4e68-bad7-3ebc70bfd18a)
Mostra chiaramente che la politica impostata dall'amministratore non consente a un utente normale di pianificare un'istanza su un particolare nodo. La soluzione è creare una regola che consenta anche a un utente normale di pianificare una macchina virtuale su un host particolare, come mostrato di seguito:
Apri il file /etc/nova/policy.json file sul nodo controller e passare a quanto segue:
"os_compute_api:servers:create:forced_host": "rule:admin_api",
a
"os_compute_api:servers:create:forced_host": "",
E riavvia nova-api servizio come mostrato di seguito:
#/etc/init.d/nova-api restart
Nota:non è necessario apportare queste modifiche nei nodi di calcolo.
Ora, come utente normale, dovresti essere in grado di avviare una macchina virtuale su un determinato host.