openEuler 22.03 LTS SP3源码编译部署OpenStack-Bobcat(Neutron使用OVN)

news2024/11/26 0:51:36

openEuler 22.03 LTS SP3部署OpenStack-Bobcat

  • 说明
  • 机器详情
  • 安装操作系统注意事项
  • 基础准备
    • Controller节点 && Compute节点 && Block节点
      • 关闭防火墙
      • 关闭selinux
      • 设置静态IP
      • 更新
  • 安装前准备
    • Controller节点 && Compute节点 && Block节点
      • 设置主机名
      • 配置hosts
      • 验证配置
  • 安装 SQL DataBase
    • Controller节点
      • 安装软件包
      • 编辑配置文件
      • 启动服务
      • 初始化配置
  • 安装 RabbitMQ
    • Controller节点
      • 安装软件包
      • 启动服务
      • 添加openstack用户
      • 设置openstack用户权限,允许进行配置、写、读
  • 安装 Memcached
    • Controller节点
      • 安装软件包
      • 编辑配置文件
      • 启动服务
      • 验证
  • 安装Keystone
    • Controller节点
      • 下载源码包
      • 创建数据库
      • 安装httpd、mod_wsgi软件包
      • 解压keystone-24.0.0.tar.gz
      • 安装所需依赖包
      • 把SQLAlchemy的版本降为1.4.49
      • 编译安装
      • 创建/etc/keystone文件夹
      • 复制etc/目录下的内容到/etc/keystone
      • 创建并编辑keystone配置文件
      • 同步数据库
      • 初始化Fernet密钥仓库
      • 启动服务
      • 配置Apache HTTP server
      • 启动Apache HTTP服务
      • 创建脚本文件
      • 下载openstackclient源码包
      • 解压python-openstackclient-6.3.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建domain
      • 创建project
      • 创建user
      • 创建role
      • 将role添加到project和user
      • 验证
  • 安装Glance
    • Controller节点
      • 下载源码包
      • 创建数据库
      • 创建glance用户
      • 将glacne添加到admin中去
      • 创建glance服务实体
      • 创建Image服务API端点
      • 解压glance-27.0.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建/etc/glance文件夹
      • 复制etc/文件夹下的内容到/etc/glance
      • 创建并编辑glance配置文件
      • 同步数据库
      • 创建/var/lib/glance/images/文件夹并修改权限
      • 编写servie并启动服务
      • 验证
  • 安装Placement
    • Controller节点
      • 下载源码包
      • 创建数据库
      • 创建placement用户
      • 将用户添加到admin
      • 创建placement服务实体
      • 创建API 服务端点
      • 解压openstack-placement-10.0.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建/etc/placement文件夹
      • 创建并编辑placement文件
      • 同步数据库
      • 安装uwsgi
      • 创建service并启动
      • 重启httpd服务
      • 验证1
      • 下载osc-placement-4.2.0.tar.gz
      • 解压osc-placement-4.2.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 验证2
  • 安装Nova
    • Controller节点
      • 下载源码包
      • 创建数据库
      • 创建nova用户
      • 添加到admin
      • 创建nova服务实体
      • 创建API服务端点
      • 解压nova-28.0.1.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建/etc/nova文件夹
      • 复制etc/nova目录下的内容到/etc/nova
      • 创建并编辑nova配置文件
      • 创建/var/lib/nova/tmp
      • 解压noVNC-master.zip
      • 复制到/usr/share/novnc
      • 创建vnc_auto.html链接文件
      • 同步数据库
      • 创建service并启动
    • Compute节点
      • 编译安装libvirt-7.0.0
      • 安装dnsmasq
      • 重启dnsmasq服务
      • 下载源码包
      • 解压nova-28.0.1.tar.gz
      • 安装依赖包
      • 降低SQLAlchemy的版本为1.4.49
      • 编译安装
      • 创建/etc/nova文件夹
      • 复制etc/nova目录下的内容到/etc/nova
      • 创建并编辑nova配置文件
      • 修改虚拟类型
      • 安装libvirt-python
      • 创建/var/lib/nova/instances/与/var/lib/nova/tmp并修改权限
      • 编写service并启动
    • 验证(controller)
    • 安装qemu-img(Controller && Compute && Block)
  • 安装Neutron(使用的是OVN)
    • 编译安装OVN(Controller节点 && Compute节点)
      • 下载OVN源码包
      • 下在与之对应的OVS源码包
      • 解压
      • 删除OVS空目录
      • 解压OVS压缩包并移动到OVN目录下并重命名为OVS
      • 进入ovs目录执行下面命令,对ovs进行编译安装
      • 回到ovn目录执行下面命令对ovn进行编译安装
    • Controller节点
      • 下载源码包
      • 创建数据库
      • 创建neutron用户
      • 添加到admin
      • 创建neutron服务实体
      • 创建API端点
      • 解压neutron-23.1.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建/etc/neutron文件夹
      • 复制etc/目录下除去neutron的内容复制到/etc/neutron
      • 复制etc/neutron目录下的内容到/etc/neutron
      • 创建并分配neutron配置文件
      • 同步数据库
      • 配置与启动OVS
      • 编写service并启动
      • 重启服务
    • Compute节点
      • 解压neutron-23.1.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建/etc/neutron文件夹
      • 复制etc/目录下除去neutron的内容复制到/etc/neutron
      • 复制etc/neutron目录下的内容到/etc/neutron
      • 创建并分配neutron配置文件
      • 配置与启动OVS
      • 启动ovn-controller服务
      • 设置OVN
      • 编写服务并启动
    • 配置验证(Controller)
    • 配置OVN网络
      • Controller节点 && Compute节点
      • Controller节点
      • 可能遇到的问题解决办法
  • 安装Dashboard
    • Controller节点
      • 下载源码包
      • 创建/etc/openstack_dashboard目录
      • 解压horizon-23.3.0.tar.gz
      • 安装依赖包
      • 复制local_settings.py.example为local_settings.py并编辑
      • 编译
      • 收集静态资源
      • 把fontawesome.scss改为font-awesome.scss
      • 修改_checkboxes.scss
      • 修改_radiobuttons.scss
      • 修改WEBROOT
      • 生成horizon_wsgi.py
      • 生成httpd的配置文件
      • 修改生成的httpd的配置文件
      • 修改权限
      • 查询启动httpd的用户和组
      • 修改base.html
      • 重启httpd服务
  • 安装Cinder
    • Controller节点
      • 下载源码包
      • 创建数据库
      • 创建cinder用户
      • 添加到admin
      • 创建 cinderv3 服务实体
      • 创建API 端点
      • 解压cinder-23.1.0.tar.gz
      • 安装依赖包
      • 编译安装
      • 创建/etc/cinder目录
      • 移动文件到/etc/cinder目录
      • 创建编辑/etc/cinder/cinder.conf
      • 同步数据库
      • 编写service并启动
      • 验证
    • Block节点
      • 安装targetcli
      • 解压cinder-23.1.0.tar.gz
      • 安装依赖包
      • 把SQLAlchemy的版本降为1.4.49
      • 安装pymysql
      • 编译安装
      • 创建/etc/cinder目录
      • 移动文件到/etc/cinder目录
      • 创建编辑/etc/cinder/cinder.conf
      • 编辑/etc/lvm/lvm.conf
      • 编写service
      • 创建volume group
      • 启动服务
    • Compute节点
      • 修改/etc/nova/nova.conf
      • 安装
      • 重启服务

