Ubuntu22.04通过Maas和Juju部署openstack charm

2023-12-06 21:20

本文主要是介绍Ubuntu22.04通过Maas和Juju部署openstack charm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 官方文档
  • 材料准备
    • 软件
    • 硬件
  • 模板机和虚拟网络
  • 安装MAAS
    • 官方文档
    • MAAS节点配置
    • 安装MAAS
    • 浏览器登录MAAS进行配置
  • 激活DHCP

官方文档

https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/2023.1/
这是一个通过Maas面板即可部署openstack的方式,是目前最优秀的部署方式,但是系统仅限Ubuntu

材料准备

软件

  1. Ubuntu 22.04 LTS (Jammy) for the Juju client, Juju controller, and all cloud nodes (including containers)
  2. MAAS 3.3.3
  3. Juju 2.9.43
  4. OpenStack 2023.1 (Antelope)

硬件

1 x MAAS system: 8GiB RAM, 2 CPUs, 1 NIC, 1 x 40GiB storage
1 x Juju controller node: 4GiB RAM, 2 CPUs, 1 NIC, 1 x 40GiB storage
4 x cloud nodes: 8GiB RAM, 2 CPUs, 1 NIC, 3 x 80GiB storage
因此主机规划如下

主机名CPU内存系统盘数据盘网卡ip
maas4c8GB100GB/10.0.0.9
juju4c8GB100GB/10.0.0.10
cloud14c8GB100GB100GB*310.0.0.11
cloud24c8GB100GB100GB*310.0.0.12
cloud34c8GB100GB100GB*310.0.0.13
cloud44c8GB100GB100GB*310.0.0.14

旧版本的MAAS面板需要4个cloud节点具备双网卡,一个用于管理面一个用于外网面。自从MAAS (v.2.9.2)以后,只需要一个网口即可,所有流量通过OVS网桥转发,这个由面板自动配置,用户不用管。
本文假设这6个主机是物理机,如果读者使用虚拟机,需要开启CPU hostpassthrough嵌套虚拟化功能。
MAAS主机将作为Openstack集群的DHCP和DNS服务器,所以至关重要。
JUJU主机和cloud主机必须是x86_64的结构
cloud主机的三个数据盘将用于Ceph分布式存储,Ceph至少需要3块盘。

模板机和虚拟网络

本文使用qemu-kvm和virt-manager模拟真实环境
创建一个NAT虚拟网络,10.0.0.0/24,网络名称随意
在这里插入图片描述
模板机开启嵌套虚拟化
在这里插入图片描述

创建一个4核心8GB内存+100GB系统盘的Ubuntu Server22.04虚拟机作为模板机,并且网卡网络选择刚才创建的虚拟网络,cpu打开嵌套虚拟化。系统内网卡默认dhcp模式,后面我们安装Openstack集群时会手动配置成静态IP。

安装MAAS

官方文档

Ubuntu给出的MAAS安装文档:https://maas.io/docs/fresh-installation-of-maas
Openstack给出的MAAS安装文档:https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/2023.1/install-maas.html

MAAS节点配置

克隆模板机,新的虚拟机名称maas
主机配置如下

# 设置主机名
hostnamectl set-hostname maas
bash# 设置静态ip
cat > /etc/netplan/00-installer-config.yaml << EOF
# This is the network config written by 'subiquity'
network:ethernets:enp1s0:dhcp4: falseaddresses: [10.0.0.9/24]routes:- to: defaultvia: 10.0.0.1nameservers:addresses: [10.0.0.1]version: 2
EOF# 生效网络
netplan apply# 编写hosts文件
cat >> /etc/hosts << EOF
10.0.0.9  maas
10.0.0.10 juju
10.0.0.11 cloud1
10.0.0.12 cloud2
10.0.0.13 cloud3
10.0.0.14 cloud4
EOF# 关闭防火墙
ufw disable# 生成root公钥
ssh-keygen -t rsa  # 一路回车过去

安装MAAS

在maas服务器上执行以下命令安装maas,本文同时参考了ubuntu和Openstack的maas文档

# 安装maas
sudo snap install maas-test-db
sudo snap install --channel=3.4/edge maas# 关闭系统自带的时间同步器
systemctl disable --now systemd-timesyncd# 为maas面板创建postgresql数据库,用于持久化存储数据
sudo apt update -y
sudo apt install -y postgresql# 创建三个环境变量用于初始化数据库
export MAAS_DBUSER=maas
export MAAS_DBPASS=maas
export MAAS_DBNAME=maas# 修改主机名变量,否则maas无法连接数据库5432端口
export HOSTNAME=localhost# 创建数据库和数据库用户
sudo -i -u postgres psql -c "CREATE USER \"$MAAS_DBUSER\" WITH ENCRYPTED PASSWORD '$MAAS_DBPASS'"
sudo -i -u postgres createdb -O "$MAAS_DBUSER" "$MAAS_DBNAME"
echo "host $MAAS_DBNAME $MAAS_DBUSER 0/0 md5" >> /etc/postgresql/14/main/pg_hba.conf# 初始化maas
sudo maas init region+rack --maas-url http://10.0.0.9:5240/MAAS --database-uri "postgres://$MAAS_DBUSER:$MAAS_DBPASS@$HOSTNAME/$MAAS_DBNAME"# 初始化成功的返回
MAAS has been set up.             
If you want to configure external authentication or use
MAAS with Canonical RBAC, please runsudo maas configauth
To create admins when not using external authentication, runsudo maas createadmin
To enable TLS for secured communication, please runsudo maas config-tls enable# 验证maas是否安装成功
sudo maas status# 配置maas的admin超级管理员用户
sudo maas createadmin --username admin --password 123456 --email 2290906844@qq.com 
# 将admin登录秘钥导出成文件。这个文件必须有!后面部署要用。
sudo maas apikey --username admin > /root/admin-api-key

浏览器登录MAAS进行配置

随后登录 http://10.0.0.9:5240/MAAS,或者在maas主机桌面浏览器中输入127.0.0.1:5240
第一页欢迎页面,配置DNS服务器,这里我们采用阿里云的223.6.6.6,速度比较快。apt镜像源选择中科大源。
http://mirrors.ustc.edu.cn/ubuntu
http://mirrors.ustc.edu.cn/ubuntu-ports
在这里插入图片描述
第二页,选择Ubuntu22.04镜像,点击update selection开始下载,等下载完成后点击continue

在这里插入图片描述
配置成功画面
在这里插入图片描述
到了秘钥页面,下拉框选择Upload,然后将主机/root/.ssh/id_rsa.pub文件内容粘贴到文本框中。这样面板admin用户可免密登录主机root。
在这里插入图片描述
主界面
在这里插入图片描述
到此,MAAS面板安装成功。

激活DHCP

在安装后面5个节点之前,需要让MAAS面板有一个DHCP服务,5台节点的IP由这个DHCP分配。

这篇关于Ubuntu22.04通过Maas和Juju部署openstack charm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/463393

相关文章

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块