Con los permisos apropiados, el usuario puede iniciar VM en un host/nodo de cómputo específico en OpenStack Mitaka. Todo lo que necesita hacer es usar –availability_zone zone:host argumento al ejecutar creación de servidor openstack comando como se muestra a continuación:
$openstack server create --image --flavor m1.tiny --key_name test --availability-zone nova:compute3
Para realizar esta operación, debe establecer qué roles pueden iniciar una instancia en un host específico mediante create:forced_host opción en policy.json en la carpeta de configuración de nova. De manera predeterminada, esta opción está habilitada solo para el administrador rol.
Entonces, abra el archivo /etc/nova/policy.json archivo y cambie la siguiente línea:
"compute:create:forced_host": "is_admin:True",
a
"compute:create:forced_host": "",
Luego enumere los hosts de cómputo válidos usando el siguiente comando:
$ openstack hypervisor list +----+----------------------------+ | ID | Hypervisor Hostname | +----+----------------------------+ | 1 | compute2 | | 2 | compute3 | +----+----------------------------+
Ahora use el nombre del servidor de la lista anterior y fuerce una instancia en un host específico.
$ 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
¡De acuerdo! Esperar. El comando anterior con un mensaje de error:
Policy doesn't allow os_compute_api:servers:create:forced_host to be performed. (HTTP 403) (Request-ID: req-993cd21d-e546-4e68-bad7-3ebc70bfd18a)
Muestra claramente que la política establecida por el administrador no permite que un usuario normal programe una instancia en un nodo en particular. La solución es crear una regla que permita incluso a un usuario normal programar una VM en un host en particular, como se muestra a continuación:
Abra el archivo /etc/nova/policy.json archivo en el nodo del controlador y cambie a lo siguiente:
"os_compute_api:servers:create:forced_host": "rule:admin_api",
a
"os_compute_api:servers:create:forced_host": "",
Y reinicia la nova-api servicio como se muestra a continuación:
#/etc/init.d/nova-api restart
Nota:No es necesario realizar estos cambios en los nodos de cálculo.
Ahora, como usuario normal, debería poder iniciar una VM en un host en particular.