Cette section décrit comme installer et configurer le service Compute , nom de code nova, sur le nœud contrôleur.
Avant d’installer et configurer le service Compute, vous devez créer une base de données, des credentials de service, et des endpoints API.
Pour créer la base de données, compléter ces étapes :
Utiliser le client d’accès à la base de données pour se connecter au serveur de base en tant qu’utilisateur root:
$ mysql -u root -p
Créer la base de données nova:
CREATE DATABASE nova;
Octroyer les bons droits à la base de données ``nova`:
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 l’accès client de la base de données.
Sourcer les accréditations admin pour obtenir l’accès aux commandes en ligne spécial-admin:
$ source admin-openrc.sh
Pour créer les credentials du service, suivre 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 | default |
| 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 points de terminaison API pour le service de Compute:
$ openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2/%\(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/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2/%\(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/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2/%\(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/%(tenant_id)s |
+--------------+-----------------------------------------+
Note
Les fichiers de configuration par défaut diffèrent par distribution. Vous pouvez être amenés à ajouter ces sections et options plutôt que de modifier des sections et options existantes. De plus, une ellipse (...) dans l’extrait de configuration indique d’éventuelles options de configuration par défaut que vous devriez conserver.
Installez les paquets:
# zypper install openstack-nova-api openstack-nova-scheduler \
openstack-nova-cert openstack-nova-conductor \
openstack-nova-consoleauth openstack-nova-novncproxy \
python-novaclient iptables
Editer le fichier /etc/nova/nova.conf et effectuer les modifications suivantes:
Dans la section [database], configurez l’accès à la base de données:
[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
Remplacer NOVA_DBPASS par le mot de passe choisi pour la base de données Compute.
Dans les sections [DEFAULT] et [oslo_messaging_rabbit], configurer l’accès à la file de message RabbitMQ:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Remplacer RABBIT_PASS par le mot de passe choisi pour le compte openstack dans RabbitMQ.
Dans la section [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
auth_plugin = password
project_domain_id = default
user_domain_id = 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 de management du nœud contrôleur:
[DEFAULT]
...
my_ip = 10.0.0.11
Dans la section [DEFAULT], activer le support du service de Réseau:
[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
Note
Par défaut, Compute utilise un service de firewall interne. Comme le service Réseau inclut un service de firewall, vous devez désactiver le service de 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 nœud contrôleur:
[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
Dans la section [glance], configurer l’emplacement du service d’Image:
[glance]
...
host = controller
Dans la section [oslo_concurrency], configurer le chemin des verrous:
[oslo_concurrency]
...
lock_path = /var/run/nova
Dans la section [DEFAULT], desactiver EC2 API:
[DEFAULT]
...
enabled_apis=osapi_compute,metadata
(Optionnel) Pour faciliter la résolution des problèmes, activer la verbosité des logs dans la section [DEFAULT] :
[DEFAULT]
...
verbose = True
Démarrer les services Compute et les configurer pour démarrer au démarrage du système:
# systemctl enable openstack-nova-api.service \
openstack-nova-cert.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-cert.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.