CentOS 7 手动安装OpenStack

news2024/9/23 7:27:20

官网文档

因为之前已经在 Ubuntu 20.04 下完成了 Ubuntu 20.04 手动安装OpenStack ,最后,想要学习 OVN 的时候,发现 ubuntu 上的 OVN 安装很复杂,没有 TripleO/RDO based deployments ,所以,又在 CentOS 7.9 上完成了一次 OpenStack Controller 安装

一、我的环境(前提)

1 个 Hyper-V 虚拟机
Controller (CentOS 7.9)
管理者网卡( Management ): 192.168.0.145
公网提供者网卡 ( Provider ): 203.0.113.145

依然使用之前模拟的 203.0.113.1 网关
Ubuntu 18.04 通过 ufw route 配置网关服务器

抱歉!大部分内容从之前抄写过来的

二、关于 网卡 IP 和角色

  1. 来回失败的尝试,死活 ping 不通 route 的地址 (203.0.113.XX)

  2. 习惯性的以为 Networking 部分配置不对,于是在
    Install and configure for Ubuntu 这里打转转,甚至折腾了好久 OVN Install Documentation

  3. 无奈又无聊的时候,翻看文档
    原文抄录如下:

    **Management on 10.0.0.0/24 with gateway 10.0.0.1

    This network requires a gateway to provide Internet access to all nodes for administrative purposes such as package installation, security updates, DNS, and NTP.

    Provider on 203.0.113.0/24 with gateway 203.0.113.1

    This network requires a gateway to provide Internet access to instances in your OpenStack environment.**

    终于恍然大悟!问题出在网关(gateway)!

  4. 这个 Provider 在以前版本叫 Public ,开始总是半知半解,把 2 个单词加一起理解比较好

  5. 学习中不可能有实际公网地址和网关给我们使用,所以,模拟一个 203.0.113.0/24 网关

  6. 如果不想单独用一个虚拟机作为网关,可以在 Controller 增加第三个网卡来模拟

总之,要想最终可以 ping 通路由器和虚拟机的浮动地址,开始时就需要预备好网关
在 Controller 和 Compute1 服务器上, ping 通203.0.113.1

三、环境准备

Environment

学习过程中所有的密码设置为同一个,例如: secret
Host networking按照前面修改为自己的 IP

OpenStack packages for RHEL and CentOS

这里列举了所有版本的 OpenStack repository ,但是,实际上对应 CentOS 7 只有可怜的几个

[root@localhost ~]#  yum list centos-release-openstack*
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.aliyun.com
可安装的软件包
centos-release-openstack-queens.noarch           1-2.el7.centos           extras
centos-release-openstack-rocky.noarch            1-1.el7.centos           extras
centos-release-openstack-stein.noarch            1-1.el7.centos           extras
centos-release-openstack-train.noarch            1-1.el7.centos           extras

查询 OpenStack的历史版本,发现 train 才是这其中的最新版,原来我还傻傻的以为列表的第一个 queen 版本最新!

抄写一下对应的步骤

# yum install centos-release-openstack-train

# yum install https://rdoproject.org/repos/rdo-release.rpm

# yum upgrade

# yum install python-openstackclient

# yum install openstack-selinux

四、Controller 安装 OpenStack 服务

Install OpenStack services
如图所示,建议安装到 Networking service – neutron installation for Xena 之前,
再做一个快照!
再做一个快照!
再做一个快照!

在这里插入图片描述
安装完 Networking service – neutron installation for Xena 之后,
再做一个快照!
再做一个快照!
再做一个快照!

还有一个 network bridge filters 需要设置

vim /etc/sysctl.conf

增加

net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

必须先加载模块 br_netfilter

 modprobe  br_netfilter 

应用生效

sysctl -p /etc/sysctl.conf

	net.bridge.bridge-nf-call-iptables = 1
	net.bridge.bridge-nf-call-ip6tables = 1

因为完全单独安装完成 Controller ,所以验证这里会缺少一项 compute1,只有 4 条

[root@controller ~]# openstack network agent list

