Cette section décrit comment installer et configurer le service Compute , nom de code nova, sur le contrôleur.
Avant d’installer et configurer le service Compute, vous devez créer les bases de données, les crédentiels de service et les endpoints API.
Pour créer les bases de données, dérouler ces étapes :
Utilisez le client d’accès à la base de données pour vous connecter au serveur de base de données en tant qu’utilisateur root:
$ mysql -u root -p
Créer les bases de données nova_api et nova :
CREATE DATABASE nova_api;
CREATE DATABASE nova;
Octroyer les droits d’accès nécessaires aux bases de données :
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
Remplacer NOVA_DBPASS par un mot de passe approprié.
Quitter le client d’accès à la base de données.
Sourcer les crédentiels admin pour accéder aux commandes en ligne réservées à l’administrateur :
$ . admin-openrc
Pour créer les crédentiels du service, réalisez les étapes suivantes :
Créer l’utilisateur nova :
$ openstack user create --domain default \
--password-prompt nova
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled | True |
| id | 8c46e4760902464b889293a74a0c90a8 |
| name | nova |
+-----------+----------------------------------+
Ajouter le rôle admin à l’utilisateur nova :
$ openstack role add --project service --user nova admin
Note
Cette commande ne produit aucune sortie.
Créer l’entité de service nova :
$ openstack service create --name nova \
--description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | 060d59eac51b4594815603d75a00aba2 |
| name | nova |
| type | compute |
+-------------+----------------------------------+
Créer les endpoints API pour le service Compute :
$ openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field | Value |
+--------------+-------------------------------------------+
| enabled | True |
| id | 3c1caa473bfe4390a11e7177894bcc7b |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | e702f6f497ed42e6a8ae3ba2e5871c78 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+
$ openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field | Value |
+--------------+-------------------------------------------+
| enabled | True |
| id | e3c918de680746a586eac1f2d9bc10ab |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | e702f6f497ed42e6a8ae3ba2e5871c78 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+
$ openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field | Value |
+--------------+-------------------------------------------+
| enabled | True |
| id | 38f7af91666a47cfb97b4dc790b94424 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | e702f6f497ed42e6a8ae3ba2e5871c78 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+
Note
Les fichiers de configuration par défaut diffèrent d’une distribution à l’autre. Vous pouvez être amené à ajouter ces sections et options plutôt que de modifier des sections et options existantes. De plus, une ellipse (...) dans les extraits de configuration indique d’éventuelles options de configuration par défaut que vous devez conserver.
Installer les packages :
# yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler
Editer le fichier /etc/nova/nova.conf et effectuer les actions suivantes :
Dans la section [DEFAULT], activer uniquement les APIs Compute et Metadata :
[DEFAULT]
...
enabled_apis = osapi_compute,metadata
Dans les sections [api_database] et [database], configurer l’accès à la base de données :
[api_database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
Remplacer NOVA_DBPASS par le mot de passe choisi pour les bases de données Compute.
Dans les sections [DEFAULT] et [oslo_messaging_rabbit], configurer l’accès au service de files de messages RabbitMQ:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Remplacez RABBIT_PASS par le mot de passe que vous avez attribué au compte openstack dans RabbitMQ.
Dans les sections [DEFAULT] et [keystone_authtoken], configurer l’accès au service d’Identité :
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS
Remplacer NOVA_PASS par le mot de passe choisi pour l’utilisateur nova dans le service d’Identité.
Note
Commenter ou supprimer toute autre option dans la section [keystone_authtoken].
Dans la section [DEFAULT], configurer l’option my_ip pour utiliser l’adresse IP de l’interface d’administration du contrôleur:
[DEFAULT]
...
my_ip = 10.0.0.11
Dans la section [DEFAULT], activer le support du service Réseau :
[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
Note
Par défaut, Compute utilise un driver de firewall interne. Comme le service Réseau inclut un driver de firewall, vous devez désactiver le driver firewall Compute en utilisant le driver firewall nova.virt.firewall.NoopFirewallDriver.
Dans la section [vnc], configurer le proxy VNC pour utiliser l’adresse IP de l’interface de management du contrôleur :
[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
Dans la section [glance], configurer l’emplacement de l’API du service Image :
[glance]
...
api_servers = http://controller:9292
Dans la section [oslo_concurrency], configurer le chemin du verrou :
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp
Peupler les bases de données du service Compute.
# su -s /bin/sh -c "nova-manage api_db sync" nova
# su -s /bin/sh -c "nova-manage db sync" nova
Note
Ignorer les éventuels messages obsolètes.
Démarrer les services Compute et les configurer pour être lancés au démarrage du système :
# systemctl enable openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
# systemctl start openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.