openstack安装部署详解

OpenStack简介

OpenStack Docs: Chinese(Simplified)

OpenStack是什么? OpenStack是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过web接口让最终用户部署资源。

版本

OpenStack Releases版本

OpenStack传统的以字母顺序(A~Z)命名的主版本系列。在OpenStack中,每个主版本系列确实是以字母表顺序命名,但每个系列内还会有多个小版本或补丁版本,这些版本通过数字来标识。

例如,OpenStack的第一版被称为Austin(2010.1),而后续版本如Bexar、Cactus等则按照字母顺序递增

看不出具体的版本号
[root@controller ~]# openstack --version
openstack 3.14.3

查找nova版本号,从版本中找到对应nova版本的即可

[root@controller ~]# rpm -qa | grep nova
openstack-nova-scheduler-17.0.10-1.el7.noarch
openstack-nova-api-17.0.10-1.el7.noarch
openstack-nova-common-17.0.10-1.el7.noarch
openstack-nova-placement-api-17.0.10-1.el7.noarch
python2-novaclient-10.1.0-1.el7.noarch
python-nova-17.0.10-1.el7.noarch
openstack-nova-conductor-17.0.10-1.el7.noarch
openstack-nova-novncproxy-17.0.10-1.el7.noarch
openstack-nova-console-17.0.10-1.el7.noarch

本文使用的openstack版本为OpenStack Releases: Queens

组件

组件名称 作用
Keystone 身份服务模块,提供认证管理服务,管理所有组件的认证信息和令牌,负责创建和修改用户、角色和权限等。
Nova 计算服务组件,负责计算资源的管理和实例生命周期管理(虚拟机),提供虚拟机实例的创建、删除、迁移等操作,支持多种虚拟化技术。
Glance 镜像服务组件,提供虚拟机镜像的存储、查询和检索功能,为Nova提供服务,支持多种镜像格式。
Swift 对象存储服务模块,提供高可用分布式对象存储服务,用于存储大量的非结构化数据,如图片、视频、文档等。
Cinder 块存储服务模块,管理所有块存储设备,为虚拟机提供存储服务,支持多种存储后端。
Neutron 网络服务组件,为云计算提供虚拟网络功能,为每个租户建立独立的网络环境,支持多种网络模型和协议。
Ceilometer 监控服务组件,为上层的计费、结算或监控应用提供统一的资源使用数据收集功能,支持多种数据源和监控指标。
Horizon 控制台服务,提供以Web形式对所有节点的所有服务的管理界面,通常称为Dashboard,方便用户进行可视化管理。

这些组件共同协作,为OpenStack提供了一个完整的云计算解决方案,涵盖了计算、存储、网络、监控和管理等多个方面。

OpenStack云平台搭建

VMware安装系统

安装系统生成eth0为名的网卡配置文件

装系统初始界面首先上下键选第一个,然后tab键,按空格输入net.ifnames=0 biosdevname=0,回车开始安装系统

《openstack安装部署详解》

系统安装完成进入后编辑内核

vi /etc/default/grub 
#同样添加biosdevname=0 net.ifnames=0
GRUB_CMDLINE_LINUX="crashkernel=auto biosdevname=0 net.ifnames=0 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap biosdevname=0 net.ifnames=0 rhgb quiet"

vi /etc/selinux/config
SELINUX=disbaled

sudo systemctl stop firewalld  
sudo systemctl disable firewalld

reboot

环境

手把手教你搭建OpenStack云平台(超级详细)_openstack云平台搭建-CSDN博客

用到三个镜像,从以上文章的云盘获取

  • centos7.5镜像链接:https://pan.baidu.com/s/1stvdGLKTwVqrAyzTW-WQuA 提取码:yjsq
  • centos7.0镜像链接:https://pan.baidu.com/s/10zQAxkSqO37_EAX2wVyy9A 提取码:yjsq
  • iaas镜像链接:https://pan.baidu.com/s/11iAL7pQf31Kyer2UfVe2ZA 提取码:yjsq

