HCIP-OpenStack搭建

1、OpenStack概述

企业对数据安全性要求高搭建私有云,华为私有云HCS:Huawei Cloud Stack ;
云本身不提供资源,云是资源整合者,大部分云都是基于OpenStack做二次开发的,OpenStack不提供资源,它是把底层的各种虚拟化和物理机聚合在一起,组成一个大的资源池对外提供服务。
OpenStack不能直接安装在裸机(物理机)上,要先装linux在linux装OpenStack,查看云平台是基于哪个版本的OpenStack做二次开发的,可用命令查看nova等组件版本,然后去OpenStack官网对比。
OpenStack是一种云操作系统,OpenStack是虚拟机、裸金属和容器的云基础架构;OpenStack可控制整个数据中心的大型计算、存储和网络资源池;所有资源都通过API或Web界面进行管理。
OpenStack既是一个社区,也是一个项目和一个开源软件,作为一个开源的云计算管理平台,OpenStack由几个主要的组件组合起来完成具体工作。OpenStack社区:https://www.openstack.org/
为什么称OpenStack是云操作系统?
云一般指云计算,聚焦于IT能力服务化,达到按需使用、按量计费;
操作系统的功能主要分为资源抽象(比如底层资源计算、存储、网络抽象为统一的接口提供给上层的应用,上层的应用基于此接口去调用)、资源分配与负载调度、应用生命周期管理、系统运维和人机交互,OpenStack具备以上能力,所以OpenStack可称为云操作系统。
OpenStack优先考虑如何将计算、存储、网络领域的各类资源抽象为资源池。在此基础上,对资源池内的各类逻辑对象实施控制操作,并将控制操作包装成面向用户的服务。
云计算与虚拟化的关键区别:
云计算的特点是IT能力的服务化,按需使用,按量计费,多租户隔离等。
虚拟化的特点是环境隔离,资源复用,降低隔离损耗,提升运行效率,提供高级虚拟化特性等。
在这里插入图片描述
生产环境中,一般会有专门的OpenStack部署服务节点、如控制节点、计算节点、网络节点和存储服务节点等。生产环境的控制节点建议三台以上,其他节点按需求部署。实验环境会嵌套虚拟机,生产环境不会嵌套虚拟机。
控制节点提供各种组件的api接口(nova-api、cinder-api、glance-api),所有组件api都在控制节点上,api是访问入口,请求处理都给控制节点api,提供具体服务的是计算节点,存储节点、网络节点等,HCS搭建要3个控制节点(内存配置高是因为部署很多服务,华为云集群软件是zookeeper(分布式集群软件),3个节点做集群用的是zookeeper,zookeeper集群必须是单数,为了防止脑裂,两个节点中间网络断了就脑裂了),2个网络节点,N个计算节点。
在这里插入图片描述
OpenStack把这些组件服务都集成到httpd服务中了,目的是为了提升性能。登入不了openstack在控制节点查看httpd服务状态,systemctl status httpd
OpenStack九大核心组件:
1、Horizon:提供Web图形化管理界面,dashboard 图形界面。
2、Ceilometer: 计量服务,监控各个主机资源使用情况,监控和计费。
3、Heat:编排服务,用来批量部署,自动化创建很多虚拟机。
4、Keystone:提供身份认证服务、endpoint端点(类似于电话簿,给谁打哪个电话),所有的服务都要在keystone组件上注册的,不注册无法访问。
5、Nova:提供计算资源,cpu,内存
6、Neutron:提供网络服务,SDN 软件定义网络,neutron可以提供二层网络功能,3层路由功能,DHCP功能等
7、Glance:提供镜像服务的,glance加载镜像但不存储镜像,glance后面一定会对接存储的,这里对接的是swift对象存储(但实验环境是存在本地文件系统的)。
8、Swift:对象存储服务,把文件以对象形式存在,给云上各种服务用的
9、Cinder:块存储服务,给虚拟机用,裸设备比如存储上的lun,裸设备是没有文件系统的不能直接写数据进去的。
cinder块存储,适合大量增删改数据库场景,适合实时更新动态数据场景。
swift对象存储,读取大量不改动的静态数据、文件共享,会有对接的后端存储,真正的存储落脚点还是在底层的磁盘。

