Ce guide vous aide à configurer le service Nova (calcul) sur l'environnement OpenStak, dans OpenStack, le service de calcul (nœud) héberge les systèmes de cloud computing. Le calcul OpenStack est un élément majeur de l'IaaS, il interagit avec KeyStone pour l'authentification, le service d'image pour le disque et les images, et le tableau de bord pour l'interface utilisateur et administrative.
OpenStack Compute peut évoluer horizontalement sur du matériel standard et télécharger des images pour lancer une instance informatique.
Installer et configurer le nœud du contrôleur :
Nous allons configurer le service Compute sur le nœud du contrôleur, nous connecter au serveur MySQL en tant qu'utilisateur root.
# mysql -u root -p
Créez la base de données nova.
CREATE DATABASE nova;
Accordez une autorisation appropriée à la base de données nova.
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
Remplacez "mot de passe ” avec un mot de passe approprié. Quittez MySQL.
Chargez vos informations d'identification d'administrateur à partir du script d'environnement.
# source admin-openrc.sh
Créez l'utilisateur nova pour créer des informations d'identification de service.
# openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | a25d5cdc7efa4375b0907dd615eebde0 | | name | nova | +-----------+----------------------------------+
Ajoutez le rôle d'administrateur à l'utilisateur nova.
# openstack role add --project service --user nova admin
Créez l'entité de service nova.
# openstack service create --name nova --description "Nova" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Nova | | enabled | True | | id | ad302b8a4e884decb8ed0f4fdf319ba1 | | name | nova | | type | compute | +-------------+----------------------------------+
Créez le point de terminaison de l'API de service nova.
# openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 3d7bba2b7c3446e7975f8b74c0cab712 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | 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 | 240d4430f1c442439c3835c12abf7533 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | 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 | 758d41f12fff4617bc7e4c12bd4502fc | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+
Installez et configurez les composants du contrôleur de calcul :
Installez les packages ci-dessous sur le nœud du contrôleur.
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
Modifiez le fichier /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Modifiez les paramètres ci-dessous et assurez-vous de placer une entrée dans les sections appropriées. Si vous ne trouvez pas de section existante pour les entrées ci-dessous, vous devrez peut-être ajouter ces sections particulières au fichier.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Controller Node my_ip = 192.168.12.21 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 enabled_apis=osapi_compute,metadata [vnc] ## Management IP of Controller Node vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip [database] connection = mysql+pymysql://nova:password@controller/nova ## Replace "password" with the password you chose for nova database [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [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 = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
Remplir la base de données Compute.
# su -s /bin/sh -c "nova-manage db sync" nova
Redémarrez les services de calcul.
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
Supprimer le fichier de base de données SQLite.
# rm -f /var/lib/nova/nova.sqlite
Installer et configurer Nova (sur le nœud de calcul) :
Maintenant, nous allons installer et configurer le service Compute sur un nœud de calcul, ce service prend en charge plusieurs hyperviseurs pour déployer des instances (VM). Notre nœud de calcul utilise l'hyperviseur QEMU avec l'extension KVM pour prendre en charge la virtualisation accélérée par le matériel.
Vérifiez si votre ordinateur prend en charge la virtualisation matérielle.
# egrep -c '(vmx|svm)' /proc/cpuinfo 1
Si la commande renvoie la valeur 1 ou plus, votre nœud de calcul prend en charge la virtualisation.
Assurez-vous d'avoir activé le référentiel OpenStack Kilo sur Compute Node, ou suivez les étapes ci-dessous pour l'activer.
Installez le porte-clés et le référentiel de l'archive Ubuntu Cloud.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Mettez à niveau votre système.
# apt-get update && apt-get dist-upgrade
Installez les packages suivants sur chaque nœud de calcul.
# apt-get install nova-compute sysfsutils
Modifiez /etc/nova/nova-compute.conf pour activer QEMU.
# vi /etc/nova/nova-compute.conf
Remplacez virt_type=kvm par qemu dans la section libvirt.
[libvirt] ... virt_type = qemu
Modifiez le fichier /etc/nova/nova.conf.
# vi /etc/nova/nova.conf
Modifiez les paramètres ci-dessous et assurez-vous de placer une entrée dans les sections appropriées.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Compute Node my_ip = 192.168.12.22 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 [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [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 = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller ## Replace controller with your controller hostname [oslo_concurrency] lock_path = /var/lib/nova/tmp
Redémarrez le service de calcul.
# service nova-compute restart
Supprimer le fichier de base de données SQLite.
# rm -f /var/lib/nova/nova.sqlite
Vérifier l'opération :
Chargez les informations d'identification d'administrateur sur le nœud de contrôleur.
# source admin-openrc.sh
Répertoriez les composants du service de calcul à vérifier, exécutez la commande suivante sur le nœud de contrôleur.
# nova service-list +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-consoleauth | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:25.000000 | - | | 2 | nova-cert | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 3 | nova-conductor | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:28.000000 | - | | 4 | nova-scheduler | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 5 | nova-compute | compute.itzgeek.local | nova | enabled | up | 2015-11-25T14:11:30.000000 | - | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
Vous devriez obtenir une sortie avec quatre composants de service activés sur le nœud de contrôleur et un composant de service sur le nœud de calcul.
Répertoriez les images dans le catalogue du service d'imagerie pour vérifier la connectivité entre le service de calcul et le service d'imagerie.
# nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | b19c4522-df31-4331-a2e1-5992abcd4ded | Ubuntu_14.04-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
C'est tout !!!, vous avez configuré avec succès le service Nova. Ensuite, configurez OpenStack Networking (Neutron).