先电Openstack 脚本解读(Nova)

iaas-install-nova-controller.sh

#!/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' ;"
# 创建nova数据库
# 授权nova用户拥有从本地访问nova数据库的所有权限
# 授权nova用户拥有从远程访问nova数据库的所有权限
# 创建nova_api数据库		
# 授权nova用户拥有从本地访问nova_api数据库的所有权限
# 授权nova用户拥有从远程访问nova_api数据库的所有权限
openstack user create --domain $DOMAIN_NAME --password $NOVA_PASS nova
openstack role add --project service --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
# 创建nova用户 密码为 $NOVA_DBPASS 属于$DOMAIN_NAME域
# 将admin role 赋予 service project 和 nova user  
# 创建nova计算服务 service entity
#  创建nova计算服务组件的public API endpoint
# 创建nova计算服务组件的internal API
# 创建nova计算服务组件的admin API endpoint
yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
#安装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
# 配置nova数据库连接
# 配置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
#  停止使用EC2 API
#  配置rpc_backend 为 rabbit
#  配置认证方式为keystone
#  配置管理ip为$HOST_IP
#  定义nova支持neutron网络服务组件
#  关闭nova计算服务组件的防火墙功能
#  定义metadata监听所有ip地址
#  定义metadata监听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
crudini --set /etc/nova/nova.conf keystone_authtoken project_name service
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 vnc vncserver_listen $HOST_IP
crudini --set /etc/nova/nova.conf vnc vncserver_proxyclient_address $HOST_IP
# 配置VNC 使用$HOST_IP 为管理地址
# VNC 使用$HOST_IP 为数据网络ip地址
crudini --set /etc/nova/nova.conf glance api_servers http://$HOST_NAME:9292
#  配置glance镜像服务所在的地址
crudini --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
#  配置lock路径为/var/lib/nova/tmp

su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
#  将nova计算服务信息同步到 nova_api数据库
#  将nova计算服务信息同步到 nova数据库

iptables -F
iptables -X
iptables -Z
# 清除预设表filter 中所有规则链中的规则
# 清除预设表filter中使用者自定链中的规则
# 把所有链的所有计数器归零

/usr/libexec/iptables/iptables.init save
# 保存iptables规则	

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
# 设置nova服务开机自启
# 开启nova服务

iaas-install-nova-compute.sh

#!/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
#  ping $HOST_IP 数量为4 将标准输出和错误输出重定向到/dev/null中
#  以红色字体向屏幕打印 Warning\nPlease make sure the network configuration is correct!
# check system
sed -i  -e '/server/d' -e "/fudge/d" /etc/ntp.conf
# 将/etc/ntp.conf 文件中有server 和fudge的行删除

ntpdate $HOST_IP
# 向$HOST_IP 同步时间
yum install lvm2 -y
yum install openstack-nova-compute -y
# 安装 lvm2  安装 openstack-nova-compute

crudini --set /etc/nova/nova.conf DEFAULT rpc_backend  rabbit
crudini --set /etc/nova/nova.conf DEFAULT auth_strategy   keystone
# 配置后台rpc通信为rabbit

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_name service
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

crudini --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp

virt_num=`egrep -c '(vmx|svm)' /proc/cpuinfo`
#   检查本机是否支持硬件加速 

if [ $virt_num = '0' ];then
        crudini --set /etc/nova/nova.conf libvirt virt_type  qemu
fi
crudini --set /etc/nova/nova.conf libvirt inject_key True
iptables -F
iptables -X
iptables -Z
/usr/libexec/iptables/iptables.init save
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service


链接: 先电Openstack 脚本解读(环境准备).
链接: 先电Openstack 脚本解读(MySQL).
链接: 先电Openstack 脚本解读(Keystone).
链接: 先电Openstack 脚本解读(Glance).
链接: 先电Openstack 脚本解读(Nova).
链接: 先电Openstack 脚本解读(neutron,gre,vlan,flat).
链接: 先电Openstack 脚本解读(Dashboard).
链接: 先电Openstack 脚本解读(cinder).
链接: 先电Openstack 脚本解读(swift).
链接: 先电Openstack 脚本解读(Trove).
链接: 先电Openstack 脚本解读(Heat).
链接: 先电Openstack 脚本解读(ceilometer).
链接: 先电Openstack 脚本解读(alarm).
链接: 先电Openstack 脚本解读(uninstall-all).
链接: openstack pike 单机 一键安装脚本.

猜你喜欢

转载自blog.csdn.net/weixin_43663238/article/details/106010625
今日推荐