说明

本教程只用于学习,虽然能够成功运行,但是还有一些bug

机器详情

主机名 IP 磁盘 CPU 内存
controller ens160:192.168.46.31/24
ens192:不配置IP地址
100G 2C 8G
compute1 ens160:192.168.46.32/24
ens192:不配置IP地址
100G 2C 8G
block1 ens160:192.168.46.33/24 sda:50G
sdb:100G
2C 4G

安装操作系统注意事项

安装操作只需注意的一步是Software Selection要勾选Development Tools
在这里插入图片描述

这会自动地帮我们安装一些基础的编译环境,如果你没有勾选,也无大碍,在编译安装时可能会遇到
报错说缺失一些编译环境,根据报错安装与之对应地编译环境即可解决

基础准备

Controller节点 && Compute节点 && Block节点

关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

关闭selinux

vim /etc/selinux/config
SELINUX=disabled

设置静态IP

nmtui

设置ens160网卡的IP地址为静态IP地址
设置ens192网卡不获取到IP地址(即设置为Disabled)
网卡配置生效命令

nmcli c reload
nmcli c up ens160
nmcli c up ens192

更新

dnf update -y

重启一下机器

安装前准备

Controller节点 && Compute节点 && Block节点

设置主机名

hostnamectl set-hostname controller
hostnamectl set-hostname compute1
hostnamectl set-hostname block1

