当前位置: 首页 > news >正文

【云原生系列】openstack搭建过程及使用

目录

搭建步骤

准备工作

正式部署OpenStack

安装的过程

安装组件如下

 登录页面

 进入首页

创建实例步骤

上传镜像

配置网络

服务器配置

dashboard配置

密钥配置免密登录

创建实例

绑定浮动ip 

 免密登录实例


搭建步骤

准备工作

1.关闭防火墙和网关

systemctl disable NetworkManagersystemctl disable firewalldsystemctl stop NetworkManagersystemctl stop firewalld

2.更换yum源

​
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)

  1. 选择中科大镜像源。
  2. 注意不要安装EPEL扩展源因为会导致稍后安装packstack失败,建议只更换基础源不要更换OpenStack相关的源避免后续在获取某些软件包时超时失败。
  3. 使用HTTP协议
  4. 更新软件包
  5. 清空已下载软件包缓存

最好就是选择“更新软件包”完成之后再执行一次

yum makecache

3.安装openstack-train源

yum install centos-release-openstack-train

4.安装packstack

yum install openstack-packstack

5.修改主机名

hostnamectl set-hostname packstackexec bash

6.修改/etc/selinux/config禁用selinux

vi /etc/selinux/config

修改标红处

7.临时关闭selinux 

setenforce 0

8.重启及创建快照

reboot

正式部署OpenStack

packstack --allinone

安装的过程

Clean Up [ DONE ]Discovering ip protocol version [ DONE ]Setting up ssh keys [ DONE ]Preparing servers [ DONE ]Pre installing Puppet and discovering hosts' details [ DONE ]Preparing pre-install entries [ DONE ]Setting up CACERT [ DONE ]Preparing AMQP entries [ DONE ]Preparing MariaDB entries [ DONE ]Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]Preparing Keystone entries [ DONE ]Preparing Glance entries [ DONE ]  Shared Services共享服务Checking if the Cinder server has a cinder-volumes vg[ DONE ]Storage 存储Preparing Cinder entries [ DONE ]Preparing Nova API entries [ DONE ]Creating ssh keys for Nova migration [ DONE ]Gathering ssh host keys for Nova migration [ DONE ]Preparing Nova Compute entries [ DONE ]Preparing Nova Scheduler entries [ DONE ]Preparing Nova VNC Proxy entries [ DONE ]Preparing OpenStack Network-related Nova entries [ DONE ]Preparing Nova Common entries [ DONE ]Compute计算Preparing Neutron LBaaS Agent entries [ DONE ]Preparing Neutron API entries [ DONE ]Networking网络Preparing Neutron L3 entries [ DONE ]Preparing Neutron L2 Agent entries [ DONE ]Preparing Neutron DHCP Agent entries [ DONE ]Preparing Neutron Metering Agent entries [ DONE ]Checking if NetworkManager is enabled and running [ DONE ]Preparing OpenStack Client entries [ DONE ]Preparing Horizon entries [ DONE ]Web frontends 网路的前端Preparing Swift builder entries [ DONE ]Preparing Swift proxy entries [ DONE ]Preparing Swift storage entries [ DONE ] Storage存储Preparing Gnocchi entries [ DONE ]Preparing MongoDB entries [ DONE ]Preparing Redis entries [ DONE ]Preparing Ceilometer entries [ DONE ]Preparing Aodh entries [ DONE ]Preparing Puppet manifests [ DONE ]Copying Puppet modules and manifests [ DONE ]Applying 192.168.0.120_controller.pp192.168.0.120_controller.pp: [ DONE ]Applying 192.168.0.120_network.pp192.168.0.120_network.pp: [ DONE ] 网络Applying 192.168.0.120_compute.pp  计算192.168.0.120_compute.pp: [ DONE ]Applying Puppet manifests [ DONE ]Finalizing [ DONE ]

如下图所示表示安装成功

安装组件如下

 登录页面

访问openstack服务所部署的ip地址,自动跳转到登录页

用户名有两个,admin和demo

初始密码在安装目录下

cat keystonerc_admin

 

 进入首页

创建实例步骤

上传镜像

选用CentOS7的这个镜像,你可以使用admin账号上传镜像并将“可见性”设置成“公有”

镜像下载地址:

# centos7
http://cloud.centos.org/centos/7/images/

# ubuntu
http://cloud-images.ubuntu.com/focal/20220213/

# windows
https://cloudbase.it/windows-cloud-images/#download

等待的时间可能较长,成功后如下

配置网络

服务器配置

网络的配置部分,我们需要修改网卡的配置还有桥接网桥的配置实现OpenStack实例访问外网

我的网卡是ens33,有的可能是ens192,与自己的保持一致即可

