杨校老师课堂之云计算私有云OpenStack框架快速搭建

2022-05-11 16:36:04 浏览数 (1)

1.什么是OpenStack

OpenStack是一系列开源软件项目的组合。 OpenStack是目前非常流行的开源云操作系统 OpenStack是基础设施资源的系统管理平台。 OpenStack对数据中心的计算、存储和网络资源进行统一管理。 OpenStack作为虚拟机、裸金属服务器和容器等的云基础架构和基础设施平台。

2. OpenStack项目及其组成

3. OpenStack项目及其组成

  • 仪表板(Dashboard)——Horizon
  • 计算服务(Compute Service)——Nova
  • 网络(Networking)——Neutron
  • 对象存储(Object Storage)——Swift
  • 块存储(Block Storage)——Cinder
  • 身份服务(Identity Service)——Keystone
  • 镜像(Image Service)——Glance

OpenStack基金会与社区 OpenStack基金会是一个非营利组织。 OpenStack基金会分为个人会员和企业会员两大类。 OpenStack社区是世界上规模非常大也非常完善的开源社区之一。 技术委员会负责总体管理全部OpenStack项目。 项目技术负责人则负责管理项目内的事务,对项目本身的发展进行决策。 OpenStack社区对个人会员而言是非常开放的。

4.OpenStack安装

  1. 准备OpenStack安装环境
  2. 创建实验用的虚拟机实例。
  3. 在实验用虚拟机实例中安装CentOS。
  4. 禁用防火墙与SELinux。
  5. 停用NetworkManager服务。
  6. 设置网络。
  7. 设置主机名。
  8. 更改语言编码。
  9. 设置时间同步

5.快速安装:

基于Packstack安装器安装一体化OpenStack云平台

5.1 准备工作:

(1)准备一台能够安装OpenStack的实验用计算机,建议使用VMware虚拟机。 (2)该计算机应安装CentOS 7,我这是基于CentOS 7.6版本。 (3)禁用防火墙与SELinux。

代码语言:javascript复制
[root@hadoop1 ~]# systemctl stop firewalld

(4)停用NetworkManager服务。

代码语言:javascript复制
[root@hadoop1 ~]# systemctl stop NetworkManager

[root@hadoop1 ~]# systemctl disable NetworkManager

(5)设置网卡。