配置hosts

vim /etc/hosts
192.168.46.31   controller
192.168.46.32   compute1
192.168.46.33   block1

验证配置

# Controller节点
ping -c 4 www.baidu.com
ping -c 4 compute1
ping -c 4 block1
# Compute节点
ping -c 4 www.baidu.com
ping -c 4 controller
ping -c 4 block1
# Block节点
ping -c 4 www.baidu.com
ping -c 4 controller
ping -c 4 compute1

安装 SQL DataBase

Controller节点

安装软件包

dnf install mariadb mariadb-server python3-PyMySQL -y

编辑配置文件

vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = Controller-IP
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

Controller-IP为Controller节点的IP地址

启动服务

systemctl restart mariadb.service && systemctl enable mariadb.service

初始化配置

mysql_secure_installation

安装 RabbitMQ

Controller节点

安装软件包

dnf install rabbitmq-server -y

启动服务

systemctl restart rabbitmq-server.service && systemctl enable rabbitmq-server.service

添加openstack用户

rabbitmqctl add_user openstack RABBIT_PASS

RABBIT_PASS为设置的密码

设置openstack用户权限,允许进行配置、写、读

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

安装 Memcached

Controller节点

安装软件包

dnf install memcached python3-memcached -y

编辑配置文件

vim /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1,::1,controller"

启动服务

systemctl restart memcached.service && systemctl enable memcached.service

验证

memcached-tool controller stats

安装Keystone

Controller节点

下载源码包

下载地址:https://releases.openstack.org/bobcat/index.html#bobcat-keystone
所需下载的源码包:keystone-24.0.0.tar.gz

创建数据库

mysql -u root -p
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
exit

KEYSTONE_DBPASS为要设置的密码

安装httpd、mod_wsgi软件包

dnf install httpd mod_wsgi -y

解压keystone-24.0.0.tar.gz

tar -xvf keystone-24.0.0.tar.gz
cd keystone-24.0.0/

安装所需依赖包

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

把SQLAlchemy的版本降为1.4.49

pip3 install SQLAlchemy==1.4.49 -i https://pypi.tuna.tsinghua.edu.cn/simple

编译安装

python3 setup.py install

创建/etc/keystone文件夹

mkdir /etc/keystone

复制etc/目录下的内容到/etc/keystone