+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host       | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
| 7208479a-62e5-44d9-9ad8-3aa393973949 | Linux bridge agent | controller | None              | :-)   | UP    | neutron-linuxbridge-agent |
| 9a065e95-3bf0-48f7-9605-7766311e78da | DHCP agent         | controller | nova              | :-)   | UP    | neutron-dhcp-agent        |
| a01323eb-19a6-4446-8d05-e7fe4b3f7d3e | L3 agent           | controller | nova              | :-)   | UP    | neutron-l3-agent          |
| f7c78cc7-ee8e-4949-840f-af9d70da6c5e | Metadata agent     | controller | None              | :-)   | UP    | neutron-metadata-agent    |
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+

不要着急进入 : Dashboard
跳到下一步 : Launch an instance

五、发布一个实例

Launch an instance

如果担心后续虚拟机 ping 不通外网,可以修改 8.8.4.4 为 114.114.114.114 等国内 DNS

  1. 创建公网提供者(provider)网络和子网
    Provider network

    抄录一下 3 条命令

     $ . admin-openrc
     
     $ openstack network create  --share --external \
       --provider-physical-network provider \
       --provider-network-type flat provider
       
       $ openstack subnet create --network provider \
       --allocation-pool start=203.0.113.101,end=203.0.113.250 \
       --dns-nameserver 8.8.4.4 --gateway 203.0.113.1 \
       --subnet-range 203.0.113.0/24 provider
    
  2. 创建私有网络(selfservice)网络和子网
    Self-service network

    抄录一下 3 条命令

     $ . demo-openrc
     
     $ openstack network create selfservice
     
     $ openstack subnet create --network selfservice \
       --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
       --subnet-range 172.16.1.0/24 selfservice
    
  3. 创建路由器(router)
    抄录一下 4 条命令

     $ . demo-openrc
     
     $ openstack router create router
     
     $ openstack router add subnet router selfservice
     
     $ openstack router set router --external-gateway provider
    
  4. 验证网络连通性

    1). root@controller:/home/dhbm# source admin-openrc

    2). root@controller:/home/dhbm# ip netns

     qrouter-f6a53f5b-104a-4840-bd67-db6b5a51d6dd (id: 2)
     qdhcp-1c17dcdc-ab9a-4324-8dc0-e5a21515323d (id: 0)
     qdhcp-dcda4686-434c-409c-8de4-134eafdbe939 (id: 1)
    

    3). root@controller:/home/dhbm# openstack port list --router router

     +--------------------------------------+------+-------------------+------------------------------------------------------------------------------+--------+
     | ID                                   | Name | MAC Address       | Fixed IP Addresses                                                           | Status |
     +--------------------------------------+------+-------------------+------------------------------------------------------------------------------+--------+
     | 32127872-6154-44d0-b52d-5408fe659528 |      | fa:16:3e:14:b6:32 | ip_address='172.16.1.1', subnet_id='c0a15e76-3694-4b61-9101-71a9aed1e7b0'    | ACTIVE |
     | fe315fd4-9014-43f0-a64f-472758ac305f |      | fa:16:3e:c5:a5:e9 | ip_address='203.0.113.198', subnet_id='eac59d6f-a533-424d-bb22-8bc504acf773' | ACTIVE |
     +--------------------------------------+------+-------------------+------------------------------------------------------------------------------+--------+
    

    4). root@controller:/home/dhbm# ping 203.0.113.198

     PING 203.0.113.198 (203.0.113.198) 56(84) bytes of data.
     64 bytes from 203.0.113.198: icmp_seq=1 ttl=64 time=0.090 ms
     64 bytes from 203.0.113.198: icmp_seq=2 ttl=64 time=0.065 ms
     64 bytes from 203.0.113.198: icmp_seq=3 ttl=64 time=0.076 ms
     ......
    
  5. 后悔药 (反向删除以上 2 个 network 和 router)

    openstack router remove subnet router selfservice
    openstack router delete router
    openstack subnet delete  selfservice
    openstack network delete selfservice
    openstack subnet delete  provider
    openstack network delete provider
    

