CentOS7.9中使用packstack安装train版本

news2024/11/28 10:57:23

这里写目录标题

  • 材料准备
  • 为什么选择packstack
  • 安装
  • 静态ip
  • 系统配置
    • 使用阿里云yum源
    • 安装packstack
    • 部署openstack
  • 安装成功和后续使用
    • all in one模式下虚拟机外网和浮动ip原理讲解
    • nat网桥的创建方法

材料准备

  1. ecs云服务器8核心16g内存一台,系统盘100GB,系统CentOS7.9
  2. vpc网段:192.168.0.1/24
  3. eip一个,带宽5M以上

为什么选择packstack

对openstack兼容性最好,每年给openstack社区提交代码最多的依然是红帽公司。所以做openstack虚拟化,用红帽系列linux系统最合适,华为的openeuler系统兼容CentOS的原因就在此。packstack适合在一台主机上部署全部openstack,只需要一个网口。

安装

静态ip

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.0.11
PREFIX=24
GATEWAY=192.168.0.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

使用阿里云yum源

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

安装packstack

yum install -y openstack-packstack

部署openstack

一键式部署

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

all in one模式下虚拟机外网和浮动ip原理讲解

用过virt-manager的同学应该熟悉,在图形界面上可以创建NAT网络,然后虚拟机网卡存在于这个网络中。而NAT网络是通过iptables转发给所有物理网卡的。
从上面的配置可以看出,br-ex并没有直接绑定到eth0,而是一个NAT虚拟网络设备。网段区别于eth0,是172.24.4.1/24。
所有网络设备中,只有eth0可以直接访问外网,所以为了得知br-ex和eth0的关系,需要查看转发规则。

  1. packstack自动创建了public网络
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看br-ex和eth0之间的转发关系

[root@openstack yum.repos.d]# ip route show
default via 192.168.0.1 dev eth0 
169.254.0.0/16 dev eth0 scope link metric 1002 
172.24.4.0/24 dev br-ex proto kernel scope link src 172.24.4.1 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.11


