目录
一、创建数据库
二、安装配置组件
三、安装配置组件(计算节点)
四、将计算节点添加到单元数据库(控制节点)
五、验证
一、创建数据库
以下操作在控制节点实施
1.创建数据库
①.授予访问权限
②.刷新数据库
[root@controller ~]# mysql -u root -p
MariaDB [(none)]> create database nova_api;
MariaDB [(none)]> create database nova;
MariaDB [(none)]> create database nova_cell0;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
IDENTIFIED BY '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
Bye
2.获取admin凭证以访问OpenStack cli
[root@controller ~]# . admin-openrc.sh
3.创建计算服务
①.创建用户nova,密码(123456)
②.将角色nova添加到用户admin
③.创建服务实体nova
[root@controller ~]# openstack user create --domain default --password-prompt nova
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | baf8fc63f11849929044ee0196097ce0 |
| name | nova |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --project service --user nova admin
[root@controller ~]# openstack service create --name nova \
--description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | b92181ba1d3c4fa7934c1e0a94570fc3 |
| name | nova |
| type | compute |
+-------------+----------------------------------+
4.创建api服务终结点
[root@controller ~]# openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 51131f7419f64caab06c4355a67f0af3 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | b92181ba1d3c4fa7934c1e0a94570fc3 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 1d9b434da01b496aa4215a595552d363 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | b92181ba1d3c4fa7934c1e0a94570fc3 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 86932b2e443a497ea3cda1978e3f2883 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | b92181ba1d3c4fa7934c1e0a94570fc3 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1 |
+--------------+----------------------------------+
二、安装配置组件
1.安装软件包
[root@controller ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler -y
2.编辑配置文件
①./etc/nova/nova.conf
#备份配置文件并删除其中的空余部分
[root@controller ~]# cd /etc/nova/ && cp nova.conf nova.conf.source && cat nova.conf.source | grep -Ev "^#|^$" > nova.conf
[root@controller nova]# vim nova.conf
#启用计算和元数据API、配置消息队列访问、配置管理接口IP地址、启用对网络服务的支持
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123456@controller:5672/
my_ip = 10.0.0.20
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
#配置数据库访问
[api_database]
connection = mysql+pymysql://nova:123456@controller/nova_api
[database]
connection = mysql+pymysql://nova:123456@controller/nova
#配置标识服务访问
[api]
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123456
#配置vnc接口的地址
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
#配置影像服务 API 的位置
[glance]
api_servers = http://controller:9292
#配置锁定路径
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
#配置对放置服务的访问权限(配置密码:123456)
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = 123456
3.填充数据库
①.填充数据库nova-api
②.注册数据库cell0
③.创建单元格cell1
④.填充nova数据库
⑤.验证 nova cell0 和 cell1
[root@controller ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
8b9f801a-9115-4b82-aa54-7f6ac661c833
[root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
+-------+--------------------------------------+------------------------------------------+-------------------------------------------------+----------+
| Name | UUID | Transport URL | Database Connection | Disabled |
+-------+--------------------------------------+------------------------------------------+-------------------------------------------------+----------+
| cell0 | 00000000-0000-0000-0000-000000000000 | none:/ | mysql+pymysql://nova:****@controller/nova_cell0 | False |
| cell1 | 8b9f801a-9115-4b82-aa54-7f6ac661c833 | rabbit://openstack:****@controller:5672/ | mysql+pymysql://nova:****@controller/nova | False |
+-------+--------------------------------------+------------------------------------------+-------------------------------------------------+----------+
4.启动计算服务并将其配置自启动
查看服务状态是否启动成功
[root@controller ~]# systemctl enable \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-api.service to /usr/lib/systemd/system/openstack-nova-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-scheduler.service to /usr/lib/systemd/system/openstack-nova-scheduler.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-conductor.service to /usr/lib/systemd/system/openstack-nova-conductor.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-novncproxy.service to /usr/lib/systemd/system/openstack-nova-novncproxy.service.
[root@controller ~]# systemctl start \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
[root@controller ~]# systemctl status \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
三、安装配置组件(计算节点)
1.配置OpenStack yum源文件
[root@computer ~]# cat >>/etc/yum.repos.d/openstack.repo<<EOF
[openstack-train]
name=openstack-train
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-train/
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
gpgcheck=1
EOF
2.安装软件包
[root@computer ~]# yum install openstack-nova-compute -y
3.编辑配置文件
①.备份配置文件并删除其中的空余部分
②.编辑配置文件/etc/nova/nova.conf
[root@computer ~]# cd /etc/nova/ && cp nova.conf nova.conf.source && cat nova.conf.source | grep -Ev "^#|^$" > nova.conf
[root@computer nova]# vim nova.conf
#启用计算和元数据API(配置密码"123456")、配置IP地址、启用对网络服务的支持
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123456@controller
my_ip = 10.0.0.10
#配置标识服务访问
[api]
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123456
#启用配置远程控制台vnc访问
[vnc]
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
#配置影像服务 API 的位置
[glance]
api_servers = http://controller:9292
#配置锁定路径
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
#配置放置 API:[placement]
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = 123456
4.确定计算节点是否支持虚拟机的硬件加速
[root@computer ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
4
5.启动计算服务
[root@computer ~]# systemctl start libvirtd.service openstack-nova-compute.service
[root@computer ~]# systemctl enable libvirtd.service openstack-nova-compute.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-compute.service to /usr/lib/systemd/system/openstack-nova-compute.service.
四、将计算节点添加到单元数据库(控制节点)
1.获取admin凭据以访问OpenStack cli
[root@controller ~]# . admin-openrc.sh
2.然后确认数据库中存在计算主机
[root@controller ~]# openstack compute service list --service nova-compute
+----+--------------+----------+------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+--------------+----------+------+---------+-------+----------------------------+
| 16 | nova-compute | computer | nova | enabled | up | 2022-07-21T17:50:08.000000 |
+----+--------------+----------+------+---------+-------+----------------------------+
3.发现计算主机
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting computes from cell 'cell1': 8b9f801a-9115-4b82-aa54-7f6ac661c833
Checking host mapping for compute host 'computer': 6b733901-e714-453c-880d-d578b0452c9a
Creating host mapping for compute host 'computer': 6b733901-e714-453c-880d-d578b0452c9a
Found 1 unmapped computes in cell: 8b9f801a-9115-4b82-aa54-7f6ac661c833
五、验证
以下操作在控制节点实施
1.列出服务组件以验证每个进程的成功启动和注册
[root@controller ~]# openstack compute service list
+----+----------------+------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+----------------+------------+----------+---------+-------+----------------------------+
| 8 | nova-conductor | controller | internal | enabled | up | 2022-07-21T17:52:18.000000 |
| 13 | nova-scheduler | controller | internal | enabled | up | 2022-07-21T17:52:14.000000 |
| 16 | nova-compute | computer | nova | enabled | up | 2022-07-21T17:52:18.000000 |
+----+----------------+------------+----------+---------+-------+----------------------------+
2.列出身份服务中的 API 终端节点以验证与身份服务的连接
[root@controller ~]# openstack catalog list
+-----------+-----------+-----------------------------------------+
| Name | Type | Endpoints |
+-----------+-----------+-----------------------------------------+
| placement | placement | RegionOne |
| | | internal: http://controller:8778 |
| | | RegionOne |
| | | admin: http://controller:8778 |
| | | RegionOne |
| | | public: http://controller:8778 |
| | | |
| nova | compute | RegionOne |
| | | internal: http://controller:8774/v2.1 |
| | | RegionOne |
| | | public: http://controller:8774/v2.1 |
| | | RegionOne |
| | | admin: http://controller:8774/v2.1 |
| | | |
| glance | image | RegionOne |
| | | public: http://controller:9292 |
| | | RegionOne |
| | | admin: http://controller:9292 |
| | | RegionOne |
| | | internal: http://controller:9292 |
| | | |
| keystone | identity | RegionOne |
| | | internal: http://controller:5000/v3/ |
| | | RegionOne |
| | | admin: http://controller:5000/v3/ |
| | | RegionOne |
| | | public: http://controller:5000/v3/ |
| | | |
+-----------+-----------+-----------------------------------------+
3.列出影像服务中的影像以验证与影像服务的连接
[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| e82bb244-644a-4d9c-8739-053f55328634 | cirros | active |
+--------------------------------------+--------+--------+
4.检查单元和放置 API 是否正常工作
[root@controller ~]# nova-status upgrade check
+--------------------------------+
| Upgrade Check Results |
+--------------------------------+
| Check: Cells v2 |
| Result: Success |
| Details: None |
+--------------------------------+
| Check: Placement API |
| Result: Success |
| Details: None |
+--------------------------------+
| Check: Ironic Flavor Migration |
| Result: Success |
| Details: None |
+--------------------------------+
| Check: Cinder API |
| Result: Success |
| Details: None |
+--------------------------------+