2、linux模板制作

安装配置操作系统,使用CentOS stream 8镜像
之前:RHEL 8.4 发布了,CentOS紧随其后,发布CentOS 8.4
之后:CentOS 走在前面,成为RHEL上游,再去发布RHEL
使用minimal最小化安装Stream-8,最小化安装用# ip a查看ip
在这里插入图片描述
制作Linux 虚拟机模板,后面克隆(完整克隆)出计算节点compute和控制节点controller,https://blog.51cto.com/cloudcs/5258769
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Controller节点内存8G,Compute内存节点4G,两个节点都是4个CPU处理器,硬盘都100G 
1、修改网卡信息 # cd /etc/sysconfig/network-scripts/  # cat ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens160
DEVICE=ens160
ONBOOT=yes
2、清除密钥信息 # cd /etc/ssh
# rm -rf ssh_host_*
3、清除 Machine ID # cat /etc/machine-id 
000fca8b6e184c94adbae8a120ce776a
# cat /dev/null > /etc/machine-id 
# cat /etc/machine-id 
4、最后关闭虚拟机,# init 0 关机(开机上述文件又会自动生成)
关机状态下进行克隆虚拟机,通过模板完整克隆出两台完整复制的虚拟机。

在这里插入图片描述
开启两台虚拟机(controller和compute),分别修改主机名和配置静态IP
在这里插入图片描述
在这里插入图片描述

# hostnamectl set-hostname controller
# cd /etc/sysconfig/network-scripts/
# vi ifcfg-ens160 
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=10.1.1.50      10.1.1.60
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=10.1.1.2      要有DNS,DNS1、DNS2这种写法而不是直接DNS
重启控制节点和计算节点(controller和compute)再拍摄快照

在这里插入图片描述

3、OpenStack环境搭建(在线yum源)

Openstack环境搭建有很多种方法:
1.手工搭建,一个组件一个组件去安装,包括创建数据库/授权/service/endpoint等等。
2.通过packstack工具 生成一个应答文件,编写应答文件,packstack调用应答文件去安装openstack环境。
packstack工具/devstack/ansible等三方工具自动化部署安装openstack(首先要去安装os)
3.Tripple O(3个O openstack on openstack)首先会搭建出来一个精简版openstack,利用openstack 里面一个组件 heat,利用heat编排服务去运行一个完整的openstack(HCS),相当于os都不再需要安装了(整个私有云待部署的环境),直接从一台宿主机开始(插电就行,BMC管理口连接操作),把整个环境搭建出来,一切从0到1,一键部署。
华为提供了一个工具FusionCloud Deploy(FCD工具 6.5.1之前的名称),之后改名为 HuaweiCloudStack Deploy(HCSD工具),通过这个工具来实现一键式部署整个私有云环境。
安装华为提供的HUAWEI_CLOUD_Stack_Deploy_8.1.1.SPC102-X86_64.iso(EulerOS–>CentOS内核),系统里面对应的服务会自动启动,之后提供web界面进行登录,使用HCSD工具。
https://blog.51cto.com/cloudcs/6267456 搭建 openstack 最麻烦的是 yum 源问题
8版本用NetworkManager替代了network,仍想用ntwork需安装network服务,# yum install network-scripts -y

以下内容控制节点和计算节点都要操作(控制节点和计算节点8G内存4核CPU 100G磁盘)
关闭防火墙和selinux和NetworkManager
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config  修改SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
配置ip和主机名的映射,
# vi /etc/hosts
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.1.50 controller
10.1.1.60 compute
安装基础软件包(用自带的在线yum源)
yum install -y vim net-tools bash-completion chrony.x86_64 centos-release-openstack-victoria.noarch
安装network服务,# yum install network-scripts -y
配置ntp时间同步
# vim  /etc/chrony.conf
pool ntp.aliyun.com iburst
# systemctl start chronyd
# systemctl enable chronyd
配置yum源(先把原有的备份后清空)
# cd /etc/yum.repos.d/      # rm -rf *
# cat cloud.repo 

