centos7安装openstack单机版4-nova

  sre

5fc87e042172f9882.jpg_fo742.jpg

左大使系列文档

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

图片36.png

密码为123456

openstack role add --project service --user nova admin
openstack service create --name nova --description "OpenStack Compute" compute

图片37.png

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

图片38.png

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]处添加如下配置:
图片39.png

[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]处添加如下信息:
图片40.png

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

验证:查看数据库里是否插入数据
图片41.png

注册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

图片42.png

导入nova数据:

su -s /bin/sh -c "nova-manage db sync" nova

图片43.png

这里说明下:在使用docker里的mysql时,这一步报错,实际情况是,数据是部分写入,部分表没有完成创建。这里具体原因还没有定位,然后在宿主机上部署了一个新的MariaDB,换了3307端口,问题解决。
验证:
执行完这步后,之前创建的3个数据库应该已经有数据。
校验nova cell0 、cell1是否注册成功

nova-manage cell_v2 list_cells

图片44.png

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

图片45.png

结果是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。如果出现下面错误:
图片46.png

报了httpd的500错误,需要重启下httpd服务,再重启下openstack-compute服务即可。
以上控制节点和计算节点就安装完成。

将计算节点添加到控制节点

1、将上面创建的计算节点添加到cell 数据库中,以下操作在控制节点上执行:

openstack compute service list --service nova-compute

图片47.png

2、发现计算节点的host:

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

图片48.png

3、当你添加了一个计算节点,必须执行上面的nova-manage cell_v2 discover_hosts命令在控制节点上,另外也可以设置一个恰当的间隔进行发现:

修改/etc/nova/nova.conf:

[scheduler]
discover_hosts_in_cells_interval = 300

验证服务

1、列出计算服务组件

openstack compute service list

图片49.png

2、列出API endpoints在身份服务中校验连接状态

openstack catalog list

图片50.png

LEAVE A COMMENT

Captcha Code