centos7安装openstack单机版4-nova
左大使系列文档
centos7安装openstack单机版1-环境准备
centos7安装openstack单机版2-kystone
centos7安装openstack单机版3-glance
centos7安装openstack单机版4-nova
centos7安装openstack单机版5-neutron
centos7安装openstack单机版6-Dashboard-horizon
安装nova
准备工作
1、登录数据库,同keystone安装的登录数据库
容器环境:docker exec -ti mysql mysql -uroot -p123456
2、创建nova相关库和账号
mysql> CREATE DATABASE nova_api character set utf8;
mysql> CREATE DATABASE nova character set utf8;
mysql> CREATE DATABASE nova_cell0 character set utf8;
mysql>GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123456';
mysql>GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123456';
mysql>GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123456';
mysql>GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456';
mysql>GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123456';
mysql>GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123456';
3、在为nova在keystone上创建用户项目等时,需要先连接keystone。
这里使用keystone的admin账号来登录:
source adminrc
创建计算服务认证:
openstack user create --domain default --password-prompt nova
密码为123456
openstack role add --project service --user nova admin
openstack service create --name nova --description "OpenStack Compute" compute
4、创建计算服务的API endpoints:
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
5、创建一个placement服务的用户,并设置密码:
openstack user create --domain default --password-prompt placement
设置密码为123456
添加placement用户到service这个项目中,使用admin角色:
openstack role add --project service --user placement admin
将placement添加到一个service中
openstack service create --name placement --description "Placement API" placement
6、创建一个placement API service endpoints:
openstack endpoint create --region RegionOne placement public http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778
nova控制节点安装和配置
1、安装包软件包
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api
2、修改配置文件/etc/nova/nova.conf:
[DEFAULT]
处添加一行
enabled_apis = osapi_compute,metadata
[api_database]
处添加数据库配置:
connection = mysql+pymysql://nova:123456@controller:3307/nova_api
[database]
处添加数据库配置:
connection = mysql+pymysql://nova:123456@controller:3307/nova
[DEFAULT]
处添加mq配置:
transport_url = rabbit://openstack:123456@controller
[api]
处添加配置:
auth_strategy = keystone
[keystone_authtoken]
处添加如下配置:
[DEFAULT]
处添加如下信息:
my_ip = 本机ip
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
处添加如下信息:
enabled = true
vncserver_listen =
vncserver_proxyclient_address =
[glance]
处添加glance信息:
api_servers = http://controller:9292
[oslo_concurrency]
处添加:
lock_path = /var/lib/nova/tmp
[placement]
处添加如下信息:
3、设置能够访问placement API的权限:/etc/httpd/conf.d/00-nova-placement-api.conf(追加到此文件)
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
然后重启httpd服务
systemctl restart httpd
4、向nova-api数据库导入数据:
su -s /bin/sh -c "nova-manage api_db sync" nova
验证:查看数据库里是否插入数据
注册cell0数据库:
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
创建cell1:
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
导入nova数据:
su -s /bin/sh -c "nova-manage db sync" nova
这里说明下:在使用docker里的mysql时,这一步报错,实际情况是,数据是部分写入,部分表没有完成创建。这里具体原因还没有定位,然后在宿主机上部署了一个新的MariaDB,换了3307端口,问题解决。
验证:
执行完这步后,之前创建的3个数据库应该已经有数据。
校验nova cell0 、cell1是否注册成功
nova-manage cell_v2 list_cells
5、启动nova服务:
systemctl enable openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy
systemctl start openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy
验证:可以通过查看/var/log/nova/
下的日志确认是否启动成功。
nove计算节点安装和配置
1、安装软件包
yum install openstack-nova-compute
2、修改配置文件/etc/nova/nova.conf:
因为控制节点和计算节点在一台服务器上,所以大部分配置之前已经配置过。只需要额外添加一处:
[vnc]
novncproxy_base_url = http://controller:6080/vnc_auto.html
3、在计算节点上查看服务器是否支持虚拟化技术:
egrep -c '(vmx|svm)' /proc/cpuinfo
结果是1或者更多则支持。本服务器支持,如果不支持,需要做下面配置:
修改配置文件/etc/nova/nova.conf
:
[libvirt]
virt_type = qemu
4、启动计算节点
systemctl enable libvirtd openstack-nova-compute
systemctl start libvirtd openstack-nova-compute
验证:
查看/var/log/nova/nova-compute.log
。如果出现下面错误:
报了httpd的500错误,需要重启下httpd服务,再重启下openstack-compute服务即可。
以上控制节点和计算节点就安装完成。
将计算节点添加到控制节点
1、将上面创建的计算节点添加到cell 数据库中,以下操作在控制节点上执行:
openstack compute service list --service nova-compute
2、发现计算节点的host:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
3、当你添加了一个计算节点,必须执行上面的nova-manage cell_v2 discover_hosts命令在控制节点上,另外也可以设置一个恰当的间隔进行发现:
修改/etc/nova/nova.conf
:
[scheduler]
discover_hosts_in_cells_interval = 300
验证服务
1、列出计算服务组件
openstack compute service list
2、列出API endpoints在身份服务中校验连接状态
openstack catalog list