本文不再继续安装 openstack-dashboard

本来是准备用来学习 OVN 的,到这里才发现 train (以及更早)版本,不支持 OVN ,文档中就没有,究其原因,可能是因为老版本还都是 python 2 ,新版本都是 python 3

测试一下之前的 compute1 加入

之前的 compute1 是 ubuntu 20.04 安装的 XENA 版本的 nova 计算节点
openstack compute service list 找不到 compute1
openstack network agent list 可以看到 compute1

查看日志
root@compute1:/home/dhbm# tail /var/log/nova/nova-compute.log

2022-11-24 08:23:02.666 1918 ERROR nova   File "/usr/lib/python3/dist-packages/nova/scheduler/client/report.py", line 231, in _create_client
2022-11-24 08:23:02.666 1918 ERROR nova     client = self._adapter or utils.get_sdk_adapter('placement')
2022-11-24 08:23:02.666 1918 ERROR nova   File "/usr/lib/python3/dist-packages/nova/utils.py", line 984, in get_sdk_adapter
2022-11-24 08:23:02.666 1918 ERROR nova     return getattr(conn, service_type)
2022-11-24 08:23:02.666 1918 ERROR nova   File "/usr/lib/python3/dist-packages/openstack/service_description.py", line 87, in __get__
2022-11-24 08:23:02.666 1918 ERROR nova     proxy = self._make_proxy(instance)
2022-11-24 08:23:02.666 1918 ERROR nova   File "/usr/lib/python3/dist-packages/openstack/service_description.py", line 266, in _make_proxy
2022-11-24 08:23:02.666 1918 ERROR nova     raise exceptions.NotSupported(
2022-11-24 08:23:02.666 1918 ERROR nova openstack.exceptions.NotSupported: The placement service for controller:RegionOne exists but does not have any supported versions.
2022-11-24 08:23:02.666 1918 ERROR nova 

看来,如果实际使用 OpenStack 的话,一定保证 controller 节点和 compute 节点的软件版本一致!

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

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

相关文章

项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人

本文已在【飞桨PaddlePaddle】公众号平台发布,详情请戳链接:项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人 皮影戏是一种以兽皮或纸板做成的人物剪影以表演故事的民间戏剧,皮影一般由头、躯干&#x…

2003-2019年各省市场分割指数全步骤数据+最终结果

2003-2019年市场分割指数 1、时间:2003-2019年 2、数据包含:31各省份市场分割指数全步骤数据和最终结果 3、具体内容:市场分割指数差分形式相对价格、市场分割指数去均值、市场分割指数方差、市场分割指数最终结果。 4、指标说明&#xf…

vue3 框架学习概念笔记

文章目录前情提要框架设计概览命令式声明式小结虚拟dom性能运行时和编译时框架设计核心要素声明式描述UI渲染器组件的本质vue.js模板响应式系统概念完善的响应式系统响应式系统的调度计算属性Computedwatch 原理竞态问题非原始值的响应式方案javaScript 对象原始值的响应式方案…

毕业后河北种水稻 国稻种芯·中国水稻节:安徽姑娘承德务农

毕业后河北种水稻 国稻种芯中国水稻节:安徽姑娘承德务农 (新华每日电讯记者刘金海、方欣、牟宇) 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道:整…

【Linux】内存查看vmstat命令(虚拟内存统计)

vmstat命令:虚拟内存统计 CPU使用率内存试用虚拟内存交换情况IO读写情况 process r:运行和等待CPU时间片的进程数 超过cpu个数, 出现CPU瓶颈 长时间大于1,CPU不足,需要增加CPU b:正在等待资源的进程数&…

玩转MySQL:定位排查解决突发Bug

引言 前面MySQL优化、调化两文中,聊到了关于数据库性能优化的话题,而本文则再来聊一聊关于MySQL线上排查方面的话题。线上排查、性能优化等内容是面试过程中的“常客”,而对于线上遇到的“疑难杂症”,需要通过理性的思维去分析问…

Java岗位必备技能SpringBoot的面试题集锦

当下SpringBoot框架真的很火,大多数企业把它作为基础技能,考察求职者的能力。如下截图,是我从Boss直聘中找到的,要求SpringBoot是必备技能。 所以非常有必要为了面试,好好归纳下SpringBoot常被提起来的问题。 题目大纲…

Tesseract .Net SDK C# OCR 2022.1

Tesseract .Net SDK C# OCR 库 #将扫描的 PDF 转换为可搜索的文档 #快速准确的基于神经网络的引擎 #纠正低质量扫描 # 120 多种语言 # .Net 2.0, .Net 5, 标准, 核心 Tesseract OCR - industry-fastest .Net OCR library 4 行代码,仅此而已 var api OcrApi.Creat…

[附源码]java毕业设计疫情环境下的酒店管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

不知道什么的复习题

P4408 [NOI2003] 逃学的小孩,一眼就看出要化简题面:不就是找三个点使得ABBC最大嘛,不妨想起直径的性质,最长,而且其他点到它的距离最长。那么直接拿直径来做就行。推导出结论为ansmax(min(dis[A][k],dis[B][k])dis[A][…

CSS3------CSS选择器

界面中的“超文本“本质上就是通过一个一个矩形盒子包起来,然后进行排版组合,那么接下来要详细研究这个标签盒子的细节结构,以帮助学习如何使用它,但是在开始研究它之前,我们先来了解一个概念,选择器的概念…

BN、CBN、CmBN 的对比与总结

BN、CBN、CmBN 的对比与总结 最近看到了关于 Yolo 系列 trick 的总结文章 【Make YOLO Great Again】YOLOv1-v7全系列大解析(Tricks篇),其中提到了 YoloV4 中使用了 CmBN,这是对 CBN 的改进,可以较好的适应小 batch 的…

电容笔值不值得买?电容笔十大品牌排行

要想给我们的ipad配置一款电容笔,如果感觉苹果原装的电容笔价格远远超过预算。这时候平替电容笔是个非常值得入手的选择。试想一下购买一款苹果原装的电容笔的资金都够买整整四款平替电容笔了,平替电容笔价格便宜且功能跟苹果的电容笔相差无几。下面我来…

【设计模式】 - 结构型模式 - 迭代器模式

目录标题前言迭代器模式概述结构实现优缺点JDK源码解析前言 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。 行为型模式分为类行为模式和对象…

ai绘画有哪些软件,盘点三款免费且超级好用的AI绘画工具

Ai绘画有哪些软件?不但可以免费使用,而且生成的画作精美,而且生成的图片速度还要很快? 不用急,今天小编给大家推荐的这三款ai绘画工具完全满足了上述条件! 第一款,重磅级产品,数画…

内存 地址转换、分段、空闲空间管理

目录 1. 地址转换 1.1 动态重定位 1.1.1 基址寄存器(虚拟地址 -> 物理地址) 1.1.2 界限寄存器(提供访问保护) 1.2 操作系统的工作 2. 分段 2.1 分段:泛化的基址/界限 2.2 引用哪个段 2.3 代码和堆的地址转换举例 2.4…

Java#23(常见API--1)

目录 一.Math Math是一个帮助我们用于进行数学计算的工具类 工具类的特点: Math类中的常用方法 二.System System是一个工具类,为我们提供一些与系统相关的办法 一.Math Math是一个帮助我们用于进行数学计算的工具类 工具类的特点: 私有化构造方法,所有的方法都是静态的 M…

[附源码]java毕业设计医院预约挂号管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

web网页设计期末课程大作业 我的美丽家乡盐城 HTML+CSS+JavaScript

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

Linux C应用编程-2-Makefile编写

1.基本规则 #规则格式 target ... : prerequisites ... command1command2#例如 main: main.o stack.o maze.ogcc main.o stack.o maze.o -o main main是规则的目标(Target),main.o、stack.o和maze.o是规则的条件(Prerequisite&am…