Iaas私有云平台搭建(Openstack)

准备工作:两台CentOS7以上的虚拟机,(CentOS7之前的有许多命令不同)做好资源的分配;

                  准备镜像两块,CentOS7以上的一块、Iaas服务的基础镜像一块。(这Iaas平台的镜

                  像是先电下的一个)

控制节点和计算节点资源配置
节点名称 第一张网卡(有网关,外网用) 第二张网卡(无网关,内网用)
控制节点 controller 192.168.137.27/24 192.168.200.27/24
计算节点 compute 192.168.137.37/24 192.168.200.37/24

创建虚拟机,内存给4g,处理器数量2个、内核2个,勾选上虚拟化引擎,如图:

Iaas私有云平台搭建(Openstack)_第1张图片

 要有两张网卡,我用的镜像是7.5-1804的那块,镜像官网下载

Iaas私有云平台搭建(Openstack)_第2张图片

 我们先创建一个虚拟机,后面一台直接复制这台,这样更省时间。

开启虚拟机,等待安装,语言根据爱好自选,下面有汉语,最小化安装,给硬盘配置,自己分配,别让系统去干(磁盘空间够的话,资源什么的可以往大了分配,我这磁盘空间不够就将就一下了)。如下:

Iaas私有云平台搭建(Openstack)_第3张图片

 等待它安装好哈······

网卡的话两张是NAT也行的,第一张的话有网关就行用做openstack里面实例的外网,第二张就当做内网用。

root登录,输入密码,进入网络配置文件(#符号后面跟着的是注释哈,不要写进去,我写是为了解释一下这些东西的):

cd /etc/sysconfig/network-scripts/

###编辑第一张网卡
vi ifcfg-ens33

###英文状态下按i键是进入输入模式,输好后按esc键退出输入模式,“:wq”是保存文档,“:q!”强制退出

###内容,写完后记得保存下来


TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static                    #网卡状态,系统默认为DHCP分发IP模式,static为静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=51e4cbf2-1a7d-4c25-8d90-253c1d195ce4
DEVICE=ens33                        #网卡设备名称
ONBOOT=yes                          #开机是否生效,系统默认为no,我们需要改为yes
IPADDR=192.168.137.27               #IP
GATEWAY=192.168.137.2               #网关,OpenStack默认可不加
NETMASK=255.255.255.0               #子网掩码,同PREFIX=24等效果




###编辑第二张网卡
vi ifcfg-ens34


TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=6f6722fb-87b8-4c51-a13f-fe1c67f90b51
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.200.27
NETMASK=255.255.255.0





Iaas私有云平台搭建(Openstack)_第4张图片

 配置好网络后,重新启动网络,才能用连接工具连接上:

systemctl restart network        #重新启动网络



ip a                            #可以看到网络的配置信息

网络的信息如下:Iaas私有云平台搭建(Openstack)_第5张图片

 做好这些配置后,直接关机,最好就做一个快照哈,以备出错的可能,我就错了很多次了。

Iaas私有云平台搭建(Openstack)_第6张图片

 后面我们就做另外一台了,直接复制(克隆)前面的那一台。

Iaas私有云平台搭建(Openstack)_第7张图片

 Iaas私有云平台搭建(Openstack)_第8张图片

Iaas私有云平台搭建(Openstack)_第9张图片

Iaas私有云平台搭建(Openstack)_第10张图片

Iaas私有云平台搭建(Openstack)_第11张图片

 红色的地方要特别注意哈,这样才是完整的将前面做好配置的虚拟机完全复制出来。

开启复制的那台,修改ip,同前面的操作,只要改动ip就好。

Iaas私有云平台搭建(Openstack)_第12张图片

最后我们就有两台虚拟机。

给虚拟机该主机名:

####计算节点主机名称,改完退出控制台,重新连接
hostnamectl set-hostname compute

logout


####控制节点主机名称,改完退出控制台,重新连接
hostnamectl set-hostname controller

logout

最后改完后如图:Iaas私有云平台搭建(Openstack)_第13张图片

 再而就是给控制节点做磁盘分区了:

lsblk        #查看磁盘的信息



fdisk /dev/sda        #磁盘分区


fdisk /dev/sda
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): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition                                 #删除一个分区
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition                                #增加一个分区
   o   create a new empty DOS partition table
   p   print the partition table                          #打印磁盘分区情况表
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)




