首页 > 其他分享 >OpenStack基础平台部署案例

OpenStack基础平台部署案例

时间:2024-09-24 12:50:48浏览次数:11  
标签:compute 000000 部署 案例 controller OpenStack iaas root 节点

OpenStack基础平台部署案例

案例描述

本案例是讲述如何使用云主机搭建OpenStack云平台。包括两种搭建的方式,一种是直接执行脚本安装,另一种是使用Ansible安装。

使用这种方式,不需要重复安装系统去搭建平台,只需要创建云主机去构建OpenStack云平台,使用云主机去练习相应的操作。

案例一、OpenStack基础平台部署

案例准备

  1. 规划节点

创建两台虚拟机,每台虚拟机都需要两张网卡,一张为net一张为仅主机

1.1 节点规划见表1-1。

表1-1 节点规划

NET网卡ip

IP

主机名

节点

192.168.200.12

Controller

控制节点

192.168.200.21

Compute

计算节点

仅主机ip

IP

主机名

节点

192.168.100.12

Controller

控制节点

192.168.100.21

Compute

计算节点

连CRT用仅主机IP连接

2.基础准备

在物理服务器上安装好的OpenStack云平台中使用CentOS7.9镜像申请两台云主机,云主机类型为4vcpu、8G内存、100G磁盘及50G临时磁盘;需要给云主机两个网络接口,网络接口1设置为外部网络,作为云主机通信和管理使用,网络接口2设置为内部网络,主要为云主机提供一个网卡设备。

快照!             关防火墙!

以下文档中所有ip使用你们自己配的ip(文档的IP是我自己的)!

创建云主机结果如图2-1所示。

图2-1 创建云主机

案例实施

1.环境配置

(1)配置主机名

使用CRT软件连接controller节点和compute节点,用户名默认为root,密码默认为000000。连接上之后,使用linux命令修改节点主机名。

#修改控制节点主机名

[root@controller ~]# hostnamectl set-hostname controller && bash

[root@controller ~]# hostname

controller

#修改计算节点主机名

[root@compute ~]# hostnamectl set-hostname compute && bash

[root@compute ~]# hostname

compute

修改完成后,使用CRT软件断开重新连接controller节点和compute节点,以生效新主机名。

(2)配置域名解析

使用vi命令在controller节点与compute节点的/etc/hosts文件添加如下内容,添加完成后输入:wq保存文件内容退出。

[root@controller ~]# vi /etc/hosts

192.168.200.12 controller

192.168.200.21 compute

[root@compute ~]# vi /etc/hosts

192.168.200.12 controller

192.168.200.21 compute

对应的IP地址根据申请的云主机实际IP地址填写。

(3)配置yum环境

将OpenStack云平台部署的iso文件通过SecureCRT上传到controller节点的/root目录下。在/opt目录生成centos7-2009和iaas-train目录,将安装镜像文件内容复制到centos7-2009和iaas目录中。

[root@controller ~]# mkdir /opt/{centos7-2009,iaas}

[root@controller ~]# mount /root/CentOS-7-x86_64-DVD-2009.iso /mnt/

mount: /dev/loop0 is write-protected, mounting read-only

[root@controller ~]# cp -r /mnt/* /opt/centos7-2009/

[root@controller ~]# umount /mnt/

[root@controller ~]# mount /root/chinaskills_cloud_iaas_v2.0.iso /mnt/ 

mount: /dev/loop0 is write-protected, mounting read-only

[root@controller ~]# cp -r /mnt/* /opt/iaas/

[root@controller ~]# umount /mnt/

配置controller节点yum安装源文件yum.repo,指向本地文件目录路径。

[root@controller ~]# mv /etc/yum.repos.d/* /media/

[root@controller ~]#vi /etc/yum.repos.d/yum.repo

[centos]

name=centos7-2009

baseurl=file:///opt/centos7-2009

gpgcheck=0

enabled=1

[openstack]

name=openstack-train

baseurl=file:///opt/iaas/iaas-repo

gpgcheck=0

enabled=1

#更新并查看yum库

[root@controller ~]# yum clean all && yum repolist

repo id            repo name              yu          status

centos            centos7-2009                      4,070

openstack         openstack-train                     953

repolist: 5,023

在controller节点使用yum安装vsftpd服务,并将/opt目录下的文件共享出去。

[root@controller ~]# yum install -y vsftpd

#创建软连接,启动vsftpd并设置开机自启

