【Linux】搭建Openstack(一)

news2024/9/20 5:40:20

搭建openstack平台的总结

Openstack是一个开源的云计算平台,可以提供基础设施即服务(IaaS)的功能,让用户可以在自己的数据中心部署和管理虚拟化的资源。

Openstack是当今最具影响力的云计算管理工具——通过命令或者基于web的可视化Iaas云端的资源池(服务器、存储和网络)云计算是通过虚拟化(kvm)技术去实现的,它是一种按量付费的模式。

本文主要介绍了在CentOS-7-x86_64-DVD-1708.iso系统上,使用VM搭建Openstack-M版的双节点环境的过程,以及在搭建过程中可能会遇到的一些问题和解决方案。双节点环境包括一个控制节点(controller)和一个计算节点(compute),控制节点负责提供Openstack的各种服务和管理功能,计算节点负责提供计算资源和运行虚拟机。

搭建Openstack

  • 一、基础环境配置
    • 1.基础环境
    • 2.网络配置
    • 3.配置yum 源
    • 4.关闭安全服务
    • 5.克隆
    • 6.时间同步
    • 7.安装通用包
    • 8. 安装SQL数据库
    • 9.安装RabbitMQ消息队列
    • 10.安装Memcached缓存服务

一、基础环境配置

1.基础环境

  • (下图的要求可根据自身情况进行更改)虚拟机规划
节点控制节点计算节点
主机名controllercompute
内存大于3G大于10G
IP10.0.0.1110.0.0.31
作用管理运行虚拟机
cpu打开虚拟化打开虚拟化
磁盘空间50G50G

2.网络配置

为控制节点(10.0.0.11)和计算节点(10.0.0.31)分配固定的IP地址,并在两个节点上配置好主机名和hosts文件解析(将主机名与ip地址相关联),使得两个节点可以互相通信。同时,配置好网关和DNS服务器

  • 分别修改主机名
# hostnamectl set-hostname controller
# hostnamectl set-hostname compute
  • DNS域名解析,修改两个节点的/etc/hosts文件,这个文件中记录这主机名称和IP地址的对应表,增加如下内容:
# vim /etc/hosts

10.0.0.11 controller
10.0.0.31 compute
  • 如果两机相同进行ping controller,ping compute,可拼通即成功,这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。

在这里插入图片描述
在这里插入图片描述

3.配置yum 源

挂载本地镜像,并设置开启自启动挂载本地镜像源,再配置openstack包(可以通过,拉取软件包,或者上传本地文件),在所有节点中配置本地yum源,在本地挂载mnt并设置文件所在处及openstack的文件所在处,通过yum repolist 检测本地镜像是否有local和openstack。

配置openstack包,在评论区获取,通过远程连接上传

解压到/opt/目录下
# tar -xzvf openstack_rpm.tar.gz -C /opt/

配置本地yum源

# vim /etc/yum.repos.d/local.repo
[local]
name=local
gpgcheck=0
baseurl=file:///mnt

[openstack]
name=openstack
gpgcheck=0
baseurl=file:///opt/repo

进行检测,repo id 出现了local和openstack
# yum repolist

4.关闭安全服务

关闭防火墙和selinux(安全增强型)通过关闭输入命令setenforce 0是临时关闭,重启系统后还会开启。永久关闭则是输入输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

关闭防火墙
# systemctl stop firewalld.service;systemctl disable firewalld.service
临时关闭selinux
# setenforce 0
也可以采取永久关闭

5.克隆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

克隆完成后,修改克隆机的IP(10.0.0.31)和主机名(compute),作为区别,并将openstack_rpm.tar.gz文件复制给计算节点。可以仔细阅读步骤2和3。

# hostnamectl set-hostname compute
# scp -r /opt/repo 10.0.0.31:/opt/  

6.时间同步

为了保证Openstack的服务正常运行,需要保证两个节点的时间一致,可以使用chrony服务来实现时间同步,先都安装chrony(时间同步服务,集群节点之间需要时间同步),再对两个节点分别操作,并重启chronyd服务控制节点作为时间服务器,计算节点作为时间客户端。

【所有节点安装软件包】

# yum install chrony

【控制节点】,增添如下内容

# vim /etc/chrony.conf
server ntp6.aliyun.com iburst
allow 10.0.0.0/24        //设置同步网段

重启服务
# systemctl restart chronyd
# systemctl enable chronyd

【计算节点】,操作如下:

