对openstack兼容性最好,每年给openstack社区提交代码最多的依然是红帽公司。所以做openstack虚拟化,用红帽系列linux系统最合适,华为的openeuler系统兼容CentOS的原因就在此。packstack适合在一台主机上部署全部openstack,只需要一个网口。
yum -y update
systemctl enable network.service --now
# 禁用NetworkManager
systemctl disable NetworkManager --now
# 查看网口设备名,默认网卡名称是eth0
ip a
# 修改为静态ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
---------------------------------------------------
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.3.11
PREFIX=24
GATEWAY=192.168.3.1
# hosts文件
echo "192.168.0.11 openstack" >> /etc/hosts
# 设置主机名为openstack
hostnamectl set-hostname openstack
# 生成密钥
ssh-keygen -t rsa
# 拷贝公钥到本机
ssh-copy-id root@127.0.0.1
# 关闭防火墙
systemctl disable firewalld --now
# 关闭selinux
setenforce 0
vim /etc/selinux/config
-----------------------------------------
SELINUX=disabled
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache
yum -y update
# 安装一些包
yum -y install vim bash-completion yum-utils
# 安装openstack源码包
yum search openstack
yum -y install centos-release-openstack-train
# 修改openstack的repo文件地址,把mirrorlist替换成阿里云baseurl
cp -a /etc/yum.repos.d/CentOS-OpenStack-train.repo /etc/yum.repos.d/CentOS-OpenStack-train.repo.bak
vim /etc/yum.repos.d/CentOS-OpenStack-train.repo
-----------------------------------------------------
# 把[centos-openstack-train]中mirrorlist一行注释掉,然后放开baseurl
# 修改baseurl如下
baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/cloud/$basearch/openstack-train/
# 更新缓存
yum clean all && yum makecache
yum install -y openstack-packstack
一键式部署
packstack --allinone
安装过程中缺少leatherman_curl.so文件需要自行解决
应答文件式部署
# 生产部署文件
packstack --gen-answer-file /root/openstack-answer.ini
# 修改文件中的几个参数
CONFIG_HEAT_INSTALL=y #安装heat模板服务
CONFIG_PROVISION_DEMO=n #我们不要提供的demo项目
CONFIG_KEYSTONE_ADMIN_PW=123456 #设置登陆密码
CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:eth0 # 设置openstack外网br-ex桥接到哪个网卡
# 最后根据每个服务器上的应答文件部署openstack
packstack --answer-file /root/openstack-answer.ini
安装成功后的提示
**** Installation completed successfully ******
Additional information:
* Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
* A new answerfile was created in: /root/packstack-answers-20231008-074746.txt
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.0.11. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.0.11/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20231008-074746-bd2HY5/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20231008-074746-bd2HY5/manifests
You have new mail in /var/spool/mail/root
查看宿主机网卡设备
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:81:f8:5a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.11/23 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe81:f85a/64 scope link
valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether d6:a8:67:b2:86:c8 brd ff:ff:ff:ff:ff:ff
4: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 0a:55:ae:7a:da:44 brd ff:ff:ff:ff:ff:ff
inet 172.24.4.1/24 scope global br-ex
valid_lft forever preferred_lft forever
inet6 fe80::855:aeff:fe7a:da44/64 scope link
valid_lft forever preferred_lft forever
5: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ce:72:1e:24:dc:44 brd ff:ff:ff:ff:ff:ff
目前安装的openstack没有连接外网,导致虚拟机ping不通百度。
打通外网的步骤是设置br-ex网桥,然后在openstack内部重新创建public网络
# 查看目前的网络设备,可以看到br-ex没有ip
ip a
# 查看ovs网桥
ovs-vsctl list-br
# 查看br-ex网桥端口
ovs-vsctl list-ports br-ex
# 配置ovs网桥br-ex
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-br-ex
vim ifcfg-br-ex
--------------------------------------------
TYPE=OVSBridge
DEVICETYPE=ovs
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=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=192.168.3.11
PREFIX=24
GATEWAY=192.168.3.1
DNS1=114.114.114.114
PEERDNS=no
vim ifcfg-eth0
------------------------------------------
TYPE=OVSPort
NAME=eth0
DEVICE=eth0
ONBOOT=yes
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
# 重启网卡
systemctl restart network
可以看到ovs网桥br-ex已经激活并配置ip

用admin重新登录面板,删除现有的router和public网络,重建新的public网络。
管理员–>网络–>路由,直接删除router1

管理员–>网络–>网络,删除public网络,新建一个新的public网络



最后点击创建

重建一个公网路由router-pub

这种连接public网络的路由叫公网网关,不再是普通路由了,给网关创建一个内部接口

网络拓扑如图,两个虚拟机通过router1访问外网

为虚拟机绑定浮动ip



虚拟机ping百度成功

all in one 的openstack算是搞定了!packstack这个工具就是专门搞all in one的,这是RDO官网的原话,如果你想要实现一个高可用的openstack生产环境,你可以采用RDO的另一个工具TripleO!这款工具是金融级别的,绝对安全。通过openstack部署openstack。先在一台节点上部署几个简单的openstack组件然后通过这个节点部署一个高可用openstack。最初的这台服务器叫点火节点,就像打火机一样。
TripleO有云下环境和云上环境,当你的controller节点都挂了,也能通过云下备份恢复你的openstack集群。
RDO官网:https://www.rdoproject.org/