> 技术文档 > openstack云平台部署(详细+图文+bilibili视频)_openstack云平台搭建

openstack云平台部署(详细+图文+bilibili视频)_openstack云平台搭建


一.准备工作

bilibili视频教学

openstack云平台搭建部署(内附有CSDN文章,并有关键内容讲解)

云平台需要两个节点,一个controller(控制节点),一个compute(计算节点)环境要求:VM虚拟机2台,镜像为centos7或7.5。

本指南使用的ip

控制节点(controller):

一块100G的硬盘。两块网卡,两块网卡第一块网卡IP地址为192.168.100.10,第二块网卡IP地址为192.168.200.10。(编辑时用的是60G硬盘)

计算节点(compute):

一块100G硬盘和一块50G硬盘。两块网卡第一块网卡IP地址为192.168.100.20,第二块网卡IP地址为192.168.200.20。(编辑时用的60G+20G两块硬盘)

本指南运用的镜像

1.通过百度网盘分享的文件:CentOS-7-x86_64-DVD-2009.iso
链接:https://pan.baidu.com/s/1VqYqutsstDwdt7w8g4tjjg 
提取码:dy7c 
2.通过百度网盘分享的文件:CentOS-7.5-x86_64-DVD-1804.iso
链接:https://pan.baidu.com/s/1pzt1_iZ0Lph69Llvo_2ILQ 
提取码:37ss 
3.通过百度网盘分享的文件:chinaskills_cloud_iaas.iso
链接:https://pan.baidu.com/s/1EDlE-9bH83yGmvQtifLlvw 
提取码:2e16 

二.配置虚拟机

1.controller控制节点

848a2d6f4e884f7595ff920b0d63d714.png

7562acf8cb51405ab0bd88bd0fcafc64.png

e7ac04e50109495db03a0f8575962d06.png

152f88db7b914994a3a63e66ebd23c66.png

1c30d90fa6db4798a88766c329b86c22.png

cb3d14b283ad4557af29bfa44af5a216.png

287e5a44b20649b8b1ae22d47b1fd351.png

7bf3b0b937b24f76aed31da67a7192ab.png

0026788d8b224e2097f9ee391820eaa1.png

a4d517bd86df41739c64a04822980eb2.png

1975da41d9b24062bd3f55a1c3c8a658.png

f4aefdac756d42be96153541ff1863c1.png

cb4df927229f407c8b9ca49351efbc50.png

注:以下步骤是为了把ens3*网卡更改为eth*网卡

92447234f996461881335cfb3bc5885b.png

23016bc3f35d472ea8502ce825e8f0f7.png

c82ba128d1dd45bb8017028a1e75b6a9.png

20959b0f16e348c78ecc944253b59871.png

a9599b075ec141228be34845093ad9a9.png

ff97ca87a13b42ea83ce0173f39d6c94.png

重启后使用root登录,修改主机名,网卡

1.修改controller(控制节点)主机名

6d935000bad249b1ab4b901caea1c0db.png

2.1修改第一块网卡

5b3da5e81fd547fdafb980eba7f28979.png

4dc6f4dd82c34af491d3b6ca650c5c34.png

按insert进入编辑模式,编辑完后esc加冒号wq保存退出

2.2修改第二块网卡

5d2b0b37fc514b72b4954a09cfee7da6.png

d9a9583629ae4094aeeca9da5483d009.png

重启网卡,使网卡生效

b73d60f3227c4724b62b8da24f3b533e.png

ip a查看一下是不是改好了

9d45e521319b42af9d2febba5cbff6a7.png

使用finalshell连接controller(为了更好的使用)

61e58a0223b349418cb324e509eb4bd9.png

f60f11fa96134f1385e47172717153c4.png

2.compute节点

d87cef99a599489f91b23891f6a55b85.png

a36aaeedfc4b4a69876791de3504016c.png

67a53bb24ec6455a8cc4afe9054263dc.png

第一块网卡配置如下:

c82e08dcdedf49548030116cc9a28912.png

第二块网卡配置如下:

28bf353037fc48c88ece47d339a18c65.png

重启网卡使配置生效

0b33d647d8b545a98f3fa6ad51b0c32b.png