# vim /etc/chrony.conf
server 10.0.0.11 iburst

重启服务
# systemctl restart chronyd
# systemctl enable chronyd

7.安装通用包

为了方便安装和使用Openstack,需要在两个节点先安装一些通用的包,例如python-openstackclient,openstack-selinux等。RHEL 和 CentOS 默认启用了 SELinux . 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略。

【两个节点安装通用包】

安装Openstack客户端
# yum -y install python-openstackclient
安装openstack-selinux 
# yum -y install openstack-selinux

8. 安装SQL数据库

Openstack的各个服务需要使用SQL数据库来存储数据,可以使用MariaDB作为数据库服务器,只需要在控制节点上安装和配置并重启数据库服务即可。

  • 相关配置中的,在 [mysqld] 部分,设置[ bind-address ]值为本机监听的 IP 地址;以使得其它节点可以通过IP地址访问数据库。为了保证数据库服务的安全性,运行mysql_secure_installation脚本。
  • 特别需要说明的是,为数据库的root用户设置一个适当的密码,如果不执行,那么启动后,需要同步数据库时就会报错。
  • 【控制节点】
    安装MariaDB数据库
# yum -y install mariadb mariadb-server python2-PyMySQL

编辑 vim /etc/my.cnf.d/openstack.cnf,将下图代码输入文件中,注意ip要输对

# vim /etc/my.cnf.d/openstack.cnf

设置bind-address值为本机监听的IP地址;以使的其他节点可以通过IP地址访问数据库;
[mysqld]
bind-address = 10.0.0.11    //控制节点IP[mysqld]部分,设置如下键值,来启用一些必要的选项和UTF-8字符集:
[mysqld]
default-storage-engine = innodb	    #默认存储引擎	
innodb_file_per_table	            #独立表空间文件	
max_connections = 4096				#最大连接数	
collation-server = utf8_general_ci
character-set-server = utf8	        #默认字符集 utf-8

对mariadb设置开机自启并开启服务

# systemctl enable mariadb.service;systemctl start mariadb.service

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

数据库安全初始化,运行代码mysql_secure_installation
按照下图一步一步操作,设置root密码那里要注意,如果仅仅是用于实验就不必设置密码,不然后续会出现一些问题

# mysql_secure_installation   

##输入root用户的当前密码
Enter current password for root (enter for none):   回车

#设置 root 密码?[y/n]
Set root password? [Y/n]n	 // 这里没有设置密码,因为的访问较快,如果在企业就必须设置	


#删除匿名用户?[Y/n]
Remove anonymous users? [Y/n] y

#不允许root用户远程登录?[Y/n]
Disallow root login remotely? [Y/n] y

#是否删除测试数据库并访问它?[Y/n]
Remove test database and access to it? [Y/n] y

# 现在重新加载特权表吗?[Y/n]
Reload privilege tables now? [Y/n] y

#成功标准
Thanks for using MariaDB!

9.安装RabbitMQ消息队列

Openstack的各个服务需要使用消息队列来进行通信,可以使用RabbitMQ(实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件))作为消息队列服务器,只需要在控制节点上安装和配置即可。之后在网页中输入10.0.0.11:15672 使用用户名和密码进入该界面。

  • **【控制节点】**运行消息队列
安装包
# yum -y install rabbitmq-server
设置开机自启并开启服务
# systemctl enable rabbitmq-server.service;systemctl start rabbitmq-server.service
执行下方命令添加openstack用户 创建用户密码,密码为RABBIT_PASS,可以将密码替换,但不建议修改,不然后面都要修改!!!
# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...

给openstack用户配置读写权限,并查看端口(netstat -ntulp | grep 5672)
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"           //可读、可写、可配置	
Setting permissions for user "openstack" in vhost "/" .....done.


查看端口
# netstat -ntulp | grep 5672
tcp	0	.0.0.0.0:25672	0.0.0.0:*	LISTEN	29675/beam.smp	集群之间同步数据用的端口	
tcp6	:::5672	:::*	LISTEN	29675/beam.smp	/	客服端使用

tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      3125/beam.smp
tcp6       0      0 :::5672                 :::*                    LISTEN      3125/beam.smp

启用 rabbitmq 的管理插件 (可省略 )
方便以后做监控

# rabbitmq-plugins enable rabbitmq_management	      // 执行后会产生 15672 端口<插件的	
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@controller... started 6 plugins.



