本文将详细说明虚拟机如何安装,并且搭建openstack

目录

一、安装vmware

二、下载CentOS镜像

三、创建虚拟机

四、虚拟机配置

五、克隆虚拟机

六、配置openstack环境


一、安装vmware

官网:VMware by Broadcom - Cloud Computing for the Enterprise

先进行注册登录(broadcom support)

登陆后进入以下页面

点击搜索:vmware,然后点击Downloading VMware Workstation Pro

往下滑找到free版本

选择其中一个版本进行下载

需要阅读相关信息后才能勾选,然后再点击下载

下载完成后,双击安装包进行安装,无脑下一步,注意安装位置就行

这两项建议取消

至此vmware17安装完成

二、下载CentOS镜像

这里将提供两种下载方法,网速不好且有网盘会员的可以看本节下面小技巧

方法一:官网进行下载

进入官网:Index of /

选择一个合适的版本下载

进入isos/x86_64文件夹下,点击DVD.iso下载即可

此方法可能比较慢,需要科学上网

方法二:阿里云国内镜像下载

地址:https://mirrors.aliyun.com/centos/

文件位置同上。

小技巧:如果有迅雷或者百度网盘的会员,可以先下载.torrent后缀的文件,这个俗称种子,下载完成后,打开百度网盘上传种子,然后双击种子,就可以在百度网盘高速下载了

三、创建虚拟机

选择下载好的镜像

尽量不要放c盘

右击虚拟机,点击设置

内存4G也行,看个人电脑配置

镜像选择刚下载的镜像centos7-2009,如果有两个镜像可以移除一个

网卡需要两个,点击添加,选择另一个网络适配器

两个网络适配器都是仅主机模式

然后添加三个硬盘(无脑下一步就好)

点击编辑-虚拟网络编辑器-更改设置

如果只有VMnet1,那么就点击添加网络,添加VMnet2仅主机模式,添加后点击应用

完成以上步骤后就可以点击确定,然后开机啦

开机加载ing

四、虚拟机配置

开机完成后,来到虚拟机配置

选择中文

选择安装磁盘,选择40G那个盘即可

设置密码,然后继续安装

安装完成后点击重启

重启后,账号为root,密码为刚刚设置的密码,下图即为登陆成功

修改名 ens33 网络接口的配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改为如下

同理修改ens36网络接口文件(名称可能不是这个,输入vi /etc/sysconfig/network-scripts/ifcfg-ens3后,连点两次tab键会看到你对应的文件名),修改完后,按esc,然后输入:wq,保存并退出

以上两处的IP地址和此处应该对应,比如VMnet1为192.168.187.0,那么ens33文件就修改为192.168.187.10

然后重启网络

systemctl restart network

然后随便一个shell连接工具都能连上虚拟机了,我以finalshell为例,连接192.168.187.10

后面操作基本都在shell工具中进行操作

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

修改相关配置文件 vi /etc/selinux/config

修改hosts文件  vi /etc/hosts

