手把手教你搭建OpenStack云平台(超级详细)

news2024/11/15 17:25:22

一、前言

OpenStack云平台搭建需要两个节点,一个是controller(控制节点),另一个是compute(计算节点)。

控制节点(controller)规划如下:

        一块200G的硬盘。两块网卡,第一块网卡IP地址使用192.168.100.10,第二块网卡IP地址使用192.168.200.10。

计算节点(compute)规划如下:

        一块200G的硬盘和一块100G的硬盘。两块网卡,第一块网卡IP地址使用192.168.100.20,第二块网卡IP地址使用192.168.200.20。

云平台搭建需要使用centos7.5及7.0版本的镜像和chinaskills_cloud_iaas.iso镜像,镜像提供如下:

        centos7.5镜像链接:https://pan.baidu.com/s/1stvdGLKTwVqrAyzTW-WQuA 
        提取码:yjsq 

        centos7.0镜像链接:https://pan.baidu.com/s/10zQAxkSqO37_EAX2wVyy9A 
        提取码:yjsq 

        iaas镜像链接:https://pan.baidu.com/s/11iAL7pQf31Kyer2UfVe2ZA 
        提取码:yjsq


二、基础环境准备及安装系统

        1.controller控制节点


重启后使用root用户登录,然后修改主机名,配置网卡、内核。

1.修改主机名。

2.修改第一块网卡。

修改、添加内容如下 (注:按下i键进入插入模式,按下ESC键,然后输入冒号wq退出)。

3.修改第二块网卡。

 修改、添加内容如下:

重启网卡,使配置生效。

 使用ip a 命令检验配置是否生效。

 4.修改内核。

添加内容如下:

 刷新内核,然后重启使配置生效。

 重启之后使用SecureCRT连上controller节点。(注:连接SecureCRT是为了方便)

注意:VMnet8必须跟controller节点和compute节点在同一个网段才能连接上SecureCRT。

 输入密码后,点击“确定”即可连接上SecureCRT。

出现以下图示表示连接成功。


        2.compute计算节点

说明:compute节点与controller节点基础环境及安装系统大致相同,可参考controller节点配置,以下是稍有不同的地方。

 第一块网卡配置如下:

第二块网卡配置如下:

注意:compute节点也需要连上SecureCRT。


三、正式搭建OpenStack云平台

controller节点配置:

        1.上传centos7.0镜像和chinaskills_cloud_iaas.iso镜像至controller节点。

centos7.0镜像上传方式如上。

         2.关闭防火墙,selinux。

[root@controller ~]# systemctl stop firewalld        #关闭防火墙
[root@controller ~]# systemctl disable firewalld        #设置防火墙开机不自启
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@controller ~]# setenforce 0        #临时关闭selinux防火墙,0表示关闭,1表示开启
[root@controller ~]# getenforce        #查看selinux防火墙的状态
Permissive
[root@controller ~]# vi /etc/selinux/config         #非临时性
[root@controller ~]# 

selinux配置文件内容修改如下:

        3.挂载镜像

查看镜像是否已上传。

挂载镜像。

[root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@controller ~]# mkdir /opt/centos
[root@controller ~]# cp -rf /mnt/* /opt/centos/
[root@controller ~]# umount /mnt/
[root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@controller ~]# cp -rf /mnt/* /opt/
[root@controller ~]# umount /mnt/
[root@controller ~]# 

        4.yum源文件处理

移除原yum源。

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

 写yum源文件。

[root@controller yum.repos.d]# vi local.repo 
[root@controller yum.repos.d]# cat local.repo 
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1

