@zhangyy
2020-01-07T02:18:43.000000Z
字数 7043
阅读 357
openstack系列
- 一: nova 的部署
- 二: nova 验证
mysql -uroot -p flyfish225CREATE DATABASE nova_api;CREATE DATABASE nova;CREATE DATABASE nova_cell0;CREATE DATABASE placement;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';GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'placement';GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement';flush privileges;show databases;select user,host from mysql.user;



openstack user create --domain default --password=nova novaopenstack user list

在keystone上将nova用户配置为admin角色并添加进service项目openstack role add --project service --user nova admin

创建nova计算服务的实体openstack service create --name nova --description "OpenStack Compute" computeopenstack service list

创建计算服务的API端点(endpoint)openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1openstack endpoint list


这个版本的nova增加了placement项目同样,创建并注册该项目的服务证书openstack user create --domain default --password=placement placementopenstack role add --project service --user placement adminopenstack service create --name placement --description "Placement API" placement

创建placement项目的endpoint(API端口)openstack endpoint create --region RegionOne placement public http://controller:8778openstack endpoint create --region RegionOne placement internal http://controller:8778openstack endpoint create --region RegionOne placement admin http://controller:8778openstack endpoint list


在控制节点安装nova相关服务yum install openstack-nova-api openstack-nova-conductor \openstack-nova-console openstack-nova-novncproxy \openstack-nova-scheduler openstack-nova-placement-api -y
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadataopenstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.11openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron trueopenstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriveropenstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:openstack@controlleropenstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:nova@controller/nova_apiopenstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:nova@controller/novaopenstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:placement@controller/placementopenstack-config --set /etc/nova/nova.conf api auth_strategy keystoneopenstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:5000/v3openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type passwordopenstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name defaultopenstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name defaultopenstack-config --set /etc/nova/nova.conf keystone_authtoken project_name serviceopenstack-config --set /etc/nova/nova.conf keystone_authtoken username novaopenstack-config --set /etc/nova/nova.conf keystone_authtoken password novaopenstack-config --set /etc/nova/nova.conf vnc enabled trueopenstack-config --set /etc/nova/nova.conf vnc server_listen '$my_ip'openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmpopenstack-config --set /etc/nova/nova.conf placement region_name RegionOneopenstack-config --set /etc/nova/nova.conf placement project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf placement project_name serviceopenstack-config --set /etc/nova/nova.conf placement auth_type passwordopenstack-config --set /etc/nova/nova.conf placement user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf placement auth_url http://controller:5000/v3openstack-config --set /etc/nova/nova.conf placement username placementopenstack-config --set /etc/nova/nova.conf placement password placementopenstack-config --set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300


egrep -v "^#|^$" /etc/nova/nova.conf

修改nova的虚拟主机配置文件cp /etc/httpd/conf.d/00-nova-placement-api.conf /etc/httpd/conf.d/00-nova-placement-api.conf.bakvim /etc/httpd/conf.d/00-nova-placement-api.conf----Listen 8778<VirtualHost *:8778>WSGIProcessGroup nova-placement-apiWSGIApplicationGroup %{GLOBAL}WSGIPassAuthorization OnWSGIDaemonProcess nova-placement-api processes=3 threads=1 user=nova group=novaWSGIScriptAlias / /usr/bin/nova-placement-api<IfVersion >= 2.4>ErrorLogFormat "%M"</IfVersion>ErrorLog /var/log/nova/nova-placement-api.log#SSLEngine On#SSLCertificateFile ...#SSLCertificateKeyFile ...</VirtualHost>Alias /nova-placement-api /usr/bin/nova-placement-api<Location /nova-placement-api>SetHandler wsgi-scriptOptions +ExecCGIWSGIProcessGroup nova-placement-apiWSGIApplicationGroup %{GLOBAL}WSGIPassAuthorization On</Location># made by zhangyy<Directory /usr/bin><IfVersion >= 2.4>Require all granted</IfVersion><IfVersion < 2.4>Order allow,denyAllow from all</IfVersion></Directory>------systemctl restart httpdsystemctl status httpd

至此,nova计算服务的软件包安装完成
nova_api有32张表,placement有32张表,nova_cell0有110张表,nova也有110张表初始化nova-api和placement数据库su -s /bin/sh -c "nova-manage api_db sync" novamysql -h10.0.0.11 -unova -pnova -e "use nova_api;show tables;"mysql -h10.0.0.11 -uplacement -pplacement -e "use placement;show tables;"


nova_api和placement都有32张表,区别在于nova_api数据库的cell_mappings表多两条数据,存放的是nova和rabbitmq等的配置信息
初始化nova_cell0和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# 检查确认cell0和cell1注册成功su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova# 验证数据库mysql -h10.0.0.11 -unova -pnova -e "use nova_cell0;show tables;"mysql -h10.0.0.11 -unova -pnova -e "use nova;show tables;"


通过对比可知,这两个数据库的表目前完全一样,区别在于nova数据库的service表中有4条数据,存放的是当前版本nova相关服务的注册信息
检查确认cell0和cell1注册成功su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

返回的数据存储在nova_api数据库的cell_mappings表中
启动nova服务需要启动5个服务systemctl start openstack-nova-api.service openstack-nova-consoleauth.service \openstack-nova-scheduler.service openstack-nova-conductor.service \openstack-nova-novncproxy.servicesystemctl status openstack-nova-api.service openstack-nova-consoleauth.service \openstack-nova-scheduler.service openstack-nova-conductor.service \openstack-nova-novncproxy.servicesystemctl enable openstack-nova-api.service openstack-nova-consoleauth.service \openstack-nova-scheduler.service openstack-nova-conductor.service \openstack-nova-novncproxy.servicesystemctl list-unit-files |grep openstack-nova* |grep enabled



至此,在控制节点安装nova计算服务就完成了,下篇文章介绍独立的nova计算节点的安装方法