其中,centos7.5是系统,centos7.0和iaas镜像做yum源

最好在一个新的的系统中测试,我开始使用的是现成的,走了很多弯路,最后还是不得不安装新的系统,记得保存干净环境的镜像,错了直接还原

安装注意事项

以下配置需要按照顺序搭建,错了一步可能都要重来,openrc.sh配置文件有几个要注意的点

1.ip地址一个都不要错,不要两个ip写混了

2.两个系统的密码要和实际密码对应

3.主机名要设置到对应的解析,同配置文件一致

安装配置openstack

配置controller端网卡

cat > /etc/sysconfig/network-scripts/ifcfg-eth0<<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=6d0723bf-40f8-4c4f-b3f7-981398c64298
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.126.70
DNS1=8.8.8.8
GATEWAY=192.168.126.2
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth1<<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=91838ecd-c59c-4f26-b14c-797ea14329b3
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.200.10
DNS1=8.8.8.8
GATWAY=192.168.126.2
EOF
systemctl restart network

配置controller端yum源

mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
mkdir /opt/centos
cp -rf /mnt/* /opt/centos/
umount /mnt/
mount -o loop chinaskills_cloud_iaas.iso /mnt/
cp -rf /mnt/* /opt/
umount /mnt/
cp /etc/yum.repos.d/ /etc/yum.repos.d.bak -r
rm -fr /etc/yum.repos.d/*
cat > /etc/yum.repos.d/local.repo <<EOF
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1

[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1
EOF

yum clean all        #清除yum源缓存
yum repolist        #列出所有可用的yum源
yum install -y vim vsftpd iaas-xiandian   #安装所需的软件包
echo anon_root=/opt/ >> /etc/vsftpd/vsftpd.conf #设置匿名访问
systemctl restart vsftpd        #重启ftp服务
systemctl enable vsftpd        #设置ftp服务开机自启

这个分别配置两个主机的hostname和解析
hostnamectl set-hostname controller
hostnamectl set-hostname compute

cat >> /etc/hosts <<EOF
192.168.126.70 controller
192.168.126.71 compute
EOF

安装controller端软件

cat > /etc/xiandian/openrc.sh <<EOF
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.126.70        #controller节点的IP地址

#Controller HOST Password. example:000000 
HOST_PASS=520140

#Controller Server hostname. example:controller
HOST_NAME=controller

#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.126.71        #compute节点的IP地址

#Compute HOST Password. example:000000 
HOST_PASS_NODE=520140

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute

#--------------------Chrony Config-------------------##
#Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.126.0/24        #controller节点所在的网段

#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack

#Password for rabbit user .example:000000
RABBIT_PASS=000000

#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000

#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo        
ADMIN_PASS=000000
DEMO_PASS=000000

#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.126.70        #本机IP地址

#External Network Interface. example:eth1
INTERFACE_NAME=eth1

#External Network The Physical Adapter. example:provider
Physical_NAME=provider

#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200

#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000

#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000

#Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1        #compute节点的存储块

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2        #compute节点的存储块

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.126.71    #compute节点的IP地址

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000

#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000

#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000

#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000

#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000

#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000

#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000

#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000

#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000

#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000

#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000

#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000

EOF
iaas-pre-host.sh        #刷完该脚本后需要重启
reboot
iaas-install-mysql.sh
iaas-install-keystone.sh
source /etc/keystone/admin-openrc.sh         #使环境生效
iaas-install-glance.sh
iaas-install-nova-controller.sh
iaas-install-neutron-controller.sh
iaas-install-dashboard.sh

配置compute网卡

cat > /etc/sysconfig/network-scripts/ifcfg-eth0<<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=4fc1a2dd-5286-4760-a02d-74f212f0b3ac
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.126.71
DNS1=8.8.8.8
GATEWAY=192.168.126.2
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth1<<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=6f4aff52-ff0e-4319-9678-f013584b0fd1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.200.11
DNS1=8.8.8.8
GATWAY=192.168.126.2
EOF
systemctl restart network

配置compute分区

fdisk /dev/sdb
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-62914559,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-62914559,默认为 62914559):+15G
分区 1 已设置为 Linux 类型,大小设为 15 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (31459328-62914559,默认为 31459328):
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-62914559,默认为 62914559):
将使用默认值 62914559
分区 2 已设置为 Linux 类型,大小设为 15 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

配置compute源

cp /etc/yum.repos.d/ /etc/yum.repos.d.bak -r
rm -fr /etc/yum.repos.d/*
cat > /etc/yum.repos.d/local.repo <<EOF
[centos]
name=centos
baseurl=ftp://192.168.126.70/centos
gpgcheck=0
enabled=1

[iaas]
name=iaas
baseurl=ftp://192.168.126.70/iaas-repo
gpgcheck=0
enabled=1
EOF

yum clean all        #清除yum源缓存
yum repolist        #列出所有可用的yum源

安装compute端软件

yum install -y vim iaas-xiandian   #安装所需的软件包
scp 192.168.126.70:/etc/xiandian/openrc.sh /etc/xiandian/
vim /etc/xiandian/openrc.sh
修改
INTERFACE_IP=192.168.126.71        #本机IP地址
iaas-pre-host.sh         #刷完该脚本后需要重启
reboot
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh

配置成功后网卡2 ip消失

《openstack安装部署详解》

控制台操作

进入登录页面

http://controller-ip/dashboard/

《openstack安装部署详解》

《openstack安装部署详解》

用户

设置修改用户密码

[root@controller ~]# openstack user set --password 'password' test
[root@controller ~]# openstack user set --password '000000' test

云主机类型

根磁盘的大小必须比镜像设置的大,而不是镜像的实际大小,下面的设置错了,至少要8G以上,设置9G

《openstack安装部署详解》

镜像

《openstack安装部署详解》

《openstack安装部署详解》

网络

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

网络拓扑

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

新建路由

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

创建主机

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

浮动ip

《openstack安装部署详解》

《openstack安装部署详解》

安全组

此时无法连接和ping,openstack设置了安全组,只能出不能入

《openstack安装部署详解》

《openstack安装部署详解》

云主机选择安全组,或者在创建云主机时选择安全组,默认时default安全组

《openstack安装部署详解》

《openstack安装部署详解》

问题及解决

步骤出错或者配置错误重新配置

最好保存镜像直接还原

chrony起不来

修改第七行

controller端
vi /etc/chrony.conf
server  ntp.aliyun.com iburst
systemctl restart chronyd.service
copute端
vi /etc/chrony.conf
server controller
systemctl restart chronyd.service

控制节点

iaas-install-neutron-controller.sh报错

这是不按照教程的镜像才有的错误

1:openstack-nova-console-17.0.10-1.el7.noarch 有缺少的需求 python-websockify >= ('0', '0.8.0', None)
1:openstack-nova-novncproxy-17.0.10-1.el7.noarch 有缺少的需求 python-websockify >= ('0', '0.8.0', None)
[Errno 2] No such file or directory: '/etc/neutron/neutron.conf'
[Errno 2] No such file or directory: '/etc/neutron/neutron.conf'
[Errno 2] No such file or directory: '/etc/neutron/neutron.conf'
[Errno 2] No such file or directory: '/etc/neutron/neutron.conf'

版本冲突的问题,解决方法如下:https://ask.csdn.net/questions/7746766

yum remove libxslt.x86_64
yum install libxslt-1.1.28-5.el7.x86_64

edge默认无法访问ftp,修改设置

《openstack安装部署详解》

云主机创建出错

《openstack安装部署详解》

将云主机的根磁盘改为9G即可,因为这是镜像设置的最大大小为8G,镜像实际的大小只有几百M,但磁盘还是必须比设置的大

controller运行正确的截图

运行后基本都是Create symlink 结束,或者结束、Sucess

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

《openstack安装部署详解》

参考

手把手教你搭建OpenStack云平台(超级详细)_openstack云平台搭建-CSDN博客

Clarence_Ls-CSDN博客

点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注