再次检查端口
# netstat -ntulp |grep 5672
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      3125/beam.smp
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      3125/beam.smp
tcp6       0      0 :::5672                 :::*                    LISTEN      3125/beam.smp

浏览器输入10.0.0.11:15672,用户名和密码均为guest

在这里插入图片描述
在这里插入图片描述

如上图的话,RabbitMQ队列服务就安装成功了

10.安装Memcached缓存服务

  • Memcached
    认证服务认证缓存使用Memseched缓的token,缓存服务memeseched运行在控制节点。
    token:用于验证用产登录信息,利用memcached将token缓存下来,那么下次用户登录时,就不需验证了
  • 【控制节点】
安装软件包
# yum install -y memcached python-memcached
修改配置文件
# sed -i 's/127.0.0.1/10.0.0.11/g' /etc/sysconfig/memcached
重启并开机自启
# systemctl enable memcached.service;systemctl restart memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.

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

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

相关文章

PostgreSQL下载、安装(Windows 10/11 64位)详细教程【超详细,保姆级教程!!!】

本文介绍关于windows 11如何下载、安装PostgreSQL-15.8版本的详细步骤 一、下载PostgreSQL 1、进入官网 PostgreSQL下载地址&#xff08;官网&#xff09; 直达PostgreSQL下载页面&#xff08;官网&#xff09; 2、点击“Download the installer”链接&#xff0c;选择合适…

使用Seaborn绘制热力图

热力图是一种用于展示矩阵数据的图表&#xff0c;其中颜色深浅表示数据值的大小。 import seaborn as sns import numpy as np import matplotlib.pyplot as plt # 创建示例数据 data np.random.rand(10, 12) # 绘制热力图 sns.heatmap(data, annotTrue, cmapcoolwa…

Ubuntu20.04离线安装 Docker

1.下载3个docker离线安装包&#xff0c;下载网址&#xff1a; https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/2.把3个离线安装包拷贝到ubuntu本地执行以下命令 sudo dpkg -i containerd.io_1.4.6-1_amd64.deb sudo dpkg -i docker-ce-cli_20.10.…

蓝队技能-应急响应篇C2后门权限维持手法WindowsLinux基线检查排查封锁清理

知识点 1、应急响应-C2后门-排查&封锁 2、应急响应-权限维持-排查&清理 3、应急响应-基线检测-整改&排查演示案例-蓝队技能-C2后门&权限维持-基线检查&查杀封锁-Windows 1、常规C2后门-分析检测 无隐匿手法 也可以把怀疑的exe程序上传到沙箱上分析 有…

Java二十三种设计模式-中介者模式(22/23)

本文深入探讨了中介者模式&#xff0c;这是一种行为型设计模式&#xff0c;通过定义一个中介者对象来简化对象间的通信&#xff0c;降低耦合度&#xff0c;并提高系统的模块化&#xff0c;同时提供了实现示例、使用场景、优缺点分析、与其他设计模式的比较&#xff0c;以及最佳…

贪心算法,暴力递归

前缀树 如果想要查询“bc”就可以直接看有没有走向b的路&#xff0c;如果有的话就看c节点上面的e值为1那么就是有这个“bc”&#xff0c;还能看见加过几次&#xff0c;代价很低 如果想看有多少是以“ab”作为前缀的&#xff0c;那么就直接看b上面的p值 贪心算法 哪个会议结束时…

java中final的使用方法