删除 rm -rf /etc/yum.repos.d/*

以上完成了基础配置

将虚拟机关机

五、克隆虚拟机

右击,点击管理-克隆

将两台虚拟机重命名controller和compute

启动compute,将ip的尾号从10改为20,参考上面修改ens33和ens36文件

然后重启网卡systemctl restart network

启动controller,然后使用shell连接两台虚拟机

方便区分,修改一下主机名

第一台输入命令,修改为controller:

hostnamectl set-hostname controller

bash

第二台输入命令,修改为compute:

hostnamectl set-hostname compute

bash

六、配置openstack环境

完成上述工作后,下载openstack镜像包
链接: https://pan.baidu.com/s/12k0inRNKl7v9pdgVux82Rw?pwd=m8qv 提取码: m8qv 

将openStack和coentOs7的镜像包上传至controller和compute

再root目录下点击上传

上传过程中我可以配置yum源

controller节点:

vi /etc/yum.repos.d/local.repo

创建两个文件夹

mkdir /opt/{centos,iaas}

将上传的镜像挂载

  • -o 为只读,loop以回环设备形式进行挂载,可查阅其中内容

  • 挂载物理光驱:直接使用 mount,无需 -o loop;

  • 挂载 ISO 文件:需 -o loop

cd /root
mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/
cp -rvf /mnt/* /opt/centos/
 umount /mnt/
mount -o loop chinaskills_cloud_iaas_v2.0.3.iso /mnt/
cp -rvf /mnt/* /opt/iaas/
 umount /mnt/

然后就可以删除这两个镜像了

rm -rf CentOS-7-x86_64-DVD-2009.iso
rm -rf chinaskills_cloud_iaas_v2.0.3.iso

检查是否加载完毕

yum repolist

大致这样表示成功

yum install vsftpd -y

修改vsftpd配置文件

vi /etc/vsftpd/vsftpd.conf

重启 vsftpd

systemctl restart vsftpd
systemctl enable vsftpd

安装iaas

yum install openstack-iaas -y

修改openrc.sh文件,想一下重复动作是否有快捷键,比如删除每行前面的#号,还有修改密码字段

vi /etc/openstack/openrc.sh

参考:

##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.187.10

##Controller HOST Password. example:000000 
HOST_PASS=luo123

##Controller Server hostname. example:controller
HOST_NAME=controller

##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.187.20

##Compute HOST Password. example:000000 
HOST_PASS_NODE=luo123

##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.0.0./16

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

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

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

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

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

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

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

##--------------------Placement Config----------------------##
##Password for Mysql placement user. exmaple:000000
PLACEMENT_DBPASS=luo123

##Password for Keystore placement user. exmaple:000000
PLACEMENT_PASS=luo123

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

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

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

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

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

##External Network Interface. example:eth1
INTERFACE_NAME=ens36

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

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

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

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

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

##Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb

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

##The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdc

##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.187.20

##--------------------Trove Config----------------------##
##Password for Mysql trove user. exmaple:000000
TROVE_DBPASS=luo123

##Password for Keystore trove user. exmaple:000000
TROVE_PASS=luo123

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

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

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

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

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

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

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

##Password for Keystore ZUN user. exmaple:000000
ZUN_PASS=luo123

##Password for Keystore KURYR user. exmaple:000000
KURYR_PASS=luo123

##--------------------OCTAVIA Config----------------##
##Password for Mysql OCTAVIA user. exmaple:000000
OCTAVIA_DBPASS=luo123

##Password for Keystore OCTAVIA user. exmaple:000000
OCTAVIA_PASS=luo123

##--------------------Manila Config----------------##
##Password for Mysql Manila user. exmaple:000000
MANILA_DBPASS=luo123

##Password for Keystore Manila user. exmaple:000000
MANILA_PASS=luo123

##The NODE Object Disk for Manila. example:md126p5.
SHARE_DISK=sdd

##--------------------Cloudkitty Config----------------##
##Password for Mysql Cloudkitty user. exmaple:000000
CLOUDKITTY_DBPASS=luo123

##Password for Keystore Cloudkitty user. exmaple:000000
CLOUDKITTY_PASS=luo123

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

##Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=luo123
################################################################
######在vi编辑器中执行:%s/^.\{1\}//  删除每行前1个字符(#号)#####
################################################################

将此文件拷贝一份至compute节点

scp /etc/openstack/openrc.sh root@192.168.187.20:/etc/openstack/

初始化

iaas-pre-host.sh

compute节点:

vi /etc/yum.repos.d/ftp.repo

检查compute节点是否生效

yum repolist

同controller安装iaas

yum install openstack-iaas -y

初始化

iaas-pre-host.sh

================================================

当controller节点和compute节点都初始化完成后,需要断开重连

重连后出现Welcome  to  OpenStack即初始化成功

安装mysql、keystone、glance、placement、nova、neutron

controller节点

iaas-install-mysql.sh
iaas-install-keystone.sh
iaas-install-glance.sh
iaas-install-placement.sh
iaas-install-nova-controller.sh
iaas-install-neutron-controller.sh
iaas-install-dashboard.sh

compute节点

iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh

===================================

以上脚本跑完后controller节点可见如下,即为成功

此时我们可以访问 http://192.168.187.10/dashboard

至此,简单的openstack环境已经搭建完成。

请各位道友务必手动搭建一次,或许里面有许多不懂,都可以借助ai问答;或许会遇到各种报错,这就考察你的细心程度了,如有问题欢迎下方留言,一起探讨。

最后,如果实在需要什么资源下不了的,留言私信我

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