Avec les autorisations appropriées, l'utilisateur peut lancer une VM sur un hôte/nœud de calcul spécifié dans OpenStack Mitaka. Tout ce que vous avez à faire est d'utiliser –availability_zone zone:host argument lors de l'exécution openstack server create commande comme indiqué ci-dessous :
$openstack server create --image --flavor m1.tiny --key_name test --availability-zone nova:compute3
Pour effectuer cette opération, vous devez définir les rôles qui peuvent lancer une instance sur un hôte spécifié à l'aide de create:forced_host option dans policy.json sous le dossier de configuration nova. Par défaut, cette option est activée uniquement pour l'administrateur rôle.
Alors, ouvrez le fichier /etc/nova/policy.json fichier et modifiez la ligne ci-dessous :
"compute:create:forced_host": "is_admin:True",
à
"compute:create:forced_host": "",
Ensuite, répertoriez les hôtes de calcul valides à l'aide de la commande ci-dessous :
$ openstack hypervisor list +----+----------------------------+ | ID | Hypervisor Hostname | +----+----------------------------+ | 1 | compute2 | | 2 | compute3 | +----+----------------------------+
Utilisez maintenant le nom du serveur de la liste ci-dessus et forcez une instance sur un hôte spécifique.
$ 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
D'accord! Attendre. La commande ci-dessus avec un message d'erreur :
Policy doesn't allow os_compute_api:servers:create:forced_host to be performed. (HTTP 403) (Request-ID: req-993cd21d-e546-4e68-bad7-3ebc70bfd18a)
Cela montre clairement que la politique définie par l'administrateur ne permet pas à un utilisateur normal de planifier une instance sur un nœud particulier. La solution consiste à créer une règle qui permet même à un utilisateur normal de programmer une machine virtuelle sur un hôte particulier, comme indiqué ci-dessous :
Ouvrez le fichier /etc/nova/policy.json fichier sur le nœud du contrôleur et remplacez-le par ce qui suit :
"os_compute_api:servers:create:forced_host": "rule:admin_api",
à
"os_compute_api:servers:create:forced_host": "",
Et redémarrez nova-api service comme indiqué ci-dessous :
#/etc/init.d/nova-api restart
Remarque :Ces modifications ne doivent pas être apportées aux nœuds de calcul.
Maintenant, en tant qu'utilisateur normal, vous devriez pouvoir démarrer une machine virtuelle sur un hôte particulier.