[highavailability]
name=CentOS Stream 8 - HighAvailability
baseurl=https://mirrors.aliyun.com/centos/8-stream/HighAvailability/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[nfv]
name=CentOS Stream 8 - NFV
baseurl=https://mirrors.aliyun.com/centos/8-stream/NFV/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[rt]
name=CentOS Stream 8 - RT
baseurl=https://mirrors.aliyun.com/centos/8-stream/RT/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[resilientstorage]
name=CentOS Stream 8 - ResilientStorage
baseurl=https://mirrors.aliyun.com/centos/8-stream/ResilientStorage/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[extras-common]
name=CentOS Stream 8 - Extras packages
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/x86_64/extras-common/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[extras]
name=CentOS Stream  - Extras
mirrorlist=http://mirrorlist.centos.org/?release=&arch=&repo=extras&infra=
#baseurl=http://mirror.centos.org///extras//os/
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[centos-ceph-pacific]
name=CentOS - Ceph Pacific
baseurl=https://mirrors.aliyun.com/centos/8-stream/storage/x86_64/ceph-pacific/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

[centos-rabbitmq-38]
name=CentOS-8 - RabbitMQ 38
baseurl=https://mirrors.aliyun.com/centos/8-stream/messaging/x86_64/rabbitmq-38/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Messaging

[centos-nfv-openvswitch]
name=CentOS Stream 8 - NFV OpenvSwitch
baseurl=https://mirrors.aliyun.com/centos/8-stream/nfv/x86_64/openvswitch-2/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-NFV
module_hotfixes=1

[baseos]
name=CentOS Stream 8 - BaseOS
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[appstream]
name=CentOS Stream 8 - AppStream
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[centos-openstack-victoria]
name=CentOS 8 - OpenStack victoria
baseurl=https://mirrors.aliyun.com/centos/8-stream/cloud/x86_64/openstack-victoria/
#baseurl=https://repo.huaweicloud.com/centos/8-stream/cloud/x86_64/openstack-yoga/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
module_hotfixes=1

[powertools]
name=CentOS Stream 8 - PowerTools
#mirrorlist=http://mirrorlist.centos.org/?release=&arch=&repo=PowerTools&infra=
baseurl=https://mirrors.aliyun.com/centos/8-stream/PowerTools/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

# yum clean all  清理缓存
# yum makecache  重新建立缓存
# yum repolist all  列出yum仓库(13个)

只在控制节点上安装并配置packstack
安装packstack工具,# yum install -y openstack-packstack
[root@controller ~]# packstack --help |grep ans 找到生成应答文件的参数,–gen-answer-file
[root@controller ~]# packstack --gen-answer-file=yingda.txt 生成应答文件
编辑应答文件,# vim yingda.txt
修改以下参数内容
CONFIG_COMPUTE_HOSTS=10.1.1.50,10.1.1.60
CONFIG_KEYSTONE_ADMIN_PW=redhat
CONFIG_PROVISION_DEMO=n
CONFIG_HEAT_INSTALL=y
CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:ens160
需要注意的是 br-ex 后面对应的网卡名称,有的网卡是ens33,我这里是ens160
根据应答文件安装openstack,# packstack --answer-file=yingda.txt
在这里插入图片描述
8版本用NetworkManager替代了network,仍想用ntwork需安装network服务,# yum install network-scripts -y 前面把NetworkManager禁用了后面启用network服务。因关闭 NetworkManager 服务,会导致节点重启后网络无法自动启用,也会导致 openstack 组件异常,所以启用 network 来替代 NetworkManager 服务。
控制节点和计算节点都开启network服务,# systemctl start network # systemctl enable network
控制节点和计算节点都开启网络服务后分别拍摄快照
在这里插入图片描述
用户admin,密码忘记了去应答文件中找。
在这里插入图片描述
nova-api、glance-api、cinder-api等组件都部署在controller节点,所有访问服务的入口都在controller节点。
环境启动后,能不能通过界面登录,是要看一个服务的,httpd(apache服务),因为dashboard服务集成在了httpd里面。所以要查看httpd。由于有些环境虚拟机配置有点低,所以第一次启动的时候,尤其是控制节点,可能某些组件无法起来,比如rabbitmq组件,一定关注这个组件。

