页面加载中,请稍候
来源:开源Linux发布时间:2023-05-181562浏览
询问 AI
作用: OpenStack 是一个开源的云计算平台,用于构建和管理公有云和私有云环境。它提供了一组丰富的服务,包括计算、存储、网络和身份认证等,以支持虚拟机管理、对象存储、网络连接和身份验证等功能。
架构: OpenStack 采用分布式架构,由多个组件组成。以下是 OpenStack 核心组件的描述:
Nova(计算服务): Nova 负责管理和调度计算资源,包括虚拟机实例的创建、销毁和监控。它提供了弹性的计算能力,支持自动扩展和负载均衡。
Neutron(网络服务): Neutron 提供了网络服务,包括虚拟网络的创建、管理和连接。它支持软件定义网络(SDN)技术,允许用户自定义网络拓扑,并提供安全组和防火墙等网络安全功能。
Cinder(块存储服务): Cinder 提供了块存储服务,允许用户创建和管理持久化的块存储设备,用于虚拟机实例的数据存储和持久化。
Swift(对象存储服务): Swift 是一个分布式对象存储系统,可用于存储大规模的非结构化数据。它提供了高可用性和可扩展性,并支持数据冗余和数据备份。
Keystone(身份认证服务): Keystone 提供了身份认证和授权服务,用于管理用户、角色和权限。它提供了单一登录(SSO)和身份验证服务,用于保护和管理其他 OpenStack 服务。
Glance(镜像服务): Glance 提供了虚拟机镜像的存储和管理功能。它允许用户上传、注册和检索镜像,用于虚拟机实例的创建和部署。
核心概念描述:
虚拟机实例(Instance): 在 OpenStack 中,虚拟机实例是基于虚拟化技术创建的虚拟机,用于运行用户的应用程序和服务。
网络(Network): OpenStack 提供了灵活的网络服务,可以创建和管理虚拟网络,包括子网、路由和安全组等。
块存储(Block Storage): Cinder 提供了块存储服务,用户可以创建和管理持久化的块存储设备,用于虚拟机实例的数据存储和持久化。
对象存储(Object Storage): Swift 是一个分布式对象存储系统,用于存储非结构。
镜像(Image): Glance 提供了镜像服务,用户可以上传、注册和检索镜像。镜像是虚拟机的模板,用于创建虚拟机实例。用户可以选择现有的镜像或创建自定义的镜像。
项目(Project)和租户(Tenant): OpenStack 中的项目或租户是资源的隔离单位。每个项目都有自己的资源配额和权限控制。用户可以属于一个或多个项目,并在项目中创建和管理资源。
弹性伸缩(Elastic Scaling): OpenStack 支持自动扩展和弹性伸缩功能。用户可以根据负载情况自动调整计算资源,以适应需求的变化。这允许根据需求增加或减少虚拟机实例的数量。
负载均衡(Load Balancing): OpenStack 提供了负载均衡服务,允许将流量均匀分配到多个虚拟机实例上,以提高应用程序的可靠性和性能。
计算节点(Compute Node): 计算节点是物理主机或虚拟机,用于运行虚拟机实例。Nova 负责管理和调度计算节点上的计算资源。
控制节点(Control Node): 控制节点是 OpenStack 的管理节点,负责协调和管理整个 OpenStack 环境。它运行各个核心服务组件,如 Nova、Neutron、Keystone 等。
元数据服务(Metadata Service): 元数据服务提供了虚拟机实例的动态信息,如 IP 地址、主机名等。虚拟机实例可以通过元数据服务获取其运行时的信息。
身份提供者(Identity Provider): 身份提供者是用于身份验证和授权的外部系统,如 LDAP、Active Directory 等。Keystone 支持与身份提供者集成,以实现统一的身份管理。
作用: OpenNebula 是一个开源的云管理平台,用于构建和管理私有云和混合云环境。它提供了一套完整的工具和接口,用于部署、监控和自动化管理虚拟化基础设施。
架构: OpenNebula 采用分布式架构,由多个组件组成。以下是 OpenNebula 核心组件的描述:
OpenNebula Core(核心): OpenNebula Core 是 OpenNebula 的核心组件,负责处理用户请求、管理虚拟化资源和协调其他组件的操作。它提供了 API 和命令行接口,用于用户和管理员与 OpenNebula 进行交互。
OpenNebula Scheduler(调度器): 调度器负责根据用户的需求和资源的可用性,决定将虚拟机实例部署在哪些物理主机上。它基于策略和算法来优化资源利用和负载均衡。
OpenNebula Virtualization Manager(虚拟化管理器): 虚拟化管理器用于管理虚拟化技术,如 KVM、VMware 和 Xen。它与底层虚拟化平台进行交互,管理虚拟机的创建、销毁和迁移等操作。
OpenNebula Image Manager(镜像管理器): 镜像管理器用于管理虚拟机镜像,包括上传、注册、复制和共享镜像等操作。它提供了一组工具和接口,简化了镜像的管理和部署过程。
OpenNebula Network Manager(网络管理器): 网络管理器负责管理虚拟网络,包括创建、配置和连接虚拟网络的操作。它提供了网络隔离、NAT、负载均衡和安全组等功能。
OpenNebula Storage Manager(存储管理器): 存储管理器用于管理存储资源,包括本地存储、网络存储和对象存储等。它提供了存储池、卷管理和备份等功能。
核心概念描述:
虚拟机实例(Virtual Machine): 在 OpenNebula 中,虚拟机实例是基于虚拟化技术创建的虚拟机,用于运行用户的应用程序和服务。
虚拟化资源(Virtualization Resources): OpenNebula 管理着物理主机、存储设备和网络资源等虚拟化基础设施,用户可以在这些资源上创建和部署虚拟机实例。
**镜像(Images):在 OpenNebula 中,镜像是虚拟机的模板,包含操作系统和应用程序的预配置。用户可以使用镜像来创建虚拟机实例,简化了虚拟机的部署和配置过程。
虚拟网络(Virtual Networks): OpenNebula 提供了虚拟网络的管理功能,用户可以创建和配置虚拟网络,为虚拟机实例提供网络连接和通信能力。虚拟网络支持网络隔离、子网划分和路由设置等。
存储资源(Storage Resources): OpenNebula 管理着各种类型的存储资源,包括本地存储、网络存储和对象存储等。用户可以将虚拟机的磁盘镜像和数据存储在这些存储资源中,并进行管理和访问。
用户和权限管理(User and Permission Management): OpenNebula 提供了用户和权限管理功能,管理员可以创建和管理用户,为用户分配角色和权限,以限制用户对资源的访问和操作。
弹性扩展和负载均衡(Elasticity and Load Balancing): OpenNebula 具有弹性扩展和负载均衡的能力。它可以根据负载情况自动调整虚拟机实例的数量和部署位置,以提供更好的性能和可用性。
监控和日志(Monitoring and Logging): OpenNebula 提供了监控和日志记录功能,用于跟踪和记录虚拟机实例的运行状态、资源利用和事件日志。管理员可以通过监控数据和日志来进行故障排查和性能优化。
API 和命令行接口(API and CLI): OpenNebula 提供了 API 和命令行接口,允许用户和管理员通过编程和命令行工具来管理和操作 OpenNebula 的各个组件和功能。
下面是OpenStack和OpenNebula的对比表格:

一键部署openstack脚本
#!/bin/sh
#openstackpike单机一键安装
#环境centos7.4.1708x86_64
[[`uname-r`=*el7*]]{echo'开启安装openstackpike';}||{echo'请在CentOS7.4环境运行';exit;}
##########################################
#参数
#获取第一块网卡名、ip地址
Net=`ipadd|egrepglobal|awk'{print$NF}'|head-n1`
IP=`ipadd|grepglobal|awk-F'[/]+''{print$3}'|head-n1`
echo"网卡名称:$Net"
echo"IP地址:$IP"
#参数
DBPass=elven2017#SQLroot密码
Node=controller#节点名
Netname=$Net#网卡名称
MyIP=$IP#IP地址
VncProxy=$IP#VNC代理外网IP地址
Imgdir=/date/glance#自定义glance镜像目录
VHD=/date/nova#自定义Nova实例路径
Kvm=qemu#QEMU或KVM,KVM需要硬件支持
##########################################
#1、设置
echo'关闭selinux、防火墙'
systemctlstopfirewalld.service
systemctldisablefirewalld.service
firewall-cmd--state
sed-i'/^SELINUX=.*/cSELINUX=disabled'/etc/selinux/config
sed-i's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g'/etc/selinux/config
grep--color=auto'^SELINUX'/etc/selinux/config
setenforce0
echo'时间同步'
/usr/sbin/ntpdatentp6.aliyun.com
echo"*/3****/usr/sbin/ntpdatentp6.aliyun.com>/dev/null">/tmp/crontab
crontab/tmp/crontab
echo'设置hostname'
hostnamectlset-hostname$Node
echo"$SetIP$Node">>/etc/hosts
echo'自定义openstack源'
wget-O/etc/yum.repos.d/Ali-pike.repohttp://elven.vip/ks/openstack/Ali-pike.repo
yumcleanallyummakecache#生成缓存
##########################################
#2安装
functioninstallrpm()
{
echo'OpenStacktools安装'
yuminstall-ypython-openstackclientopenstack-selinux\
python2-PyMySQLopenstack-utils
echo'MariaDB安装'
yuminstallmariadbmariadb-servermariadb-galera-server-y
yuminstallexpect-y
echo'RabbitMQ安装'
yuminstallrabbitmq-servererlangsocat-y
echo'Keystone安装'
yuminstall-yopenstack-keystonehttpdmod_wsgimemcachedpython-memcached
yuminstallaprapr-util-y
echo'安装Glance'
yuminstall-yopenstack-glancepython-glance
echo'安装nova'
yuminstall-yopenstack-nova-apiopenstack-nova-conductor\
openstack-nova-consoleopenstack-nova-novncproxy\
openstack-nova-scheduleropenstack-nova-placement-api\
openstack-nova-compute
echo'安装neutron'
yuminstall-yopenstack-neutronopenstack-neutron-ml2\
openstack-neutron-linuxbridgepython-neutronclientebtablesipset
echo'安装dashboard'
yuminstallopenstack-dashboard-y
}
echo'安装openstack'
installrpm
echo'再次安装,防止下载失败'
installrpm
##########################################
#3、配置
##------------------#####################
echo'SQL数据库配置'
cp/etc/my.cnf.d/openstack.cnf{,.bak}
echo"#
[mysqld]
bind-address=0.0.0.0
default-storage-engine=innodb
innodb_file_per_table
max_connections=4096
collation-server=utf8_general_ci
character-set-server=utf8
#">/etc/my.cnf.d/openstack.cnf
echo'启动数据库服务'
systemctlenablemariadb.service
systemctlstartmariadb.service
sleep5
netstat-antp|grepmysqld
#mysql_secure_installation#初始化设置密码,自动交互
[[-f/usr/bin/expect]]||{yuminstallexpect-y;}#若没expect则安装
/usr/bin/expect<<EOF
settimeout30
spawnmysql_secure_installation
expect{
"enterfornone"{send"\r";exp_continue}
"Y/n"{send"Y\r";exp_continue}
"password:"{send"$DBPass\r";exp_continue}
"newpassword:"{send"$DBPass\r";exp_continue}
"Y/n"{send"Y\r";exp_continue}
eof{exit}
}
EOF
#测试
mysql-uroot-p$DBPass-e"showdatabases;"
[$?=0]||{echo"mariadb初始化失败";exit;}
echo'创建数据库、用户授权'
mysql-uroot-p$DBPass-e"
createdatabasekeystone;
grantallprivilegesonkeystone.*to'keystone'@'localhost'identifiedby'keystone';
grantallprivilegesonkeystone.*to'keystone'@'%'identifiedby'keystone';
createdatabaseglance;
grantallprivilegesonglance.*to'glance'@'localhost'identifiedby'glance';
grantallprivilegesonglance.*to'glance'@'%'identifiedby'glance';
createdatabasenova;
grantallprivilegesonnova.*to'nova'@'localhost'identifiedby'nova';
grantallprivilegesonnova.*to'nova'@'%'identifiedby'nova';
createdatabasenova_api;
grantallprivilegesonnova_api.*to'nova'@'localhost'identifiedby'nova';
grantallprivilegesonnova_api.*to'nova'@'%'identifiedby'nova';
createdatabasenova_cell0;
grantallprivilegesonnova_cell0.*to'nova'@'localhost'identifiedby'nova';
grantallprivilegesonnova_cell0.*to'nova'@'%'identifiedby'nova';
createdatabaseneutron;
grantallprivilegesonneutron.*to'neutron'@'localhost'identifiedby'neutron';
grantallprivilegesonneutron.*to'neutron'@'%'identifiedby'neutron';
flushprivileges;
selectuser,hostfrommysql.user;
showdatabases;
"
#
##------------------#####################
echo'RabbitMQ配置'
systemctlenablerabbitmq-server.service
systemctlstartrabbitmq-server.service
sleep3
rabbitmq-pluginsenablerabbitmq_management#启动web插件端口15672
#添加用户及密码
rabbitmqctladd_useradminadmin
rabbitmqctlset_user_tagsadminadministrator
rabbitmqctladd_useropenstackopenstack
rabbitmqctlset_permissionsopenstack".*"".*"".*"
rabbitmqctlset_user_tagsopenstackadministrator
systemctlrestartrabbitmq-server.service
sleep3
netstat-antp|grep'5672'
##------------------#####################
#Keystone
#memcached启动
cp/etc/sysconfig/memcached{,.bak}
systemctlenablememcached.service
systemctlstartmemcached.service
netstat-antp|grep11211
echo'Keystone配置'
cp/etc/keystone/keystone.conf{,.bak}#备份默认配置
Keys=$(opensslrand-hex10)#生成随机密码
echo$Keys
echo"kestone$Keys">/root/openstack.log
echo"
[DEFAULT]
admin_token=$Keys
verbose=true
[database]
connection=mysql+pymysql://keystone:keystone@controller/keystone
[token]
provider=fernet
driver=memcache
[memcache]
servers=controller:11211
">/etc/keystone/keystone.conf
#初始化身份认证服务的数据库
su-s/bin/sh-c"keystone-managedb_sync"keystone
#检查表是否创建成功
mysql-hcontroller-ukeystone-pkeystone-e"usekeystone;showtables;"
#初始化密钥存储库
keystone-managefernet_setup--keystone-userkeystone--keystone-groupkeystone
keystone-managecredential_setup--keystone-userkeystone--keystone-groupkeystone
#设置admin用户(管理用户)和密码
keystone-managebootstrap--bootstrap-passwordadmin\
--bootstrap-admin-urlhttp://controller:35357/v3/\
--bootstrap-internal-urlhttp://controller:5000/v3/\
--bootstrap-public-urlhttp://controller:5000/v3/\
--bootstrap-region-idRegionOne
#apache配置
cp/etc/httpd/conf/httpd.conf{,.bak}
echo"ServerNamecontroller">>/etc/httpd/conf/httpd.conf
ln-s/usr/share/keystone/wsgi-keystone.conf/etc/httpd/conf.d/
#ApacheHTTP启动并设置开机自启动
systemctlenablehttpd.service
systemctlrestarthttpd.service
sleep3
netstat-antp|egrep':5000|:35357|:80'
#创建OpenStack客户端环境脚本
#admin环境脚本
echo"
exportOS_PROJECT_DOMAIN_NAME=default
exportOS_USER_DOMAIN_NAME=default
exportOS_PROJECT_NAME=admin
exportOS_USERNAME=admin
exportOS_PASSWORD=admin
exportOS_AUTH_URL=http://controller:35357/v3
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2
">./admin-openstack.sh
#测试脚本是否生效
source./admin-openstack.sh
openstacktokenissue
#创建service项目,创建glance,nova,neutron用户,并授权
openstackprojectcreate--domaindefault--description"ServiceProject"service
openstackusercreate--domaindefault--password=glanceglance
openstackroleadd--projectservice--userglanceadmin
openstackusercreate--domaindefault--password=novanova
openstackroleadd--projectservice--usernovaadmin
openstackusercreate--domaindefault--password=neutronneutron
openstackroleadd--projectservice--userneutronadmin
#创建demo项目(普通用户密码及角色)
openstackprojectcreate--domaindefault--description"DemoProject"demo
openstackusercreate--domaindefault--password=demodemo
openstackrolecreateuser
openstackroleadd--projectdemo--userdemouser
#demo环境脚本
echo"
exportOS_PROJECT_DOMAIN_NAME=default
exportOS_USER_DOMAIN_NAME=default
exportOS_PROJECT_NAME=demo
exportOS_USERNAME=demo
exportOS_PASSWORD=demo
exportOS_AUTH_URL=http://controller:5000/v3
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2
">./demo-openstack.sh
#测试脚本是否生效
source./demo-openstack.sh
openstacktokenissue
##------------------#####################
echo'Glance镜像服务'
#keystone上服务注册,创建glance服务实体,API端点(公有、私有、admin)
source./admin-openstack.sh||{echo"加载前面设置的admin-openstack.sh环境变量脚本";exit;}
openstackservicecreate--nameglance--description"OpenStackImage"image
openstackendpointcreate--regionRegionOneimagepublichttp://controller:9292
openstackendpointcreate--regionRegionOneimageinternalhttp://controller:9292
openstackendpointcreate--regionRegionOneimageadminhttp://controller:9292
cp/etc/glance/glance-api.conf{,.bak}
cp/etc/glance/glance-registry.conf{,.bak}
#images默认/var/lib/glance/images/
#Imgdir=/date/glance
mkdir-p$Imgdir
chownglance:nobody$Imgdir
echo"镜像目录:$Imgdir"
echo"#
[database]
connection=mysql+pymysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri=http://controller:5000/v3
auth_url=http://controller:35357/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=glance
[paste_deploy]
flavor=keystone
[glance_store]
stores=file,http
default_store=file
filesystem_store_datadir=$Imgdir
#">/etc/glance/glance-api.conf
#
echo"#
[database]
connection=mysql+pymysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri=http://controller:5000/v3
auth_url=http://controller:35357/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=glance
[paste_deploy]
flavor=keystone
#">/etc/glance/glance-registry.conf
#同步数据库,检查数据库
su-s/bin/sh-c"glance-managedb_sync"glance
mysql-hcontroller-uglance-pglance-e"useglance;showtables;"
#启动服务并设置开机自启动
systemctlenableopenstack-glance-apiopenstack-glance-registry
systemctlstartopenstack-glance-apiopenstack-glance-registry
netstat-antp|egrep'9292|9191'#检测服务端口
##------------------#####################
#创建Nova数据库、用户、认证,前面已设置
source./admin-openstack.sh
#keystone上服务注册,创建nova用户、服务、API
#nova用户前面已建
openstackservicecreate--namenova--description"OpenStackCompute"compute
openstackendpointcreate--regionRegionOnecomputepublichttp://controller:8774/v2.1
openstackendpointcreate--regionRegionOnecomputeinternalhttp://controller:8774/v2.1
openstackendpointcreate--regionRegionOnecomputeadminhttp://controller:8774/v2.1
#创建placement用户、服务、API
openstackusercreate--domaindefault--password=placementplacement
openstackroleadd--projectservice--userplacementadmin
openstackservicecreate--nameplacement--description"PlacementAPI"placement
openstackendpointcreate--regionRegionOneplacementpublichttp://controller:8778
openstackendpointcreate--regionRegionOneplacementinternalhttp://controller:8778
openstackendpointcreate--regionRegionOneplacementadminhttp://controller:8778
mkdir-p$VHD
chown-Rnova:nova$VHD
echo'nova配置'
echo'#
[DEFAULT]
instances_path='$VHD'
enabled_apis=osapi_compute,metadata
transport_url=rabbit://openstack:openstack@controller
my_ip='$MyIP'
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
osapi_compute_listen_port=8774
[api_database]
connection=mysql+pymysql://nova:nova@controller/nova_api
[database]
connection=mysql+pymysql://nova:nova@controller/nova
[api]
auth_strategy=keystone
[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=nova
[vnc]
enabled=true
vncserver_listen=$my_ip
vncserver_proxyclient_address=$my_ip
novncproxy_base_url=http://'$VncProxy':6080/vnc_auto.html
[glance]
api_servers=http://controller:9292
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[placement]
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:35357/v3
username=placement
password=placement
[scheduler]
discover_hosts_in_cells_interval=300
[libvirt]
virt_type='$Kvm'
#'>/etc/nova/nova.conf
echo"
#PlacementAPI
<Directory/usr/bin>
<IfVersion>=2.4>
Requireallgranted
</IfVersion>
<IfVersion<2.4>
Orderallow,deny
Allowfromall
</IfVersion>
</Directory>
">>/etc/httpd/conf.d/00-nova-placement-api.conf
systemctlrestarthttpd
sleep5
#同步数据库
su-s/bin/sh-c"nova-manageapi_dbsync"nova
su-s/bin/sh-c"nova-managecell_v2map_cell0"nova
su-s/bin/sh-c"nova-managecell_v2create_cell--name=cell1--verbose"nova
su-s/bin/sh-c"nova-managedbsync"nova
#检测数据
nova-managecell_v2list_cells
mysql-hcontroller-unova-pnova-e"usenova_api;showtables;"
mysql-hcontroller-unova-pnova-e"usenova;showtables;"
mysql-hcontroller-unova-pnova-e"usenova_cell0;showtables;"
##------------------#####################
echo'Neutron服务'
source./admin-openstack.sh
#创建Neutron服务实体,API端点
openstackservicecreate--nameneutron--description"OpenStackNetworking"network
openstackendpointcreate--regionRegionOnenetworkpublichttp://controller:9696
openstackendpointcreate--regionRegionOnenetworkinternalhttp://controller:9696
openstackendpointcreate--regionRegionOnenetworkadminhttp://controller:9696
#Neutron备份配置
cp/etc/neutron/neutron.conf{,.bak2}
cp/etc/neutron/plugins/ml2/ml2_conf.ini{,.bak}
ln-s/etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini
cp/etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
cp/etc/neutron/dhcp_agent.ini{,.bak}
cp/etc/neutron/metadata_agent.ini{,.bak}
cp/etc/neutron/l3_agent.ini{,.bak}
#配置
echo'
#
[neutron]
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=neutron
password=neutron
service_metadata_proxy=true
metadata_proxy_shared_secret=metadata
#'>>/etc/nova/nova.conf
#
echo'
[DEFAULT]
nova_metadata_ip=controller
metadata_proxy_shared_secret=metadata
#'>/etc/neutron/metadata_agent.ini
#
echo'#
[ml2]
tenant_network_types=
type_drivers=vlan,flat
mechanism_drivers=linuxbridge
extension_drivers=port_security
[ml2_type_flat]
flat_networks=provider
[securitygroup]
enable_ipset=True
#'>/etc/neutron/plugins/ml2/ml2_conf.ini
echo'#
[linux_bridge]
physical_interface_mappings=provider:'$Netname'
[vxlan]
enable_vxlan=false
[agent]
prevent_arp_spoofing=True
[securitygroup]
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group=True
#'>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#
echo'#
[DEFAULT]
interface_driver=linuxbridge
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=true
#'>/etc/neutron/dhcp_agent.ini
#
echo'
[DEFAULT]
core_plugin=ml2
service_plugins=router
allow_overlapping_ips=true
transport_url=rabbit://openstack:openstack@controller
auth_strategy=keystone
notify_nova_on_port_status_changes=true
notify_nova_on_port_data_changes=true
[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=neutron
password=neutron
[nova]
auth_url=http://controller:35357
auth_plugin=password
project_domain_id=default
user_domain_id=default
region_name=RegionOne
project_name=service
username=nova
password=nova
[database]
connection=mysql://neutron:neutron@controller:3306/neutron
[oslo_concurrency]
lock_path=/var/lib/neutron/tmp
#'>/etc/neutron/neutron.conf
#
echo'
[DEFAULT]
interface_driver=linuxbridge
#'>/etc/neutron/l3_agent.ini
#
#同步数据库
su-s/bin/sh-c"neutron-db-manage--config-file/etc/neutron/neutron.conf\
--config-file/etc/neutron/plugins/ml2/ml2_conf.iniupgradehead"neutron
#检测数据
mysql-hcontroller-uneutron-pneutron-e"useneutron;showtables;"
##------------------#####################
#dashboard
echo'配置openstackWeb'
cp/etc/openstack-dashboard/local_settings{,.bak}
Setfiles=/etc/openstack-dashboard/local_settings
sed-i's#_member_#user#g'$Setfiles
sed-i's#OPENSTACK_HOST="127.0.0.1"#OPENSTACK_HOST="controller"#'$Setfiles
##允许所有主机访问#
sed-i"/ALLOWED_HOSTS/cALLOWED_HOSTS=['*',]"$Setfiles
#去掉memcached注释#
sed-in'153,158s/#//'$Setfiles
sed-in'160,164s/.*/#/'$Setfiles
sed-i's#UTC#Asia/Shanghai#g'$Setfiles
sed-i's#%s:5000/v2.0#%s:5000/v3#'$Setfiles
sed-i'/ULTIDOMAIN_SUPPORT/cOPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True'$Setfiles
sed-i"s@^#OPENSTACK_KEYSTONE_DEFAULT@OPENSTACK_KEYSTONE_DEFAULT@"$Setfiles
echo'
#set
OPENSTACK_API_VERSIONS={
"identity":3,
"image":2,
"volume":2,
}
#'>>$Setfiles
systemctlrestarthttpd
sleep5
##########################################
echo'启动服务'
#Apache
systemctlenablehttpd.service
#systemctlrestarthttpdhaproxy
#netstat-antp|egrep'httpd'
#glance服务
systemctlenableopenstack-glance-apiopenstack-glance-registry
systemctlrestartopenstack-glance-apiopenstack-glance-registry
#nova服务
systemctlenableopenstack-nova-api.service\
openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service\
openstack-nova-conductor.serviceopenstack-nova-novncproxy.service\
libvirtd.serviceopenstack-nova-compute.service
#启动
systemctlstartopenstack-nova-api.service\
openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service\
openstack-nova-conductor.serviceopenstack-nova-novncproxy.service\
libvirtd.serviceopenstack-nova-compute.service
#neutron服务
systemctlenableneutron-server.service\
neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service\
neutron-metadata-agent.serviceneutron-l3-agent.service
systemctlstartneutron-server.service\
neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service\
neutron-metadata-agent.serviceneutron-l3-agent.service
##########################################
#cheack
echo"查看节点"
source./admin-openstack.sh
openstackcomputeservicelist
openstacknetworkagentlist
##########################################
#end
echo'
安装完毕!
数据库root密码'$DBPass'
登录Web管理http://'$MyIP'/dashboard
域default
用户admin
密码admin
推荐火狐浏览器
'
##########################################
##使用
#yuminstall-ywgetwget-Opike.install.shhttp://elven.vip/ks/openstack/pike.install.shshpike.install.sh
脚本源链接:https://cloud.tencent.com/developer/article/1788428?from=15425areaSource=102001.1traceId=YGyz2cPWxfVUMUuwHR4r4由于本人已经对原文进行了深度加工,如果转摘需要注明内容丰富:IT运维技术圈
10T 技术资源大放送!包括但不限于:Linux、虚拟化、容器、云计算、网络、Python、Go 等。在开源Linux公众号内回复10T,即可免费获取!
新闻来源:开源Linux,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2 天前

2026-07-17

2026-07-09