Openstack(一)——基础环境配置与依赖服务安装

文章目录

Openstack介绍

​ OpenStack 是一个开源的云计算管理平台 。你可以把它理解为一套用来构建和运营"云"的操作系统,就像 Windows 或 Linux 管理一台电脑的资源一样,OpenStack 则负责管理数据中心里成千上万台服务器、存储设备和网络设备。

​ 它通过软件将所有物理硬件(计算、存储、网络)抽象成一个巨大的资源池。用户不再需要关心底层的物理设备,而是通过一个网页界面(Dashboard)或 API 就可以按需申请和使用虚拟机、存储空间等资源,就像使用自来水或电力一样方便。

关键组件:构建云服务的"积木

OpenStack 最大的特点之一是模块化(Modular),它由许多独立的服务组件构成,你可以像搭积木一样按需选择和组合。

这些核心组件通常包括:

组件名称 项目代号 主要功能
计算服务 Nova 负责虚拟机的整个生命周期管理,如创建、调度、销毁,是云的核心"发动机"。
网络服务 Neutron 提供云环境的网络连接服务,可以创建私有网络、路由器、防火墙等。
镜像服务 Glance 存储和管理虚拟机启动所需的镜像模板文件。
身份认证服务 Keystone 为所有 OpenStack 服务提供统一的认证和授权管理,是云平台的"守门人"。
块存储服务 Cinder 为虚拟机提供持久化的块存储设备,类似于给服务器挂载一块新硬盘。
控制面板 Horizon 提供基于 Web 的图形化管理界面,方便管理员和用户操作。

环境

安全

内存设置

内存大小设为4GB

内核数量

2核,启用虚拟化

添加网卡

其他

修改主机名,配置时间同步,关闭防火墙,关闭selinux

主机网络

配置网络接口

关闭NetworkManager

bash 复制代码
[root@controller ~]# systemctl disable --now NetworkManager

将第一个接口配置为管理网络接口

bash 复制代码
[root@controller ~]# cd /etc/sysconfig/network-scripts/
[root@controller network-scripts]# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.117.131
PREFIX=24
GATEWAY=192.168.117.2
DNS1=114.114.114.114

供者网络接口使用一个特殊的配置,不分配给它IP地址。配置第二块网卡作为提供者网络

bash 复制代码
[root@controller network-scripts]# mv ifcfg-eth0 ifcfg-eth1
[root@controller network-scripts]# vim ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
[root@controller network-scripts]# systemctl restart network

配置域名解析

bash 复制代码
[root@controller ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.117.131 controller
192.168.117.132 compute1
192.168.117.133 block1

Openstack包

启用Openstack库

bash 复制代码
[root@controller ~]# ls
anaconda-ks.cfg  mitaka.tar
[root@controller ~]# tar xf mitaka.tar -C /opt/
[root@controller ~]# cd /opt/mitaka/
[root@controller mitaka]# ls
...
repodata
...

完成安装

配置yum源

bash 复制代码
[root@controller ~]# vim /etc/yum.repos.d/openstack.repo
[openstack]
name=mitaka
baseurl=file:///opt/mitaka
gpgcheck=0

在主机上升级包

bash 复制代码
[root@controller ~]# yum upgrade

如果更新了一个新内核,重启主机来使用新内核

bash 复制代码
[root@controller ~]# reboot

安装 OpenStack 客户端

bash 复制代码
[root@controller ~]# yum install python-openstackclient

SQL数据库

安装软件包

bash 复制代码
[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL

创建并编辑 /etc/my.cnf.d/openstack.cnf

bash 复制代码
[root@controller ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.117.131
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

启动数据库服务,并将其配置为开机自启

bash 复制代码
[root@controller ~]# systemctl enable --now mariadb.service

为了保证数据库服务的安全性,运行mysql_secure_installation脚本。特别需要说明的是,为数据库的root用户设置一个适当的密码

bash 复制代码
[root@controller ~]# mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

消息队列

安装包

bash 复制代码
[root@controller ~]# yum install rabbitmq-server

启动消息队列服务并将其配置为随系统启动

bash 复制代码
[root@controller ~]# systemctl enable --now rabbitmq-server.service

添加 openstack 用户

bash 复制代码
[root@controller ~]# rabbitmqctl add_user openstack openstack

给openstack用户配置写和读权限

bash 复制代码
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

开启数据库

bash 复制代码
[root@controller ~]# rabbitmq-plugins enable rabbitmq_management
[root@controller ~]# netstat -antlp | grep 15672
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      1744/beam.smp

访问:192.168.117.131:15672

用户名:guest

密码:guest

查看权限授予

Memcached

安装软件包

bash 复制代码
[root@controller ~]# yum install memcached python-memcached

启动Memcached服务,并且配置它随机启动

bash 复制代码
[root@controller ~]# systemctl enable --now memcached.service

修改监听端口

bash 复制代码
[root@controller ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
[root@controller ~]# systemctl restart memcached.service
[root@controller ~]# netstat -antlp | grep 11211
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      9059/memcached
tcp6       0      0 :::11211                :::*                    LISTEN      9059/memcached
相关推荐
whyutianict_vv37 分钟前
云计算 HCIE 认证体系解析:HCIA/HCIP/HCIE 三级科目与知识边界
linux·运维·云计算
0+1117 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋8 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
2601_9498477511 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_6399069411 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
天河归来11 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
天远Date Lab12 小时前
零信任架构实战:基于天远企业年报信息核验构建自动化商业保理财务与社保穿透评估网关
人工智能·架构·自动化
EnCi Zheng12 小时前
后端怎么把AI接口稳定安全低成本接进业务:超时重试、密钥隔离与成本熔断清单
人工智能·后端·安全·架构·api
救救孩子把12 小时前
LangGraph 工程化架构:类型、状态、流式通信与可观测性
架构·agent·trace·opentelemetry·langgraph·graphrag
这个DBA有点耶12 小时前
从 MySQL 到时序数据库:我帮朋友做迁移的完整记录
数据库·架构·dba