[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1
[root@controller yum.repos.d]# 

清除yum源缓存,验证yum源,下载所需软件包。

[root@controller yum.repos.d]# yum clean all        #清除yum源缓存
已加载插件:fastestmirror
正在清理软件源: centos iaas
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@controller yum.repos.d]# yum repolist        #列出所有可用的yum源
已加载插件:fastestmirror
Determining fastest mirrors
centos                                                                          | 3.6 kB  00:00:00     
iaas                                                                            | 2.9 kB  00:00:00     
(1/3): centos/group_gz                                                          | 166 kB  00:00:00     
(2/3): centos/primary_db                                                        | 3.1 MB  00:00:00     
(3/3): iaas/primary_db                                                          | 1.4 MB  00:00:00     
源标识                                           源名称                                           状态
centos                                           centos                                           3,971
iaas                                             iaas                                             3,232
repolist: 7,203
[root@controller yum.repos.d]# yum install -y vim vsftpd iaas-xiandian   #安装所需的软件包

        5.配置vsftpd。

[root@controller yum.repos.d]# echo anon_root=/opt/ >> /etc/vsftpd/vsftpd.conf #设置匿名访问
[root@controller yum.repos.d]# systemctl restart vsftpd        #重启ftp服务
[root@controller yum.repos.d]# systemctl enable vsftpd        #设置ftp服务开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@controller yum.repos.d]# 

        6.修改脚本。

[root@controller ~]# vim /etc/xiandian/openrc.sh

 注:在非插入模式下按下Ctrl+v——shift+g——D可删除注释符号。


#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10        #controller节点的IP地址

#Controller HOST Password. example:000000 
HOST_PASS=000000

#Controller Server hostname. example:controller
HOST_NAME=controller

#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.20        #compute节点的IP地址

#Compute HOST Password. example:000000 
HOST_PASS_NODE=000000

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute

#--------------------Chrony Config-------------------##
#Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.100.0/24        #controller节点所在的网段

#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack

#Password for rabbit user .example:000000
RABBIT_PASS=000000

#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000

#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo        
ADMIN_PASS=000000
DEMO_PASS=000000

#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.100.10        #本机IP地址

#External Network Interface. example:eth1
INTERFACE_NAME=eth1

#External Network The Physical Adapter. example:provider
Physical_NAME=provider

#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200

#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000

#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000

#Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1        #compute节点的存储块

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2        #compute节点的存储块

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.100.20    #compute节点的IP地址

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000

#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000

#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000

#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000

#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000

#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000

#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000

#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000

#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000

#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000

#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000

#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000

 compute节点配置:

        1.关闭防火墙,selinux。

[root@compute ~]# systemctl stop firewalld
[root@compute ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@compute ~]# setenforce 0
[root@compute ~]# getenforce
Permissive
[root@compute ~]# vi /etc/selinux/config 

         2.硬盘分区。

[root@compute ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x34bc5373 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-209715199,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):+25G
分区 1 已设置为 Linux 类型,大小设为 25 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (52430848-209715199,默认为 52430848):
将使用默认值 52430848
Last 扇区, +扇区 or +size{K,M,G} (52430848-209715199,默认为 209715199):+25G
分区 2 已设置为 Linux 类型,大小设为 25 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@compute ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  200G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0  199G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0  147G  0 lvm  /home
sdb               8:16   0  100G  0 disk 
├─sdb1            8:17   0   25G  0 part 
└─sdb2            8:18   0   25G  0 part 
sr0              11:0    1  4.2G  0 rom  
[root@compute ~]# 

         3.yum源文件处理。

移除原yum源。

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

写yum源文件。

[root@compute yum.repos.d]# vi local.repo
[root@compute yum.repos.d]# cat local.repo 
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1

