openEuler22.03系统使用Kolla-ansible搭建OpenStack

Kolla-ansible 是一个利用 Ansible 自动化工具来搭建 OpenStack 云平台的开源项目,它通过容器化的方式部署 OpenStack 服务,能够简化安装过程、提高部署效率并增强系统的可维护性。

前置环境准备:

系统:openEuler-22.03-LTS-SP4

配置:

4 vCPU, 8G RAM, 100 vDisk

网卡1 ens33 192.168.200.10

网卡2 ens34 192.168.100.10 nat模式网络

1.初始环境准备

安装工具:

[root@localhost ~]# dnf -y install git 

优化SSH

[root@localhost ~]# vi /etc/ssh/sshd_config 
UseDNS no
[root@localhost ~]# systemctl restart sshd 

关闭防火墙

[root@localhost ~]# vi /etc/selinux/config 
SELINUX=disabled
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld && setenforce 0

设置主机名,配置hosts文件

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# vi /etc/hosts 
192.168.200.10 node1
[root@localhost ~]# bash

设置免密登录

[root@node1 ~]# ssh-keygen
[root@node1 ~]# ssh-copy-id node1

重启系统

[root@node1 ~]# reboot

2.安装docker

[root@node1 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
添加仓库自:https://download.docker.com/linux/centos/docker-ce.repo
#编辑Docker的yum文件,将所有的$releasever更改为8

安装Docker:

[root@node1 ~]# dnf -y install docker-ce

配置daemon.json文件:

[root@node1 ~]# vi /etc/docker/daemon.json
{
    "registry-mirrors": [
            "https://docker.1ms.run",
            "https://docker.1panel.live",
            "https://hub.rat.dev",
            "https://docker.m.daocloud.io",
            "https://do.nark.eu.org",
            "https://dockerpull.com",
            "https://dockerproxy.cn",
            "https://docker.awsl9527.cn"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}

启动Docker:

[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
[root@node1 ~]# systemctl enable docker 

安装Python docker模块

[root@node1 ~]# pip3 install docker

3.安装ansible

更换pip国内源,加速pip下载安装

[root@node1 ~]# mkdir ~/.pip
[root@node1 ~]# vi ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

安装ansible:

[root@node1 ~]# pip3 install ansible==8.7.0
ansible --version
安装后的版本是ansible-8.7.0 + ansible [core 2.15.13]

优化ansible

[root@node1 ~]# mkdir /etc/ansible
[root@node1 ~]# vi /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100

4.安装kolla-ansible

安装kolla-ansible需要的依赖
[root@node1 ~]# dnf install -y python3-devel libffi-devel gcc openssl-devel python3-libselinux
安装kolla-ansible
[root@node1 ~]# pip3 install pbr
[root@node1 ~]# pip3 install kolla-ansible==17.5.0

从Yoga版本开始需要安装Ansible Galaxy的依赖项

[root@node1 ~]# kolla-ansible install-deps

5.部署OpenStack

创建虚拟子接口:(后续给neutron使用)

[root@node1 ~]# ip link add link ens34 name ens34.100 type vlan id 100
[root@node1 ~]# ip addr add 192.168.101.1/24 dev ens34.100
[root@node1 ~]# ip link set dev ens34.100 up
[root@node1 ~]# nmcli connection modify ens34.100 connection.autoconnect yes

创建kolla-ansible配置文件目录

[root@node1 ~]# mkdir /etc/kolla
[root@node1 ~]# chown $USER:$USER /etc/kolla

复制配置文件

[root@node1 ~]# cp /usr/local/share/kolla-ansible/etc_examples/kolla/globals.yml /etc/kolla/
[root@node1 ~]# cp /usr/local/share/kolla-ansible/etc_examples/kolla/passwords.yml /etc/kolla/
[root@node1 ~]# cp /usr/local/share/kolla-ansible/ansible/inventory/all-in-one /etc/kolla/

编辑all-in-one

[root@node1 ~]# sed -i 's#localhost ansible_connection=local#node1 ansible_python_interpreter=/usr/bin/python3#g' /etc/kolla/all-in-one

生成密码

[root@node1 ~]# kolla-genpwd

编辑globals.yml

[root@node1 ~]# vi /etc/kolla/globals.yml
workaround_ansible_issue_8743: yes
kolla_base_distro: "rocky"
openstack_release: "2023.2"
openstack_tag: "2023.2-rocky-9"
# 自定义配置路径
node_custom_config: "/etc/kolla/config"
# 内部虚拟 IP 地址
kolla_internal_vip_address: "192.168.200.10"
# 网络接口配置
network_interface: "ens33"  # 本地网络,用于 OpenStack 内部通
信
neutron_external_interface: "ens34.100"  # 虚拟子接口,用于 Neutron 外部网络
# 服务配置
enable_haproxy: "no"
enable_neutron_provider_networks: "yes"
nova_compute_virt_type: "qemu"
# Docker 镜像相关
kolla_external_pull_policy: "ifnotpresent"

部署安装指定版本库,避免发生错误

[root@node1 ~]# pip3 install pyOpenSSL==24.2.1
[root@node1 ~]# pip3 install cryptography==42.0.0
[root@node1 ~]# pip3 install paramiko==3.0.0

我们已经手动安装过docker,注释或修改kolla自动安装docker的任务

[root@node1 ~]# vi $HOME/.ansible/collections/ansible_collections/openstack/kolla/roles/docker/defaults/main.yml
enable_docker_repo: false

[root@node1 ~]# vi $HOME/.ansible/collections/ansible_collections/openstack/kolla/roles/docker/tasks/main.yml 
#- import_tasks: install.yml

开始自动化安装:

[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers

[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one prechecks

[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one deploy
##时间比较久,拉取镜像部署容器的过程

[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one post-deploy

查看浏览器控制台密码:
密码:grep keystone_admin /etc/kolla/passwords.yml

访问:192.168.200.10

账户:admin

密码:查看得到的密码

6.服务验证

查看容器是否全部启动:

安装openstack客户端

[root@node1 ~]# pip install python-openstackclient

验证服务:

[root@node1 ~]# source /etc/kolla/admin-openrc.sh
[root@node1 ~]# openstack user list
[root@node1 ~]# openstack service list

至此,openstack平台搭建完成。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leecode刷题C语言之统计重新排列后包含另一个字符串的子字符串数目②

执行结果:通过 执行用时和内存消耗如下: void update(int *diff, int c, int add, int *cnt) {diff[c] add;if (add 1 && diff[c] 0) {// 表明 diff[c] 由 -1 变为 0(*cnt)--;} else if (add -1 && diff[c] -1) {// 表明 diff[c] 由 0 变为 -…

uniapp 微信小程序webview与h5双向实时通信交互

描述: 小程序webview内嵌的h5需要向小程序实时发送消息,有人说postMessage可以实现,所以试验一下,结果是实现不了实时,只能在特定时机后退、组件销毁、分享时小程序才能接收到信息(小程序为了安全等考虑做了…

pycharm-pyspark 环境安装

1、环境准备:java、scala、pyspark、python-anaconda、pycharm vi ~/.bash_profile export SCALA_HOME/Users/xunyongsun/Documents/scala-2.13.0 export PATH P A T H : PATH: PATH:SCALA_HOME/bin export SPARK_HOME/Users/xunyongsun/Documents/spark-3.5.4-bin…

fast-crud select下拉框 实现多选功能及下拉框数据动态获取(通过接口获取)

教程 fast-crud select示例配置需求:需求比较复杂 1. 下拉框选项需要通过后端接口获取 2. 实现多选功能 由于这个前端框架使用逻辑比较复杂我也是第一次使用,所以只记录核心问题 环境:vue3,typescript,fast-crud ,elementPlus 效果 代码 // crud.tsx文件(/.ts也行 js应…

高性能现代PHP全栈框架 Spiral

概述 Spiral Framework 诞生于现实世界的软件开发项目是一个现代 PHP 框架,旨在为更快、更清洁、更卓越的软件开发提供动力。 特性 高性能 由于其设计以及复杂精密的应用服务器,Spiral Framework框架在不影响代码质量以及与常用库的兼容性的情况下&a…

天机学堂笔记1

FeignClient(contextId "course", value "course-service") public interface CourseClient {/*** 根据老师id列表获取老师出题数据和讲课数据* param teacherIds 老师id列表* return 老师id和老师对应的出题数和教课数*/GetMapping("/course/infoB…

lobechat搭建本地知识库

本文中,我们提供了完全基于开源自建服务的 Docker Compose 配置,你可以直接使用这份配置文件来启动 LobeChat 数据库版本,也可以对之进行修改以适应你的需求。 我们默认使用 MinIO 作为本地 S3 对象存储服务,使用 Casdoor 作为本…

沸点 | 聚焦嬴图Cloud V2.1:具备水平可扩展性+深度计算的云原生嬴图动力站!

近日,嬴图正式推出嬴图Cloud V2.1,此次发布专注于提供无与伦比的用户体验,包括具有水平可扩展性的嬴图Powerhouse的一键部署、具有灵活定制功能的管理控制台、VPC / 专用链接等,旨在满足用户不断变化需求的各项前沿功能&#xff0…

Linux---shell脚本练习

要求: 1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 3、编写个shel 脚本将/usr/local 日录下…

LiveNVR监控流媒体Onvif/RTSP常见问题-二次开发接口jquery调用示例如何解决JS|axios调用接口时遇到的跨域问题

LiveNVR二次开发接口jquery调用示例如何解决JS|axios调用接口时遇到的跨域问题 1、接口调用示例2、JS调用遇到跨域解决示例3、axios请求接口遇到跨域问题3.1、post请求3.2、get请求 4、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、接口调用示例 下面是完整的 jquery 调用示例 $.a…

Canvas简历编辑器-选中绘制与拖拽多选交互方案

Canvas简历编辑器-选中绘制与拖拽多选交互方案 在之前我们聊了聊如何基于Canvas与基本事件组合实现了轻量级DOM,并且在此基础上实现了如何进行管理事件以及多层级渲染的能力设计。那么此时我们就依然在轻量级DOM的基础上,关注于实现选中绘制与拖拽多选交…

服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例

服务器数据恢复环境&故障: 一台服务器上的8块硬盘组建了一组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯显示异常报警。服务器操作系统无法启动,ORACLE数据库也无法启动。 服…

LabVIEW光流算法的应用

该VI展示了如何使用NI Vision Development Module中的光流算法来计算图像序列中像素的运动矢量。通过该方法,可以实现目标跟踪、运动检测等功能,适用于视频处理、机器人视觉和监控领域。程序采用模块化设计,包含图像输入、算法处理、结果展示…

Redis十大数据类型详解

Redis(一) 十大数据类型 redis字符串(String) string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据。例如说是jpg图片或者序列化对象 一个re…

Navicat Premium 16.0.90 for Mac 安装与free使用

步骤 0.下载 通过网盘分享的文件:Navicat Premium 16.0.90 链接: https://pan.baidu.com/s/12O22rXa9MiBPKKTGMELNIg 提取码: yyds 1.打开下好的 dmg 文件 (这个界面不要关闭) 2.将Navicat Premium 拖动至 Applications 这时出现 点击取消。 3.点开…

基于Springboot + vue实现的购物推荐网站

🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论 🔥🔥&…

【大数据】机器学习-----最开始的引路

以下是关于机器学习的一些基本信息,包括基本术语、假设空间、归纳偏好、发展历程、应用现状和代码示例: 一、基本术语 样本(Sample): 也称为实例(Instance)或数据点(Data Point&…

【WPS】【WORDEXCEL】【VB】实现微软WORD自动更正的效果

1. 代码规范方面 添加 Option Explicit:强制要求显式声明所有变量,这样可以避免因变量名拼写错误等情况而出现难以排查的逻辑错误,提高代码的健壮性。使用 On Error GoTo 进行错误处理:通过设置错误处理机制,当代码执行…

No one knows regex better than me

No one knows regex better than me 代码分析,传了两个参数zero,first,然后$second对两个所传的参数进行了拼接 好比:?zero1&first2 传入后就是: 12 然后对$second进行了正则匹配,匹配所传入的参数是否包含字符串Yeedo|wa…

Docker 安装开源的IT资产管理系统Snipe-IT

一、安装 1、创建docker-compose.yaml version: 3services:snipeit:container_name: snipeitimage: snipe/snipe-it:v6.1.2restart: alwaysports:- "8000:80"volumes:- ./logs:/var/www/html/storage/logsdepends_on:- mysqlenv_file:- .env.dockernetworks:- snip…