4、OpenStack环境搭建(本地yum源)

所有流程和在线yum源是一样的,唯独配置yum源不一样。
在这里插入图片描述
在计算节点上开启httpd服务[root@compute ~]# yum install -y httpd # systemctl start httpd # systemctl enable httpd
[root@compute ~]# mkdir /iso 后将镜像放置该目录下[root@compute ~]# ls /iso
CentOS-Stream-8-OPS-Victoria.iso CentOS-Stream-8-x86_64-20221222-dvd1.iso
[root@compute ~]# cd /var/www/html/ [root@compute html]# mkdir os vic
[root@compute html]# vim /etc/fstab 镜像文件系统类型为iso9660
/iso/CentOS-Stream-8-x86_64-20221222-dvd1.iso /var/www/html/os iso9660 defaults 0 0
/iso/CentOS-Stream-8-OPS-Victoria.iso /var/www/html/vic iso9660 defaults 0 0
[root@compute html]# mount -a 刷新
[root@compute html]# df -Th
在这里插入图片描述
控制节点和计算节点都要配置本地yum源

cat <<EOF > /etc/yum.repos.d/cloudcs.repo
[highavailability]
name=CentOS Stream 8 - HighAvailability
baseurl=http://192.168.100.152/vic/highavailability/
gpgcheck=0

[nfv]
name=CentOS Stream 8 - NFV
baseurl=http://192.168.100.152/vic/nfv/
gpgcheck=0

[rt]
name=CentOS Stream 8 - RT
baseurl=http://192.168.100.152/vic/rt/
gpgcheck=0

[resilientstorage]
name=CentOS Stream 8 - ResilientStorage
baseurl=http://192.168.100.152/vic/resilientstorage/
gpgcheck=0

[extras-common]
name=CentOS Stream 8 - Extras packages
baseurl=http://192.168.100.152/vic/extras-common/
gpgcheck=0

[extras]
name=CentOS Stream $releasever - Extras
baseurl=http://192.168.100.152/vic/extras/
gpgcheck=0

[centos-ceph-pacific]
name=CentOS - Ceph Pacific
baseurl=http://192.168.100.152/vic/centos-ceph-pacific/
gpgcheck=0

[centos-rabbitmq-38]
name=CentOS-8 - RabbitMQ 38
baseurl=http://192.168.100.152/vic/centos-rabbitmq-38/
gpgcheck=0

[centos-nfv-openvswitch]
name=CentOS Stream 8 - NFV OpenvSwitch
baseurl=http://192.168.100.152/vic/centos-nfv-openvswitch/
gpgcheck=0

[baseos]
name=CentOS Stream 8 - BaseOS
baseurl=http://192.168.100.152/os/BaseOS/
gpgcheck=0

[appstream]
name=CentOS Stream 8 - AppStream
baseurl=http://192.168.100.152/os/AppStream/
gpgcheck=0

[centos-openstack-victoria]
name=CentOS 8 - OpenStack victoria
baseurl=http://192.168.100.152/vic/centos-openstack-victoria/
gpgcheck=0

[powertools]
name=CentOS Stream 8 - PowerTools
baseurl=http://192.168.100.152/vic/powertools/
gpgcheck=0
EOF

从网上下载新的Stream-8的isoj镜像如CentOS-Stream-8-x86_64-latest-dvd1.iso更新了一些新特性,导致本地yum源安装openstack-packstack失败,本地yum源加module_hotfixes=1参数也不行,得用CentOS-Stream-8-OPS-Victoria.iso和CentOS-Stream-8-x86_64-20221222-dvd1.iso配套使用。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值