[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas-repo
gpgcheck=0
enabled=1
[root@compute yum.repos.d]#

清除yum源缓存,验证yum源,下载所需软件包。

[root@compute yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: centos iaas
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
[root@compute yum.repos.d]# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
centos                                                                          | 3.6 kB  00:00:00     
iaas                                                                            | 2.9 kB  00:00:00     
(1/3): centos/group_gz                                                          | 166 kB  00:00:00     
(2/3): centos/primary_db                                                        | 3.1 MB  00:00:00     
(3/3): iaas/primary_db                                                          | 1.4 MB  00:00:00     
源标识                                           源名称                                           状态
centos                                           centos                                           3,971
iaas                                             iaas                                             3,232
repolist: 7,203
[root@compute yum.repos.d]# yum install -y vim iaas-xiandian

        4.修改脚本。

将controller节点的脚本复制至compute节点。

[root@compute ~]# scp 192.168.100.10:/etc/xiandian/openrc.sh /etc/xiandian/openrc.sh 
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:3fUEo7XuafRBPMtY2rSnpjKOdGSrLnE68O2aZAXEp6o.
ECDSA key fingerprint is MD5:4b:73:20:24:30:ad:6a:31:86:fa:26:55:47:92:99:cc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts.
root@192.168.100.10's password: 
openrc.sh                                                            100% 3820     1.9MB/s   00:00    
[root@compute ~]# 

 需要修改compute节点的脚本。

[root@compute ~]# vim /etc/xiandian/openrc.sh

修改内容如下:


四、刷脚本。

controller节点需要刷以下脚本。

[root@controller ~]# iaas-pre-host.sh        #刷完该脚本后需要重启
......

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

[root@controller ~]# iaas-install-keystone.sh
......
[root@controller ~]# source /etc/keystone/admin-openrc.sh         #使环境生效

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

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

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

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

 compute节点需要刷以下脚本。

[root@compute ~]# iaas-pre-host.sh         #刷完该脚本后需要重启
......

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

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

五、登录OpenStack云平台

在浏览器中输入http://192.168.100.10/dashboard。

出现以下图示表示云平台搭建成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/594249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天地图下载数据的方法

天地图下载数据的方法,目前我知道的,部分数据可以下载,部分数据不提供下载(但是有数据)具体就不知道原因了,话不多说: 登录全国地理信息资源目录服务系统(全国地理信息资源目录服务…

cuda编程

https://docs.nvidia.com/cuda/index.html 这里写目录标题 OpenCL 与OpenGlrelease noteCUDA Features Archivensight visual studio安装指导本地下载和网络下载 bili 视频1c2050 版本Fermi架构3接口延迟cpu逻辑控制,管理 GPU计算核心连接 GPU硬件架构综述架构2atom…

Revit中如何使创建的族文件内存变小

族文件的大小直接影响到项目文件的大小和软件运行速度,如何将族文件做的最小并且满足项目需求呢? 方法一:清除未使用项 1. 族制作完成可以把族文件中未用到的外部载入族或其他多余数据删掉,点击“管理”选项卡下拉的“清除未使用项”命令; 2…

我拒绝了字节的offer,给求职者提个醒....

我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是2年。我想说的是,但凡有点机会,千万别去外包! 在深思熟虑过后&am…

LabVIEWCompactRIO 开发指南第七章45 将I/O添加到Compact RIO

LabVIEWCompactRIO 开发指南第七章45 将I/O添加到Compact RIO 基于LabVIEW可重配置I/O(RIO)架构的NI产品日益被采用用于需要高通道数、密集处理和分布式I/O的系统级应用。将RIO扩展I/O添加到NI RIO产品产品中,可实现1:N系统拓扑…

源码分析 | MySQL 的 commit 是怎么 commit 的?

作者:李鹏博 爱可生 DBA 团队成员,主要负责 MySQL 故障处理和 SQL 审核优化。对技术执着,为客户负责。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 …

JavaEE进阶(Mybatis)5/30

目录 1.单元测试 2.生成单元测试 3.Mybatis 插入操作 4.#{}和${}的区别 1.单元测试 优点,1.可以检查方法的正确性 2.可以,在打包前检查程序的错误,减少错误 3.不污染数据库 2.生成单元测试 1.要生成的类内部generate 2.添加单元测试的代码…

5.31串讲Spring、Vue相关问题

5.31串讲 SSM相关问题 文章目录 5.31串讲 SSM相关问题Spring Security(Shiro)Security框架认证流程Security流程图展示 Vue相关指令四个阶段 axios Spring Security(Shiro) Spring Security是一个基于Spring 的安全框架&#xff…

高压放大器怎么驱动超声波探头的

高压放大器是超声波探头中的关键部分,它主要用于放大发射信号和接收信号。在超声波成像过程中,发射信号需要经过高压放大器的放大后才能刺激探头产生超声波,并且接受到的超声波也需要通过高压放大器进行放大处理。因此,高压放大器…

ChatGPT正式登陆iOS平台

6天前,ChatGPT在美区App Store中上架了官方App,累计下载量已经突破 50 万次,OpenAI 的 ChatGPT 应用在上架之后,其热度远超必应聊天等聊天机器人,以及其它使用 GPT-4 的第三方应用。 3.5是免费的,GPT4是收…

【大数据之Hive】五、Hiveserver2服务部署

hiveserver2服务 hiveserver2提供JDBC/ODBC接口,使得用户可以远程访问Hive数据,即作为客户端的代理与Hadoop集群进行交互。 hiveserver2部署时需要部署到一个能访问集群的节点上,保证能够直接往Hadoop上提交数据。   用户在客户端提交SQL语…

8个免费UI图标网站,任何设计师都不该错过

图标是网页设计和应用程序界面设计中不可缺少的一部分。但在日常工作中,许多设计师每次都需要设计一套特定的图标,但他们不知道在哪里获得高质量的UI图标素材。 本文推荐8个宝藏级UI图标完整资源网站,免费,建议迅速收集以备不时之…

Linux网站搭建(nginx+php+mysql)

中间件 web服务器:nginx(前端网页)php 数据库服务器:mysql 思路: 先安装中间件nginx,nginx要采用源码安装。安装按之后启动,可以访问到一个静态初始页面;然后安装php(超…

可节省40%MCU开发成本的音乐睡眠灯语音扩展芯片方案N9300-S16

随着社会节奏的加快,人们每天的生活节奏也在不断的加快,工作压力也在不断的加大,越来越多的人都面临着失眠的痛苦,当拖着疲惫不堪的身体躺到床上时,却发现由于担忧每天的工作或月底需要交房租等问题,久久无…

『赠书活动 | 第七期』《硅基物语》

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 『赠书活动 | 第七期』 本期书籍:《硅基物语》 赠书规则:评论区:点赞|收藏|留言 评论区留言&a…

数据为基 成峰化海|GBASE南大通用openGauss Developer Day 2023精彩看点一览

5月26日,面向数据库开发者的年度技术盛会「openGauss Developer Day 2023」在北京圆满召开。本届大会以“聚数成峰,共赢未来”为主题,汇集产学研用各层面技术专家、企业领军,分享openGauss社区前沿技术创新、优秀实践和生态成果。…

linux内核升级详细步骤

# 安装yum源; rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # 查看内核可用版本 yum --disablerepo"*" --enablerepo"elrepo-kernel" list available # 安装最…

Docker部署yolov5

目录 环境下载源码构建Docker镜像运行docker镜像运行目标检测出现partially initialized module cv2 has no attribute _registerMatType错误出现ImportError: libSM.so.6: cannot open shared object file: No such file or directory错误出现AttributeError: Upsample object…

产品设计需要学的8款软件

1、即时设计: 即时设计是国内广受 UI/UX 设计师和产品经理欢迎的专业产品设计工具。它内置了 iOS 和 Android 设计系统资源,可帮助用户快速启动设计工作。该工具集成了原型设计、UI 设计、交互设计、交付和资源管理等多种功能,并自带专业设计…

【云原生|探索 Kubernetes 系列 8】探究 Pod 的 API 对象属性级别与重要字段用法

前言 大家好,我是秋意零。 本专栏上一篇中,我们介绍了 Pod 的核心思想以及 Pod 的工作原理。今天我们还是探讨 Pod ,聊一聊 Pod 的基本概念。 👿 简介 🏠 个人主页: 秋意零🧑 个人介绍&#x…