[root@openstack yum.repos.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  172.24.4.0/24        anywhere             /* 000 nat */

# 也可以查看防火墙规则
iptables -L -n -v

总结:
packstack在宿主机上创建了一个虚拟网桥,网段是172.24.4.0/24,此时网桥形成一个内网,还不能访问公网,这一步是在openstack内部完成。
紧接着设置iptables转发规则,将br-ex附加nat功能。此时br-ex相当于一个路由器。这是在宿主机上完成,openstack无法直接操控宿主机物理网络设备。
将br-ex注册成物理网络extnet,这一步是在openstack内部完成。即使你不小心将public删除,你也可以根据extnet重新创建public网络。
最后packstack根据extnet,创建flat外部网络并添加子网172.24.4.0/24
新的实验:给public网络创建新的子网172.100.0.0/16,看看br-ex会怎样?
在这里插入图片描述
结果会报错。说明public的子网需要与网桥nat网段保持一致。
公有云厂商的公网ip实现:
服务器上会有个eth2,这个网口连接公网交换机,然后br-ex直接桥接到eth2上,由上游硬件分配公网ip,随后br-ex注册成extnet并创建vxlan模式的public网络。
物理网卡 — br-ex — extnet — 子网 — 浮动ip — 虚拟机
物理网卡到br-ex可以使桥接模式,也可以是nat模式,as you like。

nat网桥的创建方法

要在Linux上创建一个名为 br-ex 的NAT网桥,拥有自己的网段,并将所有流量转发到所有物理网口上,你可以按照以下步骤操作:

# 创建 br-ex 网桥: 使用以下命令创建 br-ex 网桥:
sudo brctl addbr br-ex

# 为 br-ex 分配IP地址: 分配一个IP地址给 br-ex,这个IP地址将充当网关地址。假设你要为 br-ex 分配IP地址为 192.168.1.1/24,可以使用以下命令:
sudo ip addr add 192.168.1.1/24 dev br-ex

# 启用IP转发: 启用Linux内核的IP转发功能,以便将流量转发到所有物理网口。编辑 /etc/sysctl.conf 文件,取消注释或添加以下行:
net.ipv4.ip_forward=1

# 然后,应用新的sysctl设置:
sudo sysctl -p

# 创建iptables规则: 创建iptables规则以实现NAT和流量转发。以下是一些示例规则:
# 清除已有规则
sudo iptables -F
sudo iptables -t nat -F

# 允许所有流量通过
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

# 设置NAT规则
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这些规则将对从 br-ex 发出的流量执行源地址NAT,并将其转发到所有物理网口。

# 启动 br-ex 网桥: 启动 br-ex 网桥以使其生效:
sudo ifconfig br-ex up

现在,br-ex 网桥已经创建,拥有自己的IP地址范围,并且设置了NAT规则以将流量转发到所有物理网口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1069960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.2 数据通信的基础知识

前言&#xff1a; 2.2.1 数据通信的基础知识 **笔记**&#xff1a;2.2.1 数据通信系统的模型 --- **1. 数据通信系统组成**&#xff1a; - 三大部分&#xff1a; 1. 源系统 (发送端) 2. 传输系统 (传输网络) 3. 目的系统 (接收端) --- **2. 源系统**&#xff1a; -…

vue-4

一、文章内容概括 1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; ​ scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法父传子子传父非父子通信&#xff08;扩展&#xff09; 3.进阶语法 v-model原理v-model应用于组件sync修饰符ref和$refs$nex…

SAP SMARTFORMS 文本框显示默认浏览器

问题描述&#xff1a;新上的SAP系统SMARTFORMS文本框显示浏览器&#xff0c;导致无法拉取系统变量 解决方法&#xff1a; 类CL_COS_UTILITIES做隐式增强 IF sy-tcode SMARTFORMS.rv_is_s4h .ENDIF. 然后执行程序&#xff1a;RSCPSETEDITOR 把这俩√去掉后激活即可

MISRA C 2012 阅读笔记

背景 C语言诞生至今已有50年&#xff0c;因其语言简洁&#xff0c;语法丰富&#xff0c;可移植性高&#xff0c;和执行效率高等优点&#xff0c;至今仍保持着强大的生命力&#xff0c;在各个行业发挥着作用。 然而C语言的一些优点有时候也是一把双刃剑&#xff0c;在使用者使用…

Acwing.886 求组合数Ⅱ

题目 给定n组询问&#xff0c;每组询问给定两个整数a&#xff0c; b&#xff0c;请你输出 的值。 输入格式 第一行包含整数n。 接下来n行&#xff0c;每行包含—组a和b。 输出格式 共n行&#xff0c;每行输出—个询问的解。 数据范围 1<n≤10000, 1 <b<a≤105…

Acwing.889 满足条件的01序列

题目 给定n个0和n个1&#xff0c;它们将按照某种顺序排成长度为2n的序列&#xff0c;求它们能排列成的所有序列中&#xff0c;能够满足任意前缀序列中0的个数都不少于1的个数的序列有多少个。 输出的答案对109&#xff0b;7取模。 输入格式 共一行&#xff0c;包含整数n。 …

【python】python虚拟环境--20231008

https://blog.csdn.net/m0_69023493/article/details/129158656 安装好python和pip 略 新建python虚拟空间 安装virtualenv pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple安装virtualenvwrapper-win&#xff08;可选&#xff09; pip install vir…

软件测试/测试开发丨接口测试学习笔记-常见的接口协议

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27726 一、网络模型 二、常见接口协议 RPC协议 RPC(remote procedure call)以本地代码调用的方式实现远程执行主要用于公司内部的服务调用 优点 传输效…

3分钟轻松实现网关网口连接罗克韦尔AB CompactLogix系列PLC

目录 EG网关网口连接罗克韦尔AB CompactLogix系列PLC 一. 准备工作 1.1 在对接前我们需准备如下物品 1.2 EG20网关准备工作 1.3 PLC准备工作 二. EMCP平台设置 2.1 新增EG设备 2.2 远程配置网关 2.3 网关绑定 2.4 通讯参数设置 2.5 创建设备驱动 2.5.1 添加变量 2.…

springcloud之项目实战搭建单体

写在前面 在上篇文章 中我们介绍了项目的整体内容以及架构&#xff0c;本文就开始实现一个单体的版本&#xff0c;在之后的文章中&#xff0c;在使用springcloud相关组件将这个单体的版本一步步的拆分为微服务的版本&#xff0c;在开始之前再贴下组件图&#xff1a; 本文我们分…

win11 vscode配置c/c++,使用mingw编译器

文章目录 第一步&#xff1a;装好vscode第二步&#xff1a;下载 mingw创建一个文件夹作为C或者C的项目文件夹&#xff0c;用vscode打开 第一步&#xff1a;装好vscode 之前使用python时装过 第二步&#xff1a;下载 mingw 官网 3.从这个界面一直往下滑 找到&#xff1a; 下…

是真的吗?Nuture子刊告诉你这么多年的微生物组经验都是错的?!

发表期刊&#xff1a;Nature Microbiology 发表时间&#xff1a;2023 影响因子&#xff1a;28.3 DOI: 10.1038/s41564-023-01426-7 在过去的二十年里&#xff0c;人们对人类微生物组研究的兴趣呈指数级增长&#xff0c;同时伴随而来的一系列相关研究的文献发表数目也是逐年递…

通过cri-o部署k8s集群环境

目录 一.基础环境配置&#xff08;每个节点都做&#xff09; 1.hosts解析 2.防火墙和selinux 3.安装基本软件并配置时间同步 4.禁用swap分区 5.更改内核参数 6.配置ipvs 7.k8s下载 &#xff08;1&#xff09;配置镜像下载相关软件 &#xff08;2&#xff09;配置kube…

B站数据分析,UP主粉丝画像如何看?

随着互联网的发展&#xff0c;在大数据时代的今天&#xff0c;越来越多的企业用它们来指导精准营销&#xff0c;数据资源成为各大公司竞相追逐的香饽饽&#xff0c;而对于短视频广告投放来说&#xff0c;了解账号的粉丝人群画像&#xff0c;就可以知道他们的喜好厌恶&#xff0…

GitHub相应太慢

后期使用到github下载源码&#xff0c;会发现响应太慢&#xff0c;本篇文章解决你的问题 获取域名对应的ip 访问链接&#xff1a;https://raw.hellogithub.com/hosts&#xff08;ps&#xff1a;这链接定时更新&#xff09;&#xff0c;获取对应的host配置。 如果需要工具自动…

专注域控制器深挖护城河,知行科技逐渐摆脱“大客户依赖”

两年营收剧增26倍有余&#xff0c;位列中国第二大第三方自动驾驶域控制器提供商&#xff0c;正是因为这基本面的扎实、护城河的深度&#xff0c;知行科技成长的进程才格外受人关注。在9月中上旬通过聆讯后&#xff0c;上市的一环也即将被补上。 而最近公布的信息里&#xff0c…

Arm64体系架构-MPIDR_EL1寄存器

背景 在Arm64多核处理器中, 各核间的关系可能不同. 比如1个16 core的cpu, 每4个core划分为1个cluster,共享L2 cache. 当我们需要从core 0将任务调度出来时,如果优先选择core 1~3, 那么性能明显时优于其他core的. 那么操作系统怎么知道core之间这样的拓扑信息呢? Arm提供了MPID…

敏捷项目管理解锁:2023年使用YouTrack的全面指南

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

20231008工作心得:sql

1.SQL语句里的if的嵌套使用 if(product A and brand_name B,C,if(product A and brand_name !B,D,product)) as product if&#xff08;A,B,C&#xff09;。SQL里if函数&#xff0c;如果条件A成立&#xff0c;就显示B的值&#xff0c;否则就显示C。 这个代码的意思的&#x…

RK3588实用技巧:查看显示器支持的分辨率,基于weston修改分辨率输出

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/133685938 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…