0ea0401b94ba4ed5ac6456118ca79598.png

注意:compute节点也需要连接finalshell

三.正式开始搭建openstack云平台

controller节点配置:

1.上传centos7镜像和iaas镜像

2f83e34dbee0471baab679d19a8399d4.png

d30cab1054ae41068058984ae6bffa63.png

上传成功!

2.关闭防火墙和selinux

systemctl stop firewalld #关闭防火墙systemctl disable firewalld #防火墙开机不自启动setenforce 0 #临时关闭selinux防火墙,1为打开getenforce #查看selinux状态

更改selinux配置文件,非临时性关闭

vi /etc/selinux/config

d1243aed74c244a1a2373fa8af575954.png

3.挂载镜像

[root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/mount: /dev/loop0 写保护,将以只读方式挂载[root@controller ~]# mkdir /opt/centos[root@controller ~]# mkdir /opt/openstack[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/openstack[root@controller ~]# umount /mnt/

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=centosbaseurl=file:///opt/centosgpgcheck=0enabled=1[iaas]name=iaasbaseurl=file:///opt/openstack/iaas-repogpgcheck=0enabled=1

清理yum缓存,验证yum源是否成功,下载所需软件包

[root@controller yum.repos.d]# yum clean all #清除yum源缓存已加载插件:fastestmirror正在清理软件源: centos iaasCleaning up everythingMaybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed reposCleaning up list of fastest mirrors[root@controller yum.repos.d]# yum repolist #列出所有可用的yum源已加载插件:fastestmirrorDetermining fastest mirrorscentos | 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,971iaas iaas 3,232repolist: 7,203[root@controller yum.repos.d]# yum install -y vim vsftpd iaas-xiandian #安装所需的软件包

5.配置vsftpd

vi /etc/vsftpd/vsftpd.conf

 68cea326789642689acf320a991595a1.png

[root@controller yum.repos.d]# systemctl restart vsftpd #重启ftp服务[root@controller yum.repos.d]# systemctl enable vsftpd #设置ftp服务开机自启

 6.修改脚本

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

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

#--------------------system Config--------------------###Controller Server Manager IP. example:x.x.x.xHOST_IP=192.168.100.10 #controller节点的IP地址#Controller HOST Password. example:000000 HOST_PASS=000000#Controller Server hostname. example:controllerHOST_NAME=controller#Compute Node Manager IP. example:x.x.x.xHOST_IP_NODE=192.168.100.20 #compute节点的IP地址#Compute HOST Password. example:000000 HOST_PASS_NODE=000000#Compute Node hostname. example:computeHOST_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:openstackRABBIT_USER=openstack#Password for rabbit user .example:000000RABBIT_PASS=000000#--------------------MySQL Config---------------------###Password for MySQL root user . exmaple:000000DB_PASS=000000#--------------------Keystone Config------------------###Password for Keystore admin user. exmaple:000000DOMAIN_NAME=demo ADMIN_PASS=000000DEMO_PASS=000000#Password for Mysql keystore user. exmaple:000000KEYSTONE_DBPASS=000000#--------------------Glance Config--------------------###Password for Mysql glance user. exmaple:000000GLANCE_DBPASS=000000#Password for Keystore glance user. exmaple:000000GLANCE_PASS=000000#--------------------Nova Config----------------------###Password for Mysql nova user. exmaple:000000NOVA_DBPASS=000000#Password for Keystore nova user. exmaple:000000NOVA_PASS=000000#--------------------Neturon Config-------------------###Password for Mysql neutron user. exmaple:000000NEUTRON_DBPASS=000000#Password for Keystore neutron user. exmaple:000000NEUTRON_PASS=000000#metadata secret for neutron. exmaple:000000METADATA_SECRET=000000#Tunnel Network Interface. example:x.x.x.xINTERFACE_IP=192.168.100.10 #本机IP地址#External Network Interface. example:eth1INTERFACE_NAME=eth1#External Network The Physical Adapter. example:providerPhysical_NAME=provider#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101minvlan=101#Last Vlan ID in VLAN RANGE for VLAN Network. example:200maxvlan=200#--------------------Cinder Config--------------------###Password for Mysql cinder user. exmaple:000000CINDER_DBPASS=000000#Password for Keystore cinder user. exmaple:000000CINDER_PASS=000000#Cinder Block Disk. example:md126p3BLOCK_DISK=sdb1 #compute节点的存储块#--------------------Swift Config---------------------###Password for Keystore swift user. exmaple:000000SWIFT_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:000000HEAT_DBPASS=000000#Password for Keystore heat user. exmaple:000000HEAT_PASS=000000#--------------------Zun Config-----------------------###Password for Mysql Zun user. exmaple:000000ZUN_DBPASS=000000#Password for Keystore Zun user. exmaple:000000ZUN_PASS=000000#Password for Mysql Kuryr user. exmaple:000000KURYR_DBPASS=000000#Password for Keystore Kuryr user. exmaple:000000KURYR_PASS=000000#--------------------Ceilometer Config----------------###Password for Gnocchi ceilometer user. exmaple:000000CEILOMETER_DBPASS=000000#Password for Keystore ceilometer user. exmaple:000000CEILOMETER_PASS=000000#--------------------AODH Config----------------###Password for Mysql AODH user. exmaple:000000AODH_DBPASS=000000#Password for Keystore AODH user. exmaple:000000AODH_PASS=000000#--------------------Barbican Config----------------###Password for Mysql Barbican user. exmaple:000000BARBICAN_DBPASS=000000#Password for Keystore Barbican user. exmaple:000000BARBICAN_PASS=000000

compute节点设置

1.关闭防火墙和selinux

[root@compute ~]# systemctl stop firewalld[root@compute ~]# systemctl disable firewalld[root@compute ~]# setenforce 0

更改selinux配置文件,非临时性关闭

vi /etc/selinux/config

226c3d48fb4f4e429dfce4527d1d1bdd.png

2.硬盘分区

[root@compute ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0x34bc5373 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): Using default response p分区号 (1-4,默认 1):起始 扇区 (2048-209715199,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):+10G分区 1 已设置为 Linux 类型,大小设为 10 GiB命令(输入 m 获取帮助):nPartition type: p primary (1 primary, 0 extended, 3 free) e extendedSelect (default p): Using default response p分区号 (2-4,默认 2):起始 扇区 (52430848-209715199,默认为 52430848):将使用默认值 52430848Last 扇区, +扇区 or +size{K,M,G} (52430848-209715199,默认为 209715199):+5G分区 2 已设置为 Linux 类型,大小设为 5 GiB命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[root@compute ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda  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 /homesdb  8:16 0 100G 0 disk ├─sdb1 8:17 0 10G 0 part └─sdb2 8:18 0 5G 0 part sr0  11:0 1 4.2G 0 rom 

3.yum文件处理

移除源yum源

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

写入yum文件

[root@compute yum.repos.d]# vi local.repo[centos]name=centosbaseurl=ftp://192.168.100.10/centosgpgcheck=0enabled=1[iaas]name=iaasbaseurl=ftp://192.168.100.10/openstack/iaas-repogpgcheck=0enabled=1

清理yum缓存,验证yum是否可以用,下载所需软件包

[root@compute yum.repos.d]# yum clean all已加载插件:fastestmirror正在清理软件源: centos iaasCleaning up everythingMaybe 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已加载插件:fastestmirrorDetermining fastest mirrorscentos | 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,971iaas iaas 3,232repolist: 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)? yesWarning: 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 

修改openrc.sh脚本中本机Ip地址

c111fabc973142d0842734f9645aa2f5.png

四.刷脚本

注:刷脚本前可以快照

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

看到此类问题可以删除yum里除local.repo多余文件

9e8718680504448592892fa4de7a3bac.png

直到出现以下(一定是这张图片,要全部安装成功,如果是上面报Yum错误,删除完多余的再刷一遍iaas-pre-host.sh脚本,直到出现完毕!):

98c04b4300334896996553577375bf4a.png

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

3f3319b60a2d41008dd596c787803d62.png

出现以下图即为成功(用户名:admin  密码:000000)

321d816e69bc493d9540b3e76b69b30f.png