vi /etc/sysconfig/network-scripts/ifcfg-ens33#ifcfg-ens33
TYPE=OVSPort
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
vi /etc/sysconfig/network-scripts/ifcfg-br-exTYPE=OVSBridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=192.168.25.24  #本机地址
GATEWAY=192.168.25.254  #服务器的网关,使用vmware的话在网络配置器可以看到
PREFIX=24
DNS1=8.8.8.8
DEVICETYPE=ovs

配置后重启网络

systemctl restart network

使用 ip addr命令检查网桥是否成功设置IP地址并能连通外网

dashboard配置

直接以admin身份登录

来到管理员选项卡中的网络-网络可以看到当前有两个项目,admin项目是外网,demo项目是其自有的私网,目前外网的子网网段不符合实际情况需要进行重新创建

 

 

来到管理员选项卡中的网络-路由可以看到默认demo项目已经有了一个路由绑定了外部网络,需要先对其删除才能重新创建public中的子网

 回到管理员选项卡中的网络-网络,直接点击蓝色public进行子网的重新创建

 先删除原子网

 

 再点击创建子网

子网创建完成

 重新创建demo项目的路由

退出当前账户,使用demo账户登录

 进入网络-路由,点击刚刚重新创建的demo路由,给其添加一个接口用于私网用于连接外部网络

 

 添加成功列表

 进入网络-网络拓扑查看网络拓扑,检查是否内外网通过demo路由连接到一起,此为配置完成

为了Ping通和能够使用SSH登录到实例需要修改默认安全组规则

 

 

添加一个浮动IP用于绑定实例,通过这个浮动IP可以和实例进行关联,通过浮动ip进入该实例

名字尽量和实例对应

密钥配置免密登录

在计算选项卡导入宿主机的公钥/终端模拟软件生成的密钥用于SSH连接实例

这里导入宿主机的公钥,安装packstack时应该默认就已经自动生成了一个公钥,可以直接使用这个公钥

点击导入密钥,第一次导入的话不会报错,我之前已经导入过一次了。

创建实例

 在计算-实例页面创建实例

点击创建实例完成创建。创建成功后列表如下

绑定浮动ip 

 

选择当时创建的浮动ip,端口选择默认的。然后点击关联

 列表如下,已经绑定浮动IP

 免密登录实例

在openstack服务器中,通过ssh命令进入

ssh centos@192.168.25.133

相关文章:

【云原生系列】openstack搭建过程及使用

目录 搭建步骤 准备工作 正式部署OpenStack 安装的过程 安装组件如下 登录页面 进入首页 创建实例步骤 上传镜像 配置网络 服务器配置 dashboard配置 密钥配置免密登录 创建实例 绑定浮动ip 免密登录实例 搭建步骤 准备工作 1.关闭防火墙和网关 systemctl dis…...

无涯教程-jQuery - Menu组件函数

小部件菜单功能可与JqueryUI中的小部件一起使用。一个简单的菜单显示项目列表。 Menu - 语法 $( "#menu" ).menu(); Menu - 示例 以下是显示菜单用法的简单示例- <!doctype html> <html lang"en"><head><meta charset"utf-…...

Django用户登录验证和自定义验证类

一、FBV 用户登录验证 1.1 登录验证并加入 session 用户登录时&#xff0c;使用 authenticate 验证用户名和密码是否正确&#xff0c;正确则返回一个用户对象。 用户名默认的字段名是 username 密码默认的字段名是 password 将已验证的用户添加到当前会话(session)中&#x…...

json-server详解

零、文章目录 json-server详解 1、简介 Json-server 是一个零代码快速搭建本地 RESTful API 的工具。它使用 JSON 文件作为数据源&#xff0c;并提供了一组简单的路由和端点&#xff0c;可以模拟后端服务器的行为。github地址&#xff1a;https://github.com/typicode/json-…...

MacOS Monterey VM Install ESXi to 7 U2

一、MacOS Monterey ISO 准备 1.1 下载macOS Monterey 下载&#x1f517;链接 一定是 ISO 格式的&#xff0c;其他格式不适用&#xff1a; https://www.mediafire.com/file/4fcx0aeoehmbnmp/macOSMontereybyTechrechard.com.iso/file 1.2 将 Monterey ISO 文件上传到数据…...

哈工大计算机网络课程网络安全基本原理详解之:消息完整性与数字签名

哈工大计算机网络课程网络安全基本原理详解之&#xff1a;消息完整性与数字签名 这一小节&#xff0c;我们继续介绍网络完全中的另一个重要内容&#xff0c;就是消息完整性&#xff0c;也为后面的数字签名打下基础。 报文完整性 首先来看一下什么是报文完整性。 报文完整性…...

K8s:K8s 20个常用命令汇总

写在前面 博文内容为节译整理&#xff0c;用于温习理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&#xff0c;是人的逃避方式&#xff0…...

DHCP防护原理

