6. 安装计算服务nova¶
0. 介绍¶
# nova服务是openstack云计算中的最核心服务
# 常用组件
nova-api:接收并响应所有的计算服务请求,管理虚拟机生命周期
nova-compute(多个):真正管理虚拟机的生命周期
nova-scheduler:nova调度器(挑选出最合适的nova-compute来创建虚拟机)
nova-conductor:帮助nova-compute代理修改数据库中虚拟机的状态
nova-network:早期openstack版本管理虚拟机的网络(已弃用,现在用neutron)
nova-consoleauth:为web版的vnc提供访问令牌token
novncproxy:web版vnc客户端
nova-api-metadata:接收来自虚拟机发送的元数据请求
## 1.数据库创库授权
## 2.在keystone创建系统用户关联角色
## 3.在keystone创建服务,注册api
## 4.安装相应服务软件包
## 5.修改相应服务的配置文件
## 6.同步数据库
## 7.启动服务
控制节点安装¶
1.数据库创库授权¶
#controller
#1.登录数据库
mysql
#2.创建数据库(2个)
CREATE DATABASE nova_api;
CREATE DATABASE nova;
#3.创建用户并授权
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';
2.在keystone创建系统用户关联角色¶
## 在keystone创建系统用户(glance,nova,neutron)关联角色
openstack user create --domain default --password NOVA_PASS nova
openstack role add --project service --user nova admin
3.在keystone创建服务,注册api¶
#1.创建服务
openstack service create --name nova --description "OpenStack Compute" compute
#2.注册api
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s
4.安装相应服务软件包¶
yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler -y
5.修改相应服务的配置文件¶
#1.备份
cp /etc/nova/nova.conf{,.bak}
#2.去注释
grep '^[a-Z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
#3.修改
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.11 #这里改成自己的IP!
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:NOVA_DBPASS@controller/nova
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address '$my_ip'
#4.校验
md5sum /etc/nova/nova.conf
## (老师的校验值) 47ded61fdd1a79ab91bdb37ce59ef192 /etc/nova/nova.conf
#5.查看配置文件
cat -n /etc/nova/nova.conf
[root@controller ~]# cat -n /etc/nova/nova.conf
1 [DEFAULT]
2 enabled_apis = osapi_compute,metadata
3 rpc_backend = rabbit
4 auth_strategy = keystone
5 my_ip = 10.0.0.11 #这里改成自己的IP啊!!!!不能和老师一样!
6 use_neutron = True
7 firewall_driver = nova.virt.firewall.NoopFirewallDriver
8 [api_database]
9 connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
10 [barbican]
11 [cache]
12 [cells]
13 [cinder]
14 [conductor]
15 [cors]
16 [cors.subdomain]
17 [database]
18 connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
19 [ephemeral_storage_encryption]
20 [glance]
21 api_servers = http://controller:9292
22 [guestfs]
23 [hyperv]
24 [image_file_url]
25 [ironic]
26 [keymgr]
27 [keystone_authtoken]
28 auth_uri = http://controller:5000
29 auth_url = http://controller:35357
30 memcached_servers = controller:11211
31 auth_type = password
32 project_domain_name = default
33 user_domain_name = default
34 project_name = service
35 username = nova
36 password = NOVA_PASS
37 [libvirt]
38 [matchmaker_redis]
39 [metrics]
40 [neutron]
41 [osapi_v21]
42 [oslo_concurrency]
43 lock_path = /var/lib/nova/tmp
44 [oslo_messaging_amqp]
45 [oslo_messaging_notifications]
46 [oslo_messaging_rabbit]
47 rabbit_host = controller
48 rabbit_userid = openstack
49 rabbit_password = RABBIT_PASS
50 [oslo_middleware]
51 [oslo_policy]
52 [rdp]
53 [serial_console]
54 [spice]
55 [ssl]
56 [trusted_computing]
57 [upgrade_levels]
58 [vmware]
59 [vnc]
60 vncserver_listen = $my_ip
61 vncserver_proxyclient_address = $my_ip
62 [workarounds]
63 [xenserver]
6.同步数据库¶
#忽略警告信息
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
#验证
mysql nova -e "show tables;"
mysql nova_api -e "show tables;"
7.启动服务¶
1.启动服务并开机自启¶
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
2. 查看端口¶
netstat -tunlp|grep nova
[root@controller ~]# netstat -tunlp|grep python2
tcp 0 0 0.0.0.0:9292 0.0.0.0:* LISTEN 46644/python2
tcp 0 0 0.0.0.0:6080 0.0.0.0:* LISTEN 58159/python2
tcp 0 0 0.0.0.0:8774 0.0.0.0:* LISTEN 58155/python2
tcp 0 0 0.0.0.0:8775 0.0.0.0:* LISTEN 58155/python2
tcp 0 0 0.0.0.0:9191 0.0.0.0:* LISTEN 46645/python2
8. 验证¶
openstack compute service list
[root@controller ~]# openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+------------+----------+---------+-------+----------------------------+
| 1 | nova-conductor | controller | internal | enabled | up | 2021-12-03T01:36:34.000000 |
| 2 | nova-consoleauth | controller | internal | enabled | up | 2021-12-03T01:36:35.000000 |
| 3 | nova-scheduler | controller | internal | enabled | up | 2021-12-03T01:36:35.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
计算节点安装¶
9. 安装服务¶
#计算节点上:
#nova-compute调用libvirtd来创建虚拟机
yum install openstack-nova-compute -y
yum install openstack-utils.noarch -y
10. 修改配置文件¶
#1.备份
cp /etc/nova/nova.conf{,.bak}
#2.去注释
grep '^[a-Z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
#3.修改
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.31 #这里改成自己的IP!
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled True
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://controller:6080/vnc_auto.html
#4.校验
md5sum /etc/nova/nova.conf
#(老师的校验值)45cab6030a9ab82761e9f697d6d79e14 /etc/nova/nova.conf
#5.查看
cat -n /etc/nova/nova.conf
[root@compute1 ~]# cat -n /etc/nova/nova.conf
1 [DEFAULT]
2 enabled_apis = osapi_compute,metadata
3 rpc_backend = rabbit
4 auth_strategy = keystone
5 my_ip = 10.0.0.31 #这里改成自己的啊!!!不能和老师的md5一样
6 use_neutron = True
7 firewall_driver = nova.virt.firewall.NoopFirewallDriver
8 [api_database]
9 [barbican]
10 [cache]
11 [cells]
12 [cinder]
13 [conductor]
14 [cors]
15 [cors.subdomain]
16 [database]
17 [ephemeral_storage_encryption]
18 [glance]
19 api_servers = http://controller:9292
20 [guestfs]
21 [hyperv]
22 [image_file_url]
23 [ironic]
24 [keymgr]
25 [keystone_authtoken]
26 auth_uri = http://controller:5000
27 auth_url = http://controller:35357
28 memcached_servers = controller:11211
29 auth_type = password
30 project_domain_name = default
31 user_domain_name = default
32 project_name = service
33 username = nova
34 password = NOVA_PASS
35 [libvirt]
36 [matchmaker_redis]
37 [metrics]
38 [neutron]
39 [osapi_v21]
40 [oslo_concurrency]
41 lock_path = /var/lib/nova/tmp
42 [oslo_messaging_amqp]
43 [oslo_messaging_notifications]
44 [oslo_messaging_rabbit]
45 rabbit_host = controller
46 rabbit_userid = openstack
47 rabbit_password = RABBIT_PASS
48 [oslo_middleware]
49 [oslo_policy]
50 [rdp]
51 [serial_console]
52 [spice]
53 [ssl]
54 [trusted_computing]
55 [upgrade_levels]
56 [vmware]
57 [vnc]
58 enabled = True
59 vncserver_listen = 0.0.0.0
60 vncserver_proxyclient_address = $my_ip
61 novncproxy_base_url = http://controller:6080/vnc_auto.html
62 [workarounds]
63 [xenserver]
## 重启服务
systemctl restart openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
11. 启动服务¶
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service
12. 最终验证¶
#controller
openstack compute service list
# 发现计算节点也加进来了!!!
[root@controller ~]# openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+------------+----------+---------+-------+----------------------------+
| 1 | nova-conductor | controller | internal | enabled | up | 2021-12-03T01:42:07.000000 |
| 2 | nova-consoleauth | controller | internal | enabled | up | 2021-12-03T01:42:00.000000 |
| 3 | nova-scheduler | controller | internal | enabled | up | 2021-12-03T01:42:00.000000 |
| 6 | nova-compute | compute1 | nova | enabled | up | 2021-12-03T01:42:00.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
最后更新:
2022-02-20 04:00:12