cp -r etc/* /etc/keystone/

创建并编辑keystone配置文件

vim /etc/keystone/keystone.conf
[DEFAULT]
[application_credential]
[assignment]
[auth]
[cache]
[catalog]
[cors]
[credential]
[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
[domain_config]
[endpoint_filter]
[endpoint_policy]
[eventlet_server]
[federation]
[fernet_receipts]
[fernet_tokens]
[healthcheck]
[identity]
[identity_mapping]
[jwt_tokens]
[ldap]
[memcache]
[oauth1]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[policy]
[profiler]
[receipt]
[resource]
[revoke]
[role]
[saml]
[security_compliance]
[shadow_users]
[token]
provider = fernet
[tokenless_auth]
[totp]
[trust]
[unified_limit]
[wsgi]

KEYSTONE_DBPASS为创建keystone用户设置的数据库访问密码

同步数据库

useradd keystone
su -s /bin/sh -c "keystone-manage db_sync" keystone

初始化Fernet密钥仓库

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

启动服务

keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:5000/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne

ADMIN_PASS为准备设置管理员用户的密码
如果遇到如下的错误

2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt Traceback (most recent call last):
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt   File "/usr/local/lib/python3.9/site-packages/keystone/identity/backends/sql.py", line 209, in get_user_by_name
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt     user_ref = query.one()
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt   File "/usr/local/lib64/python3.9/site-packages/sqlalchemy/orm/query.py", line 2870, in one
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt     return self._iter().one()
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt   File "/usr/local/lib64/python3.9/site-packages/sqlalchemy/engine/result.py", line 1522, in one
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt     return self._only_one_row(
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt   File "/usr/local/lib64/python3.9/site-packages/sqlalchemy/engine/result.py", line 562, in _only_one_row
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt     raise exc.NoResultFound(
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt sqlalchemy.exc.NoResultFound: No row was found when one was required
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt 
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt During handling of the above exception, another exception occurred:
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt 
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt Traceback (most recent call last):
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt   File "/usr/local/lib/python3.9/site-packages/keystone/cmd/bootstrap.py", line 205, in _bootstrap_admin_user
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt     user = PROVIDERS.identity_api.get_user_by_name(
2024-04-13 14:21:16.788 274641 ERROR passlib.handlers.bcrypt   File "/usr/local/l

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

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

相关文章

简单认识Git(dirsearch、githack下载),git泄露(ctfhub)

目录 dirsearch下载地址: githack下载(一次不成功可多试几次) 一、什么是Git 1.git结构 2.git常用命令及示例 3.Git泄露原理 二、Git泄露 1.Log 2.Stash 3.Index 工具准备:dirsearch、githack dirsearch下载地址: GitHub - mauroso…

配置流策略实现不同网段间限制互访

在创建了 vlanif 接口并配置 IP 地址后,不同 vlan 间就可以互通了。 如果我们想要限制vlan 之间的通信,就可以通过配置流策略实现。 配置步骤(以华为交换机为例) 1、ACL 定义拒绝通过的数据流 2、定义流分类,按照ACL 对报文进行分类 3、配置流行为,动作为deny 4、配置流…

计算机不联网是否有IP地址

计算机不联网是否会有IP地址,这个问题涉及到计算机网络的基础知识。要深入探讨这个问题,我们需要从IP地址的定义、作用,以及计算机在不联网状态下的网络配置等多个方面进行分析。 首先,IP地址(Internet Protocol Addre…

深度学习——常用激活函数解析与对比

1、 简介 在神经网络中,激活函数扮演着至关重要的角色。它们的主要目的是引入非线性因素,使得网络能够学习和表示更加复杂的函数映射。以下是激活函数应具备的特点,以及这些特点为何重要的详细解释: 引入非线性有助于优化网络&am…

求奖金(if)(C语言)

一、N-S流程图&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int I 0;float bonus 0;//提示用户&#xff1b;printf("请输入利润I&#xff1a;");//获取用户值&#xf…

怎么给一个字典进行按值或key来排序?

字典是具有指定数字或键的特定数据集或组。在 Python 以外的编程语言中&#xff0c;它们也被称为哈希映射或关联数组。 一般来说&#xff0c;它是键值对的形式&#xff0c;就像现实世界的字典一样。 要创建字典&#xff0c;请从左括号开始&#xff0c;添加键并键入一个冒号。…

SpringBoot 项目Docker部署三种方式

一种&#xff1a;直接拷贝jar到服务器部署 1.增加docker配置文件 新建Dockerfile文件&#xff0c;负责Docker的配置 FROM openjdk:21#ENV timezone RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo Asia/Shanghai >/etc/timezone# WORKD…

[2021最新]Java时间戳和日期时间互转换

代码&#xff1a; import java.text.ParseException; import java.text.SimpleDateFormat;public class MainProcess {public static void main(String[] args) throws ParseException {// 1.set formatSimpleDateFormat timeSmat new SimpleDateFormat("yyyy-MM-dd HH:…

【Jupyter Notebook】快捷键

在命令模式下&#xff0c;单元格边框是灰色&#xff08;缺省&#xff09;的。这些快捷键主要用于操作单元格。 Enter&#xff1a;进入编辑模式Shift Enter&#xff1a;运行当前单元格并选中下一个单元格Ctrl Enter&#xff1a;运行当前单元格Alt Enter&#xff1a;运行当前单…

高效生产管理:选择顺通网络ERP系统派单的理由

显然&#xff0c;传统的生产管理模式已经难以满足现代企业的需求&#xff0c;因此选择一款适合自身业务特点的生产管理软件成为了企业的当务之急。顺通鞋业ERP系统作为一款功能强大的生产管理软件&#xff0c;凭借其出色的派单功能&#xff0c;正逐渐成为众多企业的首选。通过系…

DBA-现在应该刚刚入门吧

说来话长 在2023年以前&#xff0c;我的DBA生涯都是“孤独的”。成长路径除了毕业前的实习期有人带&#xff0c;后续几乎都是靠自学。如何自学&#xff0c;看视频、看文档、网上查阅资料、项目实战。 可能是学疏才浅 &#xff0c;一直都是在中小公司混&#xff0c;在中小公司通…

MYSQL09_行格式概述、变长字段、NULL值、记录头信息、真实数据、内部结构

文章目录 ①. InnoDB - 行格式概述②. 变长字段长度列表 ③. NULL值列表④. 记录头信息5字节⑤. 记录的真实数据⑥. Compact行记录的内部结构⑦. Dynamic和Compressed行格式 ①. InnoDB - 行格式概述 ①. 我们平时的数据以行为单位来向表中插入数据,这些记录在磁盘上的存放方式…

PostgreSQL的学习心得和知识总结(一百三十八)|深入理解PostgreSQL数据库之Protocol message构造和解析逻辑

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

09-ESP32-IDF中的日志系统

ESP32-IDF中的日志系统 在ESP32-IDF中&#xff0c;日志系统是一个重要的组成部分&#xff0c;它可以帮助开发者调试代码和理解系统的运行状态。 1. 日志系统的作用 日志系统在ESP32-IDF中扮演着非常重要的角色。它可以记录系统的运行信息&#xff0c;包括系统启动、运行、错…

OSPF笔记+大实验

OSPF综合大实验---实验报告 配置IP地址 R1&#xff1a; [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 172.16.33.1 24 [R1-GigabitEthernet0/0/0]int l0 [R1-LoopBack0]ip add 172.168.34.1 24 R2: [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 172.16.33.2 24…

电脑怎么创建加密磁盘?方法很简单!

在电脑中创建加密磁盘&#xff0c;可以有效地保护电脑数据&#xff0c;避免数据泄露。那么&#xff0c;电脑怎么创建加密磁盘呢&#xff1f;下面我们就一起来了解一下吧。 密盘创建方法 创建密盘建议使用超级秘密磁盘3000&#xff0c;软件界面简约&#xff0c;操作简单&#x…

Linux上比top更直观和美观的监控软件htop

2024年4月18日&#xff0c;周四上午 htop 是一个交互式的系统监控工具&#xff0c;类似于 Linux 系统中的 top 命令&#xff0c;但提供了更加友好的界面和功能。它允许用户以直观的方式查看系统的进程、CPU、内存、交换空间以及各种系统指标的使用情况。 一些 htop 的特点包括…

【hive】lateral view侧视图

文档地址&#xff1a;https://cwiki.apache.org/confluence/display/Hive/LanguageManualLateralView 1.介绍2.语法3.code demo1&#xff09;单重侧视图2&#xff09;多重侧视图3&#xff09;tips&#xff1a;lateral view outer 1.介绍 lateral view也叫侧视图&#xff0c;属…

矿用连续式负压自动排渣放水器——YC型

从今天起&#xff0c;努力去做一个可爱的人&#xff0c;不羡慕谁&#xff0c;也不埋怨谁&#xff0c;在自己的道路上&#xff0c;欣赏自己的风景&#xff0c;遇见自己的幸福。 矿用连续式负压自动排渣放水器——YC型 【1-5-9】产品介绍 连续式式负压自动排渣放水器采用双罐体结…

项目管理的主要内容包括哪些?

项目管理作为现代企业管理的重要组成部分&#xff0c;其核心在于通过科学的方法和手段&#xff0c;对项目的启动、规划、执行、监控和收尾等全过程进行有效管理&#xff0c;以实现项目的预定目标。随着市场竞争的加剧和企业经营环境的不断变化&#xff0c;项目管理已成为企业提…