- Production Ready OpenStack:Recipes for Successful Environments
- Arthur Berezin
- 871字
- 2021-07-09 21:45:15
Installing Nova – Compute service
Nova-Compute service implements the compute service, which is the main part of an IaaS cloud. Nova is responsible for launching and managing instance of virtual machines. The compute service scales horizontally on standard hardware.
Getting ready
In our environment, we deploy a Controller/Computes layout. In the first step, we need to configure management services on the controller node and only then to add compute nodes to the environment. On the controller node, first we need to prepare the database, create a Keystone account, then open the needed firewall ports.
Run the following steps on the controller node!
- Access the database instance using MySQL command:
[root@controller ~]# mysql -u root -p
- Create Nova database:
MariaDB [(none)]> CREATE DATABASE nova_db;
- Create Nova credentials and allow access:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_db.* TO 'nova_db_user'@'localhost' IDENTIFIED BY 'nova_db_password'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_db.* TO 'nova_db_user'@'%' IDENTIFIED BY 'nova_db_password';
- Create Nova database tables:
[root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova
- Create Nova service account in Keystone:
[root@controller ~]# keystone user-create --name=nova --pass=nova_password [root@controller ~]# keystone user-role-add --user=nova --tenant=services --role=admin
- Create an endpoint for Nova
[root@controller ~]# keystone endpoint-create --service=nova--publicurl=http://10.10.0.1:8774/v2/%\(tenant_id\) |--internalurl=http://10.10.0.1:8774/v2/%\(tenant_id\s --adminurl=http://10.10.0.1:8774/v2/%\(tenant_id\)s
- Add firewall rules:
[root@controller ~]# firewall-cmd --permanent --add-port=8774/tcp [root@controller ~]# firewall-cmd --permanent --add-port=6080/tcp [root@controller ~]# firewall-cmd --permanent --add-port=6081/tcp [root@controller ~]# firewall-cmd --permanent --add-port=5900-5999/tcp
- Reload firewall rules to take effect:
[root@controller ~]# firewall-cmd --reload
How to do it...
Follow these steps to configure Nova-Compute service:
Using openstack-config
command, we need to set the connection to the database:
[root@controller ~]# openstack-config --set /etc/nova/nova.conf database connection mysql://nova_db_user:nova_db_password@controller/nova_db [root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova
Set connection to RabbitMQ message broker:
[root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit [root@controller ~]# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host 10.10.0.1
- Set local IP address of the controller:
# openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.10.0.1 # openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 10.10.0.1 # openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 10.10.0.1
- Configure Keystone as an authentication method:
# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://10.10.0.1:5000 # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host 10.10.0.1 # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357 # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name services # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password nova_password
Using systemctl command, we can start and enable the service so that it starts after reboot:
[root@controller ~]# systemctl start openstack-nova-api [root@controller ~]# systemctl start openstack-nova-cert [root@controller ~]# systemctl start openstack-nova-consoleauth [root@controller ~]# systemctl start openstack-nova-scheduler [root@controller ~]# systemctl start openstack-nova-conductor [root@controller ~]# systemctl start openstack-nova-novncproxy [root@controller ~]# systemctl enable openstack-nova-api [root@controller ~]# systemctl enable openstack-nova-cert [root@controller ~]# systemctl enable openstack-nova-consoleauth [root@controller ~]# systemctl enable openstack-nova-scheduler [root@controller ~]# systemctl enable openstack-nova-conductor [root@controller ~]# systemctl enable openstack-nova-novncproxy
On successful Nova installation and configuration, you should be able to execute this:
[root@el7-icehouse-controller ~(keystone_admin)]# nova image-list
+-------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +-------------------+---------------------+--------+--------+ | eb9c6911-... | cirros-0.3.2-x86_64 | ACTIVE | | +-------------------+---------------------+--------+--------+
After the controller node is successfully installed and configured, we may add additional compute nodes to the OpenStack environment.
Now we can proceed and configure the compute services on the compute node.
Run the following steps on the compute node!
Configure the Nova database connection:
[root@compute1 ~]# openstack-config --set /etc/nova/nova.conf database connection mysql://nova_db_user:nova_db_password@controller/nova_db
Configure Nova to access the message broker:
[root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host 10.10.0.1
- Edit
/etc/nova/nova.conf
for the compute node to use Keystone authentication:[root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000 [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host controller [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357 [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password nova_password
- Configure the remote console for instances terminal access:
[root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.200.159 [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DE \FAULT vncserver_listen 0.0.0.0 [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.200.159 [root@compute1 ~]# openstack-config --set /etc/nova/nova.conf \DEFAULT novncproxy_base_url http://controller:6080/vnc_auto.html
- Configure which glance service to use to retrieve images:
[root@compute1 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT glance_host controller
- LabVIEW Graphical Programming Cookbook
- Linux核心技術從小白到大牛
- 深入淺出Spring Boot 2.x
- iOS開發實戰:從零基礎到App Store上架
- 精通網絡視頻核心開發技術
- Selenium Testing Tools Cookbook(Second Edition)
- 劍指大數據:企業級數據倉庫項目實戰(在線教育版)
- Building Machine Learning Systems with Python(Second Edition)
- Machine Learning With Go
- MINECRAFT編程:使用Python語言玩轉我的世界
- QGIS 2 Cookbook
- 計算機應用基礎案例教程(第二版)
- Pandas入門與實戰應用:基于Python的數據分析與處理
- Testing Practitioner Handbook
- Vue.js項目開發實戰