电脑刚连接到网络 是没有IP地址的 。 通过发送广播到DHCPO服务器。 DHCP服务器响应对应的 IP地址&#xff08;简要过程&#xff09;。 如果有人私自挂接WIFI&#xff0c;相当于DHCP服务器&#xff0c;但这个DHCP服务器是假的&#xff0c;就会引起电脑接入获取家用WIFI的地址&…...

leetcode2434. 使用机器人打印字典序最小的字符串 出栈顺序 贪心+栈

https://leetcode.cn/problems/using-a-robot-to-print-the-lexicographically-smallest-string/ 给你一个字符串 s 和一个机器人&#xff0c;机器人当前有一个空字符串 t 。执行以下操作之一&#xff0c;直到 s 和 t 都变成空字符串。请你返回纸上能写出的字典序最小的…...

【程序设计】一文讲解程序设计目标:高内聚,低耦合

前言 软件设计的目标是高内聚、低耦合。 如果代码是高耦合和低内聚的&#xff0c;就会出现修改一个逻辑&#xff0c;会导致多处代码要修改&#xff0c;可能影响到多个业务链路&#xff0c;这增加了出bug的业务风险&#xff0c;同时增加了测试回归的范围&#xff0c;导致研发成…...

nginx mirror代码分析

实现方式 mirror逻辑的工作阶段&#xff1a; ngx在log phase之后&#xff08;在ngx_http_free_request处调用&#xff09;已完成向client端返回response&#xff0c;在log phase之后完成close connection&#xff08;短链接&#xff09;&#xff0c;在该阶段处理mirror逻辑不…...

Python代理模式介绍、使用

一、Python代理模式介绍 Python代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式。在代理模式中&#xff0c;代理对象充当了另一个对象的占位符&#xff0c;以控制对该对象的访问。 代理对象和被代理对象实现了相同的接口&#xff0c;因此它们可以互相替代…...

《MySQL45讲》笔记—索引

索引 索引是为了提高数据查询效率&#xff0c;就像书的目录一样。如下图&#xff0c;索引和数据就是位于存储引擎中&#xff1a; 索引常见模型 哈希表 以键值对存储的数据结构。适用于只有等值查询的场景。 有序数组 在等值查询和范围查询场景中性能都特别优秀。但是有…...

Android usb host模式通信示例

当使用Android设备作为USB主机时&#xff0c;可以使用Android提供的USB API来进行USB通信。下面是一个简单的Android USB通信的示例。在这个示例中&#xff0c;我们将发送一条消息到连接的USB设备并从USB设备接收响应。 首先&#xff0c;在AndroidManifest.xml文件中添加以下权…...

开源Blazor UI组件库精选:让你的Blazor项目焕然一新!

今天给大家推荐一些开源、美观的Blazor UI组件库&#xff0c;这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率&#xff0c;还能够为他们的项目带来更加丰富的用户体验。 注&#xff1a;排名不分先后&#xff0c;都是十分优秀的开源框架和项目 ​Ant Design Blazor…...

MATLAB RANSAC圆柱体点云拟合 (28)

MATLAB RANSAC圆柱体点云拟合 (28) 一、算法介绍二、函数介绍三、算法实现四、效果展示一、算法介绍 RANSAC拟合方法,从原始点云中拟合具有特定形状的点云,这里对原始点云中大致呈圆柱的点云进行分割,圆柱的半径,以及朝向都是比较重要的定义圆柱的参数。下面是具体使用的…...

【AI】《动手学-深度学习-PyTorch版》笔记(七):自动微分

AI学习目录汇总 1、什么是自动微分 自动微分:automatic differentiation,深度学习框架通过自动计算导数,即自动微分,自动微分使系统能够随后反向传播梯度。 计算图:computational graph,根据设计好的模型,系统会构建一个计算图, 来跟踪计算是哪些数据通过哪些操作组合…...

vuejs源码阅读之代码生成器

代码生成器是模版编译的最后以后&#xff0c;它的作用是将AST转换成渲染函数中的内容&#xff0c;这个内容可以称为代码字符串。 代码字符串可以被包装在函数中执行&#xff0c;这个函数就是我们通常说的渲染函数。 渲染函数被执行之后&#xff0c;可以生成一份VNode&#xf…...

【MySQL】视图(十)

&#x1f697;MySQL学习第十站~ &#x1f6a9;本文已收录至专栏&#xff1a;MySQL通关路 ❤️文末附全文思维导图&#xff0c;感谢各位点赞收藏支持~ 一.引入 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据…...

面试手写实现Promise.all

目录 前言常见面试手写系列Promise.resolve 简要回顾源码实现Promise.reject 简要回顾源码实现Promise.all 简要回顾源码实现Promise.allSettled 简要回顾源码实现Promise.race 简单回顾源码实现结尾 前言 (?﹏?)曾经真实发生在一个朋友身上的真实事件&#xff0c;面试官让…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...