[root@controller ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf

[root@controller ~]# systemctl start vsftpd

[root@controller ~]# systemctl enable vsftpd

配置compute节点yum安装源文件yum.repo,指向controller节点的共享文件目录路径。

[root@compute ~]# mkdir iaas

[root@compute ~]# mv /etc/yum.repos.d/* /media/

[root@compute ~]# vi  /etc/yum.repos.d/yum.repo

[centos]

name=centos7-2009

baseurl=ftp://controller/centos7-2009

gpgcheck=0

enabled=1

[openstack]

name=openstack-train

baseurl=ftp://controller/iaas/iaas-repo

gpgcheck=0

enabled=1

[root@compute ~]# yum clean all && yum repolist

repo id            repo name                        status

centos            centos7-2009                      4,070

openstack         openstack-train                     953

repolist: 5,023

(4)划分分区

在compute节点上的临时磁盘vdb中划分两个20G的分区。

#查看磁盘是否成功挂载

[root@compute ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda    253:0    0  100G  0 disk

└─vda1 253:1    0  100G  0 part /

sdb    253:16   0   50G  0 disk /mnt

[root@compute ~]# umount /mnt/

#对新加磁盘进行分区

[root@compute ~]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p):

Using default response p

Partition number (1-4, default 1):

First sector (2048-104857599, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +20G

Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): n

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p):

Using default response p

Partition number (2-4, default 2):

First sector (41945088-104857599, default 41945088):

Using default value 41945088

Last sector, +sectors or +size{K,M,G} (41945088-104857599, default 104857599): +20G

Partition 2 of type Linux and of size 20 GiB is set

Command (m for help): wq

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

#查看是否分区成功

