注意:接与上一篇博客内容 进行更新
由于整个开源openstack安装过程过于繁琐,命令太长,太繁琐,于是把整个安装命令写成shell脚本。

脚本数量内容过多,已经推送自我的github <https://github.com/pwxwmm/openstackShellScript>源码托管中心了。
这是本篇脚本内容所在的github仓库位置 controller节点
<https://github.com/pwxwmm/openstackShellScript/blob/master/iaas-install-nova-controller.sh>
compute节点
<https://github.com/pwxwmm/openstackShellScript/blob/master/iaas-install-nova-compute.sh>
[root@controller centos]# cd /usr/local/bin/这是所有需要的脚本的整个路径

controller节点脚本
#!/bin/bash source /etc/xiandian/openrc.sh source
/etc/keystone/admin-openrc.sh mysql -uroot -p$DB_PASS -e "create database IF
NOT EXISTS nova ;" mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON nova.*
TO 'nova'@'localhost' IDENTIFIED BY '$NOVA_DBPASS' ;" mysql -uroot -p$DB_PASS -e
"GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '$NOVA_DBPASS' ;"
mysql -uroot -p$DB_PASS -e "create database IF NOT EXISTS nova_api ;" mysql
-uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost'
IDENTIFIED BY '$NOVA_DBPASS' ;" mysql -uroot -p$DB_PASS -e "GRANT ALL
PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '$NOVA_DBPASS' ;"
openstack user create --domain$DOMAIN_NAME --password $NOVA_PASS nova openstack
role add --projectservice --user nova admin openstack service create --name
nova --description"OpenStack Compute" compute openstack endpoint create
--region RegionOne compute public http://$HOST_NAME:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute internal http://$HOST_NAME
:8774/v2.1/%\(tenant_id\)s openstack endpoint create --region RegionOne compute
admin http://$HOST_NAME:8774/v2.1/%\(tenant_id\)s yum install -y
openstack-nova-api openstack-nova-conductor openstack-nova-console
openstack-nova-novncproxy openstack-nova-scheduler crudini --set
/etc/nova/nova.conf database connection mysql+pymysql://nova:$NOVA_DBPASS@
$HOST_NAME/nova crudini --set /etc/nova/nova.conf api_database connection
mysql+pymysql://nova:$NOVA_DBPASS@$HOST_NAME/nova_api crudini --set
/etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata crudini --set
/etc/nova/nova.conf DEFAULT rpc_backend rabbit crudini --set
/etc/nova/nova.conf DEFAULT auth_strategy keystone crudini --set
/etc/nova/nova.conf DEFAULT my_ip$HOST_IP crudini --set /etc/nova/nova.conf
DEFAULT use_neutron True crudini --set /etc/nova/nova.conf DEFAULT
firewall_driver nova.virt.firewall.NoopFirewallDriver crudini --set
/etc/nova/nova.conf DEFAULT metadata_listen 0.0.0.0 crudini --set
/etc/nova/nova.conf DEFAULT metadata_listen_port 8775 crudini --set
/etc/nova/nova.conf oslo_messaging_rabbit rabbit_host$HOST_NAME crudini --set
/etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid$RABBIT_USER crudini
--set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password$RABBIT_PASS
crudini --set /etc/nova/nova.conf keystone_authtoken auth_uri http://$HOST_NAME
:5000 crudini --set /etc/nova/nova.conf keystone_authtoken auth_url http://
$HOST_NAME:35357 crudini --set /etc/nova/nova.conf keystone_authtoken
memcached_servers$HOST_NAME:11211 crudini --set /etc/nova/nova.conf
keystone_authtoken auth_type password crudini --set /etc/nova/nova.conf
keystone_authtoken project_domain_name$DOMAIN_NAME crudini --set
/etc/nova/nova.conf keystone_authtoken user_domain_name$DOMAIN_NAME
compute节点
#!/bin/bash source /etc/xiandian/openrc.sh ping $HOST_IP -c 4 >> /dev/null 2>&1
if [ 0 -ne $? ]; then echo -e "\033[31m Warning\nPlease make sure the network
configuration is correct!\033[0m" exit 1 fi # check system sed -i -e '/server/d'
-e"/fudge/d" /etc/ntp.conf ntpdate $HOST_IP yum install lvm2 -y yum install
openstack-nova-compute -y crudini --set /etc/nova/nova.conf DEFAULT rpc_backend
rabbit crudini --set /etc/nova/nova.conf DEFAULT auth_strategy keystone crudini
--set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host$HOST_NAME crudini
--set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid$RABBIT_USER
crudini --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password
$RABBIT_PASS crudini --set /etc/nova/nova.conf keystone_authtoken auth_uri
http://$HOST_NAME:5000 crudini --set /etc/nova/nova.conf keystone_authtoken
auth_url http://$HOST_NAME:35357 crudini --set /etc/nova/nova.conf
keystone_authtoken memcached_servers$HOST_NAME:11211 crudini --set
/etc/nova/nova.conf keystone_authtoken auth_type password crudini --set
/etc/nova/nova.conf keystone_authtoken project_domain_name$DOMAIN_NAME crudini
--set /etc/nova/nova.conf keystone_authtoken user_domain_name$DOMAIN_NAME
crudini --set /etc/nova/nova.conf keystone_authtoken project_nameservice
crudini --set /etc/nova/nova.conf keystone_authtoken username nova crudini
--set /etc/nova/nova.conf keystone_authtoken password$NOVA_PASS crudini --set
/etc/nova/nova.conf DEFAULT my_ip$HOST_IP_NODE crudini --set
/etc/nova/nova.conf DEFAULT use_neutron True crudini --set /etc/nova/nova.conf
DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver crudini --set
/etc/nova/nova.conf vnc enabled True crudini --set /etc/nova/nova.conf vnc
vncserver_listen 0.0.0.0 crudini --set /etc/nova/nova.conf vnc
vncserver_proxyclient_address$HOST_IP_NODE crudini --set /etc/nova/nova.conf
vnc novncproxy_base_url http://$HOST_IP:6080/vnc_auto.html crudini --set
/etc/nova/nova.conf glance api_servers http://$HOST_NAME:9292
4 安装Nova计算服务
4.1通过脚本安装nova服务 4.2-4.14计算服务的操作命令已经编写成shell脚本,通过脚本进行一键安装。如下: #Controller节点
执行脚本iaas-install-nova-controller.sh进行安装 #Compute节点
执行脚本iaas-install-nova-compute.sh进行安装
下面是本篇内容的命令的详细操作过程(脚本中已经包含该篇命令的所有操作,但是建议还是熟悉下整个过程之后再运行脚本)

4.2安装Nova 计算服务软件包
# yum install -y openstack-nova-api openstack-nova-conductor
openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
4.3创建Nova数据库
# mysql -u root -p mysql> CREATE DATABASE nova; mysql> GRANT ALL PRIVILEGES ON
nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS'; mysql> GRANT ALL
PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS'; mysql> create
database IF NOT EXISTS nova_api; mysql> GRANT ALL PRIVILEGES ON nova_api.* TO '
nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS' ; mysql> GRANT ALL PRIVILEGES ON
nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS' ; 修改数据库连接 openstack-config
--set /etc/nova/nova.conf database connection
mysql+pymysql://nova:NOVA_DBPASS@controller/nova openstack-config --set
/etc/nova/nova.conf api_database connection
mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
4.4创建计算服务表
su -s /bin/sh -c "nova-manage db sync" nova su -s /bin/sh -c "nova-manage
api_db sync" nova
4.5创建用户
openstack user create --domain default --password 000000 nova openstack role
add --projectservice --user nova admin
4.6配置计算服务
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,
metadata openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 20.0.0.10 openstack-
config--set /etc/nova/nova.conf DEFAULT use_neutron True openstack-config --set
/etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.
NoopFirewallDriver openstack-config --set /etc/nova/nova.conf DEFAULT
metadata_listen0.0.0.0 openstack-config --set /etc/nova/nova.conf DEFAULT
metadata_listen_port8775 openstack-config --set /etc/nova/nova.conf
oslo_messaging_rabbit rabbit_host controller openstack-config --set /etc/nova/
nova.conf oslo_messaging_rabbit rabbit_userid openstack openstack-config --set /
etc/nova/nova.conf oslo_messaging_rabbit rabbit_password 000000 openstack-config
--set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://
controller:35357 openstack-config --set /etc/nova/nova.conf keystone_authtoken
memcached_servers controller:11211 openstack-config --set /etc/nova/nova.conf
keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.
conf keystone_authtoken project_domain_name default openstack-config --set /etc/
nova/nova.conf keystone_authtoken user_domain_name default openstack-config --
set /etc/nova/nova.conf keystone_authtoken project_name service openstack-config
--set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --
set /etc/nova/nova.conf keystone_authtoken password 000000 openstack-config --
set /etc/nova/nova.conf vnc vncserver_listen 20.0.0.10 openstack-config --set /
etc/nova/nova.conf vnc vncserver_proxyclient_address 20.0.0.10 openstack-config
--set /etc/nova/nova.conf glance api_servers http://controller:9292 openstack-
config--set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
4.7创建Endpoint和API端点
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public
http://controller:8774/v2.1/%\(tenant_id\)s openstack endpoint create --region
RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute admin
http://controller:8774/v2.1/%\(tenant_id\)s
4.8启动服务
systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service
openstack-nova-scheduler.service openstack-nova-conductor.service
openstack-nova-novncproxy.service systemctl start openstack-nova-api.service
openstack-nova-consoleauth.service openstack-nova-scheduler.service
openstack-nova-conductor.service openstack-nova-novncproxy.service
4.9验证Nova
#nova image-list
#Compute节点

4.10安装Nova计算服务软件包
yum install lvm2 -y yum install openstack-nova-compute -y
4.11配置Nova服务
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit openstack
-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone openstack-
config--set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid
openstack openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit
rabbit_password000000 openstack-config --set /etc/nova/nova.conf
keystone_authtoken auth_uri http://controller:5000 openstack-config --set /etc/
nova/nova.conf keystone_authtoken auth_url http://controller:35357 openstack-
config--set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:
11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type
password openstack-config --set /etc/nova/nova.conf keystone_authtoken
project_domain_name default openstack-config --set /etc/nova/nova.conf
keystone_authtoken user_domain_name default openstack-config --set /etc/nova/
nova.conf keystone_authtoken project_name service openstack-config --set /etc/
nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova
/nova.conf keystone_authtoken password 000000 openstack-config --set /etc/nova/
nova.conf DEFAULT my_ip 20.0.0.20 openstack-config --set /etc/nova/nova.conf
DEFAULT use_neutronTrue openstack-config --set /etc/nova/nova.conf DEFAULT
firewall_driver nova.virt.firewall.NoopFirewallDriver openstack-config --set /
etc/nova/nova.conf vnc enabled True openstack-config --set /etc/nova/nova.conf
vnc vncserver_listen0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc
vncserver_proxyclient_address20.0.0.20 openstack-config --set /etc/nova/nova.
conf vnc novncproxy_base_url http://20.0.0.10:6080/vnc_auto.html openstack-
config--set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/
nova/tmp openstack-config --set /etc/nova/nova.conf libvirt inject_key True
4.12检查系统处理器是否支持虚拟机的硬件加速
执行命令 #egrep -c '(vmx|svm)' /proc/cpuinfo
(1)如果该命令返回一个1或更大的值,说明你的系统支持硬件加速,通常不需要额外的配置。
(2)如果这个指令返回一个0值,说明你的系统不支持硬件加速,你必须配置libvirt取代KVM来使用QEMU。 # openstack-config
--set /etc/nova/nova.conf libvirt virt_type qemu
4.13启动
systemctl enable libvirtd.service openstack-nova-compute.service systemctl
start libvirtd.service openstack-nova-compute.service
4.14 清除防火墙
controller和compute节点 iptables -F iptables -X iptables -Z
/usr/libexec/iptables/iptables.init save

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信