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
相关推荐
微三云生态系统架构师-彭丹1 小时前
抖店OPC智能选品与铺货架构:多店差异化与频率风控设计
架构
集智飞行2 小时前
无人机集群通信架构剖析,以及对未来发展的几点判断
架构·无人机
想要打 Acm 的小周同学呀2 小时前
无需自己设计Agent架构的业务系统,依赖第三方Agent,基于SKILL和MCP服务实现企业级内部提效工具开发
架构·agent
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
H.莓飛3 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
91刘仁德3 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
Dawson Zhu4 小时前
《Agentic Design Patterns》第 4 章导读:反思(Reflection)
人工智能·语言模型·架构·aigc·agi
硅基手札4 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
码云之上5 小时前
把网页变成可引用知识——Chatbot 联网工具
人工智能·架构·agent
独孤九剑打醒他5 小时前
【原创开源】【概念设计】源 - 栅 - 漏 - 栅 - 源 横向双栅 MOS,低压交流多值逻辑芯片探索
前端·其他·架构·开源·硬件工程