[root@compute ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sdb  253:0    0  100G  0 disk

└─sdb1 253:1    0  100G  0 part /

sdb    253:16   0   50G  0 disk

├─sdb1 253:17   0   20G  0 part

└─sdb2 253:18   0   20G  0 part

2.OpenStack云平台部署

完成基础环境部署后,就可以开始部署安装OpenStack云平台。

(1)配置环境变量

在controller节点和compute节点安装OpenStack云平台的安装脚本软件包。

[root@controller ~]# yum install -y openstack-iaas

[root@compute ~]# yum install -y openstack-iaas

在controller节点和compute节点配置环境变量文件/etc/openstack/openrc.sh,内容如下所示。

  [root@controller ~]# vi  /etc/openstack/openrc.sh

 

#修改以下内容

HOST_IP=192.168.200.12        #net网卡的IP

HOST_PASS=000000           #controller节点root用户密码

HOST_NAME=controller

HOST_IP_NODE=192.168.200.21   #net网卡的IP

HOST_PASS_NODE=000000    #compute节点root用户密码

HOST_NAME_NODE=compute

network_segment_IP=192.168.200.0/24   #net网卡的网段

RABBIT_USER=openstack

RABBIT_PASS=000000

DB_PASS=000000

DOMAIN_NAME=demo

ADMIN_PASS=000000

DEMO_PASS=000000

KEYSTONE_DBPASS=000000

GLANCE_DBPASS=000000

GLANCE_PASS=000000

PLACEMENT_DBPASS=000000

PLACEMENT_PASS=000000

NOVA_DBPASS=000000

NOVA_PASS=000000

NEUTRON_DBPASS=000000

NEUTRON_PASS=000000

METADATA_SECRET=000000

INTERFACE_NAME=ens34      #仅主机网卡的网卡名

Physical_NAME=provider

minvlan=1

maxvlan=1000

CINDER_DBPASS=000000

CINDER_PASS=000000

BLOCK_DISK=sdb1          #compute节点第一个分区名称

SWIFT_PASS=000000

OBJECT_DISK=sdb2          #compute节点第二个分区名称

STORAGE_LOCAL_NET_IP=192.168.200.21  

请将填入数据的行列前的#去掉                未填写的请保留。

(2)部署OpenStack云平台基础环境

在controller节点和compute节点都执行脚本iaas-pre-host.sh部署OpenStack云平台基础环境。

[root@controller ~]# iaas-pre-host.sh

[root@compute ~]# iaas-pre-host.sh

(3)部署mariadb数据库及rabbit消息队列服务

在controller节点执行脚本部署mariadb数据库及rabbit消息队列服务。

[root@controller ~]# iaas-install-mysql.sh

(4)部署keystone服务

在controller节点执行脚本部署keystone服务。

[root@controller ~]# iaas-install-keystone.sh

(5)部署glance服务

在controller节点执行脚本部署glance服务。

[root@controller ~]# iaas-install-glance.sh

(6)部署nova服务

在controller节点执行脚本部署nova组件的控制服务。

[root@controller ~]# iaas-install-placement.sh

[root@controller ~]# iaas-install-nova-controller.sh

执行完上面的脚本后,在compute节点执行脚本部署nova组件的计算服务,这样就将compute节点的cpu、内存及磁盘资源添加到OpenStack云平台的资源池中了。

[root@compute ~]# iaas-install-nova-compute.sh

(7)部署neutron服务

在controller节点执行脚本部署neutron组件的控制服务。

[root@controller ~]# iaas-install-neutron-controller.sh

在compute节点执行脚本部署neutron组件的计算服务。

[root@compute ~]# iaas-install-neutron-compute.sh

(8)部署dashboard服务

在controller节点执行脚本部署dashboard组件服务。

[root@controller ~]# iaas-install-dashboard.sh

安装完成后,使用google浏览器访问OpenStack云平台,访问地址为:http://192.168.100.10/dashboard,domain为demo,用户名为admin,密码为000000。结果如图2-1和图2-2所示。

图2-1 OpenStack云平台dashboard访问1

图2-1 OpenStack云平台dashboard访问2

(9)部署cinder服务

在controller节点执行脚本部署cinder组件的控制服务。

[root@controller ~]# iaas-install-cinder-controller.sh

controller节点脚本执行完成后,在compute节点执行脚本部署cinder组件的计算服务。

[root@compute ~]# iaas-install-cinder-compute.sh

输入操作密码

(10)部署swift服务

在controller节点执行脚本部署swift组件的控制服务。

[root@controller ~]# iaas-install-swift-controller.sh

controller节点脚本执行完成后,在compute节点执行脚本部署swift组件的计算服务。

[root@compute ~]# iaas-install-swift-compute.sh

3.创建cirros云主机

(1)上传镜像

在controller节点使用OpenStack相关命令上传cirros镜像。

[root@controller ~]# source /etc/keystone/admin-openrc.sh

[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-format bare < /opt/iaas/images/cirros-0.3.4-x86_64-disk.img

+------------------+----------------------------------------------------------------------------------+

| Property         | Value                                                                            |

+------------------+----------------------------------------------------------------------------------+

| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                 |

| container_format | bare                                                                             |

| created_at       | 2022-02-16T02:58:23Z                                                             |

| disk_format      | qcow2                                                                            |

| id               | 76ce1b38-b1fa-465c-947f-288ea4760761                                             |

| min_disk         | 0                                                                                |

| min_ram          | 0                                                                                |

| name             | cirros                                                                           |

| os_hash_algo     | sha512                                                                           |

| os_hash_value    | 1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f7 |

|                  | 39d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2                                 |

| os_hidden        | False                                                                            |

| owner            | 1ac0739939db4dc78bf42802ba0205e9                                                 |

| protected        | False                                                                            |

| size             | 13287936                                                                         |

| status           | active                                                                           |

| tags             | []                                                                               |

| updated_at       | 2022-02-16T02:58:24Z                                                             |

| virtual_size     | Not available                                                                    |

| visibility       | shared                                                                           |

+------------------+----------------------------------------------------------------------------------+ 

(2)创建网络

在controller节点使用OpenStack相关命令创建一个net网络。

[root@controller ~]# source /etc/keystone/admin-openrc.sh

[root@controller ~]# openstack network create net

[root@controller ~]# openstack subnet create --network net --subnet-range 10.0.0.0/24 --gateway 10.0.0.1 subnet

(3)创建云主机

登录dashboard页面,在左侧菜单栏中选择“项目”-“计算”-“实例”,点击“创建实例”,输入实例名称cirros,默认可用域为nova,数量为1,点击下一步;选择已共享的cirros镜像,选择不创建新卷,点击下一步;选择

m1.tiny实例类型,点击下一步;选择net为虚拟机的网络;这样点击“创建实例”按钮就可以完成虚拟机创建。创建步骤如图3-1、图3-2、图3-3、图3-4所示。

图3-1虚拟机创建1

图3-2虚拟机创建2

图3-3虚拟机创建3

图3-4虚拟机创建4

等虚拟机创建完成后,可以看到虚拟机状态为“运行”,如图3-5所示。只要求创建cirros的云主机不报错,不要求创建后的cirros云主机可以使用CRT连接。

图3-5 cirros虚拟机运行

标签:compute,000000,部署,案例,controller,OpenStack,iaas,root,节点
From: https://blog.csdn.net/chenyang1180226/article/details/142485127

相关文章

  • 代码管理系统简介与部署git、gitHub、gitLab
            在开发一个项目时,如果只有几十行代码或几百行代码时维护还算简单,但是当代码数量达到一定程度或两三个人共同开发一个项目时,就很容易会出现代码混乱、冲突、排错难等问题。当代码编写完成以后发现整个项目运行不了时,提交的代码也无法确认到责任人,导致维护项目时......
  • GEE 案例:利用多源遥感数据来实现某流域土壤流失情况的具体分析
    目录简介数据函数expression(expression, map)Arguments:Returns: Imageui.Chart.array.values(array, axis, xLabels)Arguments:Returns: ui.Chart代码结果简介土壤流失是指土壤表层被水流、风蚀等自然力量移动或冲走的现象。它是一种严重的土地退化问题,......
  • 爬虫案例2-爬取视频的三种方式之一:DrissionPage篇(3)
    @目录前言DrissionPage介绍源码共勉博客前言继requests篇和selenium篇,我们今天用DrissionPage来进行图片的爬取。DrissionPage介绍DrissionPage和selenium相似,都是基于python的网页自动化工具。不过Drission库的结合了requests和Selenium的优势,既能控制浏览器交互,又能高效地收......
  • go基础-20.部署
    go项目的部署特别简单,编写完成之后,只需要执行gobuild即可打包为可执行文件注意,这个操作是不同平台不一样的windows下打包就是exe文件,linux下打包就是二进制文件打包命令gobuild打当前目录下的main包,注意,只能有一个main函数的包gobuildxxx.go打当前目录下,xxx.go的......
  • ChatGLM-6B部署到本地电脑
    引言ChatGLM-6B是由清华大学开源的双语对话大模型,该模型有62亿参数,但在经过量化后模型体积大幅下降,因此不同于其他需要部署到服务器上的大模型,该模型可以部署到本地电脑,那么接下来我们来看看如何部署该模型。首先是下载源码:双语对话大模型随后下载对应的权重文件,这里我们使用的是Hu......
  • 崖山从0到1系列06-崖山数据库双机高可用环境部署
    崖山从0到1系列06-崖山数据库双机高可用环境部署简单步骤环境:两台机器192.168.127.39192.168.127.40基础配置:调整机器的时钟,确保机器时钟一致。检测机器之前的网络通信情况,确保个节点通信正常创建yashan用户home目录和data目录划分。数据文件、redo文件以及归档......
  • ESP32 本地大模型部署语音助手
    ESP32S3Box提供了chatgpt的demo。因为访问不了的原因,打算改来做一个本地化部署的专用语音助手。文章目录准备工作Windows安装ESP-IDFWSL安装ESP-IDF配置IDF编译chatgptdemo串口映射下载语音助手调试步骤遇到的问题在WSL2中,server.py脚本无法被ESP访问端......
  • Axure大屏可视化模板:跨领域数据分析平台原型案例
    随着信息技术的飞速发展,数据可视化已成为各行各业提升管理效率、优化决策过程的重要手段。Axure作为一款强大的原型设计工具,其大屏可视化模板在农业、园区、城市、企业数据可视化、医疗等多个领域得到了广泛应用。本文将通过几个具体案例,展示Axure大屏可视化模板在不同领域中的......
  • 网口环保212设备数据 转 profinet IO项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 准备工作 24 电脑上采集环保HJ212设备的数据 25 配置网关参数 46 用PROFINETIO协议转发数据 77 其他事项 98 案例总结 101 案例说明设置网关采集环保212设备数据把采集的数据转成profinetIO从站协议转发给其他系统。2 VFB......
  • Axure精选各类组件案例集锦:设计灵感与实战技巧
    在设计大屏页面时,设计师们面临着如何构建丰富、直观且用户友好的界面的挑战。幸运的是,Axure等强大的原型设计工具提供了丰富的可视化组件库,为设计师们提供了无限的设计灵感和实战技巧。本文将通过精选的各类组件案例,探讨大屏设计中常用组件的应用场景与设计要点。大标题:引领视觉焦......