#按n增加分区,让它分区号默认,一直回车,到了Last结束时,写入要给分区空间的大小
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): 
Using default response e
Selected partition 4
First sector (73154560-125829119, default 73154560): 
Using default value 73154560
Last sector, +sectors or +size{K,M,G} (73154560-125829119, default 125829119): +10G


#按p可以查看分好后的结果

Command (m for help): p

Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00094d79

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    52183039    25041920   8e  Linux LVM
/dev/sda3        52183040    73154559    10485760   83  Linux
/dev/sda4        73154560    94126079    10485760    5  Extended


#按w,最后就是保存磁盘分区信息,将分区的信息写入


#reboot重启后才能看到最后修改的信息

Iaas私有云平台搭建(Openstack)_第14张图片

 我这就只有sda一块,就只针对它了,做好分区后,重启,最终是多出sda3、sda4两个分区,一个有10G、另外一个1k(我也不晓得它为什么变成1k了,刚才写分区信息时都给了10G):

Iaas私有云平台搭建(Openstack)_第15张图片

 写两台虚拟机之间的映射关系:

vi /etc/hosts


#内容,只加ip和主机名。(两台做一样的映射关系)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.27 controller                #文件加控制节点IP和主机名
192.168.137.37 compute                   #文件加计算节点IP和主机名

另外一台可以用远程复制:

#scp远程安全复制命令
#root@ip:要复制的文件路径    复制到当前计算机的路径

scp [email protected]:/etc/hosts /etc/

yes    #允许
       #要输入远程复制主机的root登录密码

Iaas私有云平台搭建(Openstack)_第16张图片

 计算节点的配置做好了一半,回到给控制节点来:

给控制节点上传镜像,要挂载用的CentOS-7-x86_64-DVD-2009.iso和chinaskills_cloud_iaas.iso两块文件,再去创建两个挂载目录:

mkdir /opt/centos        #在opt目录下创建了centos目录,用来挂载Centos...那块


mkdir /opt/iaas          #在opt目录下创建了iaas目录,用来挂载Iaas服务镜像的那块

Iaas私有云平台搭建(Openstack)_第17张图片

挂载镜像:

#将镜像(镜像所在路径)挂载在/opt/centos/目录下
mount CentOS-7-x86_64-DVD-2009.iso /opt/centos/


#将镜像(镜像所在路径)挂载在/opt/iaas/目录下
mount chinaskills_cloud_iaas.iso /opt/iaas/

结果:

Iaas私有云平台搭建(Openstack)_第18张图片

 这样的挂载方式每次开机重启,它镜像都会被系统卸载下来,所以我要给它永久挂载在目录上,一直使用:

####编辑系统挂载文件
vi /etc/fstab


####文件里面的内容增加
/root/CentOS-7-x86_64-DVD-2009.iso /opt/centos iso9660 defaults 0 0
/root/chinaskills_cloud_iaas.iso /opt/iaas     iso9660 defaults 0 0

 Iaas私有云平台搭建(Openstack)_第19张图片

挂载好镜像后,开始配置本地yum源,要先把原有的那些repo文件删掉,我们自己配置自己写一个。控制节点如下:

###查看系统自带的哪些repo文件
 ll /etc/yum.repos.d/


