文章目录
- 1. 创建nova数据库并授权
- 2.创建Nova服务凭证 先设置环境变量
- 3.创建nova服务的API端点
- 4. 创建放置服务(Placement)凭证
- 5. 创建放置服务端点
- 6. 安装Nova
- 7. 编辑/etc/nova/nova.conf配置文件
- 1)在[default]中仅启用compute和metadata API
- 2)在[api_database]和[database]中配置数据库访问
- 3)在[default]中配置RabiitMQ消息队列访问
- 4)[api]和[keystone_authtoken]中配置身份服务访问
- 5)在[default]中使用my_ip参数配置控制节点的管理接口ip地址
- 6)在[default]中启用对网络服务的支持
- 7)在[vnc]中配置VNC代理使用控制节点的管理接口IP地址
- 8)在[glance]中配置镜像服务API的位置
- 9)在[oslo_concurrency]中配置锁定路径(lock path)
- 10)[placement]节中配置Placement API
- 11)将如下配置添加到/etc/httpd/conf.d/00-nova-placement-api.conf中(Placement安装失败,没有这个文件)
- (1)重新安装Placement
- 12)重启httpd服务使上述设置生效
- 8. 初始化数据库
- 9. 启动设置
17版本之前,只要有placement,名字为openstack-nova-placement
18版本,只要有placement,名字为openstack-placement
1. 创建nova数据库并授权
mysql -u root -p
CREATE DATABASE nova_api
CREATE DATABASE nova
CREATE DATABASE nova_cell0
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘nova’;
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’%’ IDENTIFIED BY ‘nova’;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘nova’;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’ IDENTIFIED BY ‘nova’;
GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘nova’;
GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@’%’ IDENTIFIED BY ‘nova’;
2.创建Nova服务凭证 先设置环境变量
1)设置环境变量
可以将以下配置写入 /etc/profie文件中,也可以写入一个脚本文件中
①写入环境变量中
[root@openstack2 ~]# vi /etc/profile
export OS_USERNAME=admin
export OS_PASSWORD=keystone
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://192.168.239.102:5000/v3
export OS_IDENTITY_API_VERSION=3
:wq保存退出
[root@openstack2 ~]# source /etc/profile
②编写一个脚本文件
[root@openstack2 ~]# vi admin-openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=keystone
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://192.168.239.102:5000/v3
export OS_IDENTITY_API_VERSION=3
:wq保存退出
[root@openstack2 ~]# . admin-openrc.sh
2)创建nova用户
openstack user create domain default passwordprompt nova
(密码设置为nova)
The request you have made requires authentication. (HTTP 401)
(Request-ID: req-2f140b5d-4191-4d94-a8a1-7bb52cfe0f15)
如果在创建nova用户时出现以上报错,显示需要验证
[root@openstack2 log]# cd /var/log/keystone/
[root@openstack2 keystone]# cat keystone.log
找到最底下最新的日志信息,发现授权失败
解决办法:
将admin-openrc.sh中的export OS_PASSWORD=nova密码改为keystone
[root@openstack2 ~]# . admin-openrc.sh
再进行创建用户即可
创建后可以查看用户列表:
[root@openstack2 ~]# openstack user list
表示创建成功
3)将管理员admin角色授予nova用户和sevice项目
openstack role add project service user nova admin
4)创建nova的服务入口
openstack service create --name nova --description “Openstack Compute” compute
3.创建nova服务的API端点
openstack endpoint create --region RegionOne compute public http://192.168.239.102:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://192.168.239.102:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://192.168.239.102:8774/v2.1
4. 创建放置服务(Placement)凭证
1)创建placement用户
openstack user create --domain default --password-prompt placement
(密码设置为nova)
2)将管理员admin角色授予placement用户和service项目
openstack role add --project service --user placement admin
3)创建Placement API入口
openstack service create --name placement --description “Placement API” placement
5. 创建放置服务端点
openstack endpoint create --region RegionOne placement public http://192.168.239.102:8778
openstack endpoint create --region RegionOne placement internal http://192.168.239.102:8778
openstack endpoint create --region RegionOne placement admin http://192.168.239.102:8778
6. 安装Nova
yum install -y openstack-nova-api
yum install -y openstack-nova-conductor
yum install -y openstack-nova-console
yum install -y openstack-nova-novncproxy
yum install -y openstack-nova-scheduler
yum install -y openstack-nova-placement-api (会安装失败)
7. 编辑/etc/nova/nova.conf配置文件
1)在[default]中仅启用compute和metadata API
vi /etc/nova/nova.conf
enaled_apis = osapi_compute,metadata
:/enabled_apis 查找
2)在[api_database]和[database]中配置数据库访问
[api_database]
connection=mysql+pymysql://nova:NOVA_DBPASS@IP地址/nova_api
NOVA_DBPASS: nova密码(nova)
[database]
connection=mysql+pymysql://nova:NOVA_DBPASS@IP地址/nova
3)在[default]中配置RabiitMQ消息队列访问
[DEFAULT]
transport_url=rabbit://openstack:openstack@192.168.239.102
4)[api]和[keystone_authtoken]中配置身份服务访问
[keystone_authtoken]
auth_uri=http://192.168.239.102:5000/v3
memcached_servers=192.168.239.102:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=nova (NOVA_PASSWD)
5)在[default]中使用my_ip参数配置控制节点的管理接口ip地址
my_ip=MANAGEMENT_INTERFACE_IP_ADDRESS
6)在[default]中启用对网络服务的支持
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
注意:
在默认情况下,计算机服务使用自己的防火墙驱动。而网络服务也包括一个防火墙驱动,因此必须使用nova.virt.firewall.NoopFirewallDriver来禁用计算机服务的防火墙驱动
7)在[vnc]中配置VNC代理使用控制节点的管理接口IP地址
8)在[glance]中配置镜像服务API的位置
[glance]
api_servers=http://192.168.239.102:9292
9)在[oslo_concurrency]中配置锁定路径(lock path)
lock_path=/var/lib/nova/tmp
10)[placement]节中配置Placement API
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://192.168.239.102:5000/v3
username=placement
password=nova (设置的placement密码)
11)将如下配置添加到/etc/httpd/conf.d/00-nova-placement-api.conf中(Placement安装失败,没有这个文件)
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow, deny
Allow from all
</IfVersion>
</Directory>
(1)重新安装Placement
https://docs.openstack.org/placement/train/install/install-rdo.html
1) 创建Placement数据库
CREATE DATABASE placement;
2)进行授权
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'placement';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement';
第4步和第5步前面已经配置过
3)安装placement
yum install openstack-placement-api
4)配置 /etc/placement/placement.conf文件
[placement_database]
# ...
connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
#PLACEMENT_DBPASS为placement数据库授权密码
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = PLACEMENT_PASS
5)初始化placement数据库
placement-manage db sync
6)由于软件包缺陷,必须将以下配置添加到/etc/httpd/conf.d/00-nova-placement-api.conf文件钟,允许访问Placement API
12)重启httpd服务使上述设置生效
systemctl restart httpd
8. 初始化数据库
初始化nova-api数据库
nova-manage api_db sync
注册cell0数据库
nova-manage cell_v2 map_cell0
创建cell单元
nova-manage cell_v2 create_cell --name=cell --verbose
初始化nova数据库
nova-manage db sync
验证nova的cell0和cell已经正确注册
nova-manage cell_v2 list_cells
在数据库中查看是否生成数据表
9. 启动设置
systemctl enable openstack-nova-api
systemctl enable openstack-nova-consoleauth //报错no directory systemctl enable openstack-nova-scheduler
systemctl enable openstack-nova-conductor
systemctl enable openstack-nova-novncproxy
systemctl start openstack-nova-api openstack-nova-scheduler openstack-novaconductor openstack-nova-novncproxy
经过在网上查询得知,nova-consoleauth从18.0.0版后就被弃用了