代码语言:javascript复制
[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 重启网卡服务
[root@hadoop1 ~]# systemctl restart network

(6)设置主机名。

代码语言:javascript复制
# 作为举例,我这里最后一个单词hadoop1 是主机名; 可以更改为自己的主机名
[root@hadoop1 ~]# hostnamectl set-hostname  hadoop1

(7)设置时间同步

代码语言:javascript复制
[root@hadoop1 ~]# yum -y install chrony
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centos-ceph-nautilus: mirrors.aliyun.com
 * centos-nfs-ganesha28: mirrors.ustc.edu.cn
 * centos-openstack-train: mirrors.aliyun.com
 * centos-qemu-ev: mirrors.aliyun.com
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.cn99.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 chrony.x86_64.0.3.2-2.el7 将被 升级
---> 软件包 chrony.x86_64.0.3.4-1.el7 将被 更新
--> 解决依赖关系完成

依赖关系解决

=============================================================================================================================================================
 Package                              架构                                 版本                                     源                                  大小
=============================================================================================================================================================
正在更新:
 chrony                               x86_64                               3.4-1.el7                                base                               251 k

事务概要
=============================================================================================================================================================
升级  1 软件包

总计:251 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : chrony-3.4-1.el7.x86_64                                                                                                                  1/2 
  清理        : chrony-3.2-2.el7.x86_64                                                                                                                  2/2 
  验证中      : chrony-3.4-1.el7.x86_64                                                                                                                  1/2 
  验证中      : chrony-3.2-2.el7.x86_64                                                                                                                  2/2 

更新完毕:
  chrony.x86_64 0:3.4-1.el7                                                                                                                                  

完毕!
5.2 详细操作记录

(1)准备所需的软件库。

代码语言:javascript复制
# 安装Linux的epel的yum源的命令, 补充CentOS内容更新有时较滞后或缺失一些扩展的源
[root@hadoop1 ~]# yum -y install epel-release 

[root@hadoop1 ~]# yum install -y python2-setuptools

[root@hadoop1 ~]# yum -y install centos-release-openstack-train

(2)安装Packstack软件。

代码语言:javascript复制
[root@hadoop1 ~]# yum -y install openstack-packstack

(3)运行Packstack,以“All-in-One”方式安装OpenStack Train版本。

代码语言:javascript复制
[root@hadoop1 ~]# packstack --allinone
Installing:
Clean Up                                             [ DONE ]
Discovering ip protocol version                      [ DONE ]
# 设置SSH密钥
Setting up ssh keys                                  [ DONE ]
# 准备服务器
Preparing servers                                    [ DONE ]
# 预安装Puppet并探测主机详情
Pre installing Puppet and discovering hosts' details [ DONE ]
# 准备预装的项目
Preparing pre-install entries                        [ DONE ]
# 设置证书
Setting up CACERT                                    [ DONE ]
# 准备AMQP(高级消息队列协议)项目
Preparing AMQP entries                               [ DONE ]
# 准备MariaDB(代替MySQL)数据库项目
Preparing MariaDB entries                            [ DONE ]
# 修正Keystone LDAP参数
Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]
# 准备Keystone(身份服务)项目
Preparing Keystone entries                           [ DONE ]
# 准备Glance(镜像服务)项目
Preparing Glance entries                             [ DONE ]
# 检查Cinder(卷存储服务)是否有卷
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
# 准备Cinder(卷存储服务)项目
Preparing Cinder entries                             [ DONE ]
# 准备Nova API(Nova接口)项目
Preparing Nova API entries                           [ DONE ]
# 为Nova迁移创建SSH密钥
Creating ssh keys for Nova migration                 [ DONE ]
Gathering ssh host keys for Nova migration           [ DONE ]
Gathering ssh host keys for Nova migration           [ DONE ]
# 准备Nova(计算服务)项目
Preparing Nova Compute entries                       [ DONE ]
Preparing Nova Scheduler entries                     [ DONE ]
Preparing Nova VNC Proxy entries                     [ DONE ]
Preparing OpenStack Network-related Nova entries     [ DONE ]
Preparing Nova Common entries                        [ DONE ]
# 准备Neutron(网络)项目
Preparing Neutron API entries                        [ DONE ]
Preparing Neutron L3 entries                         [ DONE ]
Preparing Neutron L2 Agent entries                   [ DONE ]
Preparing Neutron DHCP Agent entries                 [ DONE ]
Preparing Neutron Metering Agent entries             [ DONE ]
# 检查NetworkManager是否启用并运行
Checking if NetworkManager is enabled and running    [ DONE ]
# 准备OpenStack客户端项目
Preparing OpenStack Client entries                   [ DONE ]
# 准备Horizon仪表板项目
Preparing Horizon entries                            [ DONE ]
# 准备Swift(对象存储服务)项目
Preparing Swift builder entries                      [ DONE ]
Preparing Swift proxy entries                        [ DONE ]
Preparing Swift storage entries                      [ DONE ]
# 准备Gnocchi(用于计量的时间序列数据库服务器)项目
Preparing Gnocchi entries                            [ DONE ]
# 准备Redis(用于计量的数据结构服务器)项目
Preparing Redis entries                              [ DONE ]
# 准备Ceilometer(计量服务)项目
Preparing Ceilometer entries                         [ DONE ]
# 准备Aodh(警告)项目
Preparing Aodh entries                               [ DONE ]
# 准备Puppet模块和配置清单
Preparing Puppet manifests                           [ DONE ]
Copying Puppet modules and manifests                 [ DONE ]
# 应用控制节点(测试时可能需要较长时间,可以考虑先开一局王者~)
Applying 192.168.101.166_controller.pp
192.168.101.166_controller.pp:                        [ DONE ]           
# 应用网络节点(测试时可能需要较长时间,可以考虑先开一局王者~)
Applying 192.168.101.166_network.pp
192.168.101.166_network.pp:                           [ DONE ]        
# 应用计算节点(测试时可能需要较长时间,可以考虑先开一局王者~)
Applying 192.168.101.166_compute.pp
192.168.101.166_compute.pp:                           [ DONE ]        
# 应用Puppet配置清单
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]
# 安装成功,完成应用并给出其他提示信息
 **** Installation completed successfully ******
Additional information:
# 提示网络已采用OVN Neutron后端
 * Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
# 执行命令产生的应答文件
 * A new answerfile was created in: /root/packstack-answers-20220415-231639.txt
# 未安装时间同步,需要确认CentOS当前的系统时间是否正确,如果不正确,则需要修改
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
# 在用户主目录下产生keystonerc_admin文件,要使用命令行工具需要使用它作为授权凭据
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.101.166. To use the command line tools you need to source the file.
# 访问OpenStack Dashboard(Web访问界面),请使用keystonerc_admin中的登录凭据
 * To access the OpenStack Dashboard browse to http://192.168.101.166/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
# 安装日志文件名及其路径
 * The installation log file is available at: /var/tmp/packstack/20220415-231639-wZEI2M/ openstack-setup.log
# Puppet配置清单路径
 * The generated manifests are available at: /var/tmp/packstack/20220415-231639- wZEI2M/manifests
# 在命令行中执行以下命令,获取OpenStack主要组件Nova的当前安装版本。

(4)查看所安装的OpenStack版本。

代码语言:javascript复制
[root@hadoop1 ~]# nova-manage --version

0 人点赞