###删掉它目录下的所有(*代表所有)
 rm -rf /etc/yum.repos.d/*

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

[centos]
name=centos
baseurl=file:///opt/centos             ##centos系统yum来源的基础路径
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo     ##iaas服务,这里写的是挂载下iaas目录下的另一个路径            
gpgcheck=0
enabled=1

清空yum缓存,生成yum缓存,查看yum是否生效:

命令:
###清空yum缓存
yum clean all

###生成yum缓存
yum makecache

###查看yum是否生效
yum list

Iaas私有云平台搭建(Openstack)_第20张图片

控制节点安装vsftpd(ftp工具),指定vsftpd 路径,如下:

###本地用yum安装服务,install后接服务名
yum -y install vsftpd


###配置vsftpd服务的共享文件
vi /etc/vsftpd/vsftpd.conf 


###头顶加上要共享的目录,由于该服务是给计算节点提供源,所以要将之前镜像挂载的目录共享给出去
anon_root=/opt

####保存退出



#####查看目录下文件的头几行(-n n是几就显示出几行来)
head -1 /etc/vsftpd/vsftpd.conf




 

 设置临时防火墙规则,重启vsftpd服务及设置开机自启动:

###控制节点重启vsftpd
systemctl restart vsftpd

###控制节点设置开机生效规则
systemctl enable vsftpd

###控制、计算节点设置selinux规则
setenforce 0

###查看selinux规则
getenforce

###控制、计算节点关闭防火墙
systemctl stop firewalld


###计算节点测试访问控制节点资源
curl ftp://192.168.137.27


结果运行图:

Iaas私有云平台搭建(Openstack)_第21张图片

 将控制节点的/etc/vsftpd/vsftpd.conf 复制到计算节点上,更改baseurl的路径就行:

###远程复制命令
scp [email protected]:/etc/yum.repos.d/local.repo /etc/yum.repos.d/


###修改内容,计算节点/etc/yum.repos.d/local.repo内容为
[centos]
name=centos
baseurl=ftp://192.168.137.27/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.137.27/iaas/iaas-repo
gpgcheck=0
enabled=1




###/etc/yum.repos.d/下面不止一份repo文件,其它C开头的都是系统自带的,删了就行
rm -rf /etc/yum.repos.d/CentOS-*

结果:

Iaas私有云平台搭建(Openstack)_第22张图片

 基本上都准备好了,可以安装iaas的服务了。

查找iaas-的服务:

 yum list | grep iaas-

Iaas私有云平台搭建(Openstack)_第23张图片

 安装iaas服务:

yum -y install iaas-xiandian.x86_64

安装好后,就给iaas服务配置文件了/etc/xiandian/openrc.sh:

####批量删除注释符,也就是#号,在查看状态下::%s/^#//g
####:(英文下冒号)%(表示全文)s(是替换功能)^(以什么开头)#(#字符开头)/(控格)/g(确认替换了)
####整体就是全文将以#字符开头的替换成空格
####同样的可以:%s/PASS=/PASS=000000/g
####整体就是全文将以PASS=字符的替换成PASS=000000

####内容


#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.137.27                         #控制节点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.137.37                    #计算节点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.137.0/24            #同步时间的服务器IP与掩码

#--------------------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.137.27            #填本机IP(计算节点就填计算的IP)

#External Network Interface. example:eth1
INTERFACE_NAME=ens34                   #第二张网卡名称

#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=sda3

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

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

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.137.37                    #计算节点的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

将文件复制去计算节点里,在计算节点的文件就只需要改:

INTERFACE_IP=192.168.137.37            #填本机IP(计算节点就填计算的IP)

保存退出,就可以刷脚本了,脚本有人写好了,我们就直接用就好了,控制、计算节点都安装基础服务:

 iaas-pre-host.sh
安装完成后可重启服务器,建议重启

刷完后是:

Iaas私有云平台搭建(Openstack)_第24张图片

 控制节点安装MySQL(数据库服务),keystone(认证服务),glance(镜像服务),dashboard(实现数据可视化服务),neutron(网络服务),nova(计算服务),cinder(块存储服务),swift(对象存储服务):

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

计算节点:

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

登录dashboard

浏览器访问,192.168.137.27/dashboard

域控写demo

用户名admin

密码000000

结果:

Iaas私有云平台搭建(Openstack)_第25张图片

Iaas私有云平台搭建(Openstack)_第26张图片

 

你可能感兴趣的:(openstack)