1.什么是OpenStack


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



2. OpenStack项目及其组成

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

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. 设置时间同步

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

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

5.快速安装:


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


5.1 准备工作:

(1)准备一台能够安装OpenStack的实验用计算机,建议使用VMware虚拟机。

(2)该计算机应安装CentOS 7,我这是基于​​CentOS 7.6​​版本。

(3)禁用防火墙与SELinux。

[root@hadoop1 ~]# systemctl stop firewalld

(4)停用NetworkManager服务。

[root@hadoop1 ~]# systemctl stop NetworkManager

[root@hadoop1 ~]# systemctl disable NetworkManager

(5)设置网卡。

[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 重启网卡服务
[root@hadoop1 ~]# systemctl restart network

(6)设置主机名。

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

(7)设置时间同步

[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)准备所需的软件库。

# 安装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软件。

[root@hadoop1 ~]# yum -y install openstack-packstack

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

[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版本。

[root@hadoop1 ~]# nova-manage --version