package Test;/*** author gyf* ClassName Test* Date 2024/8/13 16:26* Version V1.0* Description :*/ public class Test {public static void main(String[] args) {// 被final修饰就不能修改变量了final int a 10;System.out.println(a);} } // 若父类用final 修饰 则子类…

基于Java和GeoTools的Shapefile矢量数据缩略图生成实践

目录 前言 一、关于GeoTools的图片生成 1、关于GtRenderer 2、关于 图像生成架构 3、流式计算绘制 二、全球空间预览生成实战 1、pom.xml中关于图像生成依赖 2、样式设置及地图资源绑定 3、图片生成绘制 4、图片生成测试 三、成果验证 1、全球范围生成 2、我国的范…

快速批量替换图片名称为指定名称(附代码)

目录 一、需求二、代码使用方法三、代码四、效果展示 一、需求 深度学习配对训练&#xff0c;有时配对图像的名称需要一致&#xff0c;这里写了一个脚本&#xff0c;快速批量替换图片名称中某些字符串。 二、代码使用方法 使用代码时需要修改的地方见下&#xff1a; 三、代码…

一文1600字从0到1JMeter全流程性能测试实战!

项目背景&#xff1a; 我们的平台为全国某行业监控平台&#xff0c;经过3轮功能测试、接口测试后&#xff0c;98%的问题已经关闭&#xff0c;决定对省平台向全国平台上传数据的接口进行性能测试。 01、测试步骤 1、编写性能测试方案 由于我是刚进入此项目组不久&#xff0c…

[HGAME 2023 week1]Classic Childhood Game

方法一&#xff1a;在控制台输入mota&#xff08;&#xff09; 方法二&#xff1a;查看页面源码发现多个js,一一查看 在./Res/Events.js中发现编码&#xff08;准确来说是字符串&#xff09; \x59\x55\x64\x6b\x61\x47\x4a\x58\x56\x6a\x64\x61\x62\x46\x5a\x31\x59\x6d\x35\x7…

基于MATLAB视觉的静态手势识别系统

一、课题介绍及思路 为了丰富手势识别方法的多样性&#xff0c;提高手势识别的正确率&#xff0c;提出了一种基于手势轮廓像素变化的手势识别方法。在Matlab环境下&#xff0c;设计并开发了一个基于视觉的静态手势识别系统。系统主要由两部分组成&#xff1a;手势分割与手势识…

八股总结----数据库(MySQL和Redis)

1.MySQL部分 11.基本写法 列出数据库&#xff1a;show databases&#xff1b;创建数据库&#xff1a;create database mysql_test&#xff1b;切换数据库&#xff1a;use mysql_test&#xff1b;列出表&#xff1a;show tables&#xff1b;创建表&#xff1a;create table st…

回归预测|基于最大互信息与支持向量机结合的数据回归预测Matlab程序MIC-SVM 多特征输入单输出

回归预测|基于最大互信息与支持向量机结合的数据回归预测Matlab程序MIC-SVM 多特征输入单输出 文章目录 前言回归预测|基于最大互信息与支持向量机结合的数据回归预测Matlab程序MIC-SVM 多特征输入单输出 一、MIC-SVM模型最大信息系数&#xff08;MIC&#xff09;的原理支持向量…

网路安全-防火墙安全区域简介

文章目录 1. 概念介绍1.1 什么是安全区域&#xff1f;1.2 安全区域的分类1.3 安全区域级别1.4 安全区域的作用是什么&#xff1f; 2. 实战2.1 ENSP实验设计1实验目标&#xff1a;实验步骤&#xff1a; 2.2 ENSP实验设计2实验目标&#xff1a;实验步骤&#xff1a; 2.3 实验总结…

线性表【双向循环链表基本定义与操作】(带头结点)

1.双向循环链表的特征与图解 让头结点的 前驱指针 指向 链表的最后一个结点让 最后一个结点 的后继指针 指向 头结点。 2.双向循环链表的重要操作 1.双向循环链表的结构定义 双向循环链表的结构与双向链表完全一致&#xff0c;不同之处在于它的尾结点的next指针指向头结点&am…

【Docker深入浅出】【四】单体应用容器化与Dockerfile怎么写

文章目录 一. 应用的容器化——简介二. 单体应用容器化1. 获取代码与分析Dockfile2. 容器化当前应用&#xff08;构建具体的镜像&#xff09;3&#xff0e;推送镜像到仓库4. 运行应用程序5. 小结 三. 生产环境中的多阶段构建四. 应用容器化命令 本文介绍了如何容器化&#xff0…

springboot的学习(三):开发相关

简介 一些开发测试时用到的技术。 springboot 热部署 修改了代码&#xff0c;服务器不需要重启可以直接看到新的修改的效果。仅仅加载当前开发者自定义开发的资源&#xff0c;不加载jar资源。 在pom.xml配置文件中添加&#xff1a; <dependency><groupId>org.s…

AI可以写毕业论文吗?6款亲测好用人工智能写论文网站

AI写作工具在学术界的应用已经逐渐成为一种趋势&#xff0c;特别是在毕业论文的撰写过程中。这些工具不仅能够提高写作效率&#xff0c;还能帮助学生更好地组织和规划他们的研究内容。以下是六款经过亲测且好用的人工智能写论文网站推荐&#xff1a; 一、千笔-AIPassPaper 千笔…

【自动驾驶】控制算法(三)轮胎侧偏与车辆动力学模型

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…