记录先电openstack私有云构建过程

文章目录

  • 1.实验环境搭建
  • 2.配置主机名和网络
    • 2.1 配置网络
    • 2.2 修改主机名
  • 3.yum源配置
    • 3.1 挂载CentOS-7.5-x86_64-DVD-1804.iso
    • 3.2 挂载chinaskills_cloud_iaas.iso
    • 3.3 清除缓存,验证yum源配置
  • 4.搭建ftp
    • 4.1 编辑vsftp配置文件,添加如下内容
    • 4.2 启动ftp服务,并设置开机自启动
  • 5 配置域名解析、关闭防火墙、永久关闭Selinux
    • 5.1 配置域名解析
    • 5.2 controller和compute都永久关闭防火墙以及Selinux
  • 6. 磁盘分区
  • 7.配置iaas环境变量
    • 7.1 controller和comput一样的做法
    • 7.2 编辑环境变量文档
  • 8.使用脚本部署openstack平台
    • 8.1 双节点执行iaas-pre-host.sh
    • 8.2 在controller节点上执行iaas-install-mysql.sh
    • 8.3 执行iaas-install-keystone脚本
    • 8.4 安装Glance服务
      • 上传镜像
    • 8.5 双节点执行脚本安装Nova服务
    • 8.6 双节点执行脚本安装Neutron服务
    • 8.7 controller端安装Dashboard服务
    • 8.8 通过脚本安装cinder服务以及swift服务

1.实验环境搭建

使用镜像:
CentOS-7.5-x86_64-DVD-1804.iso
chinaskills_cloud_iaas.iso
VM版本15.5
有需要实验镜像的小伙伴请私信

所有虚拟机CPU必须开启虚拟化功能:
记录先电openstack私有云构建过程_第1张图片

记录先电openstack私有云构建过程_第2张图片
记录先电openstack私有云构建过程_第3张图片
记录先电openstack私有云构建过程_第4张图片

2.配置主机名和网络

2.1 配置网络

#vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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=eth0
UUID=72c226b2-f8c0-4922-8349-67cb7b0758df
DEVICE=eth0
ONBOOT=yes
IPADDR=172.17.10.10/172.17.100.20(controller/compute)
PREFIX=24
GATEWAY=172.17.10.1
IPV6_PRIVACY=no

2.2 修改主机名

#hostnamectl set-hostname controller/compute
#bash
#hostnamectl  -----查看主机名服务相关信息

3.yum源配置

controller端:
[root@controller ~]# cd /etc/yum.repos.d/
[root@controller yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@controller yum.repos.d]# rm -rf *
[root@controller yum.repos.d]# ll
total 0
[root@controller yum.repos.d]# ls
[root@controller yum.repos.d]# vi file.repo
[root@controller yum.repos.d]# more file.repo
[centos]
name=centos
baseurl=file:///opt/centos/
gpgcheck=0
enabled=1
[iaas-repo]
name=iaas-repo
baseurl=file:///opt/openstack/iaas-repo/
gpgcheck=0
enabled=1
compute端:
[centos]
name=centos
baseurl=ftp://172.17.10.10/centos/
gpgcheck=0
enabled=1
[iaas-repo]
name=iaas-repo
baseurl=ftp://172.17.10.10/openstack/iaas-repo
gpgcheck=0
enabled=1

在controller节点上传CentOS-7.5-x86_64-DVD-1804.iso、chinaskills_cloud_iaas.iso两个镜像。(这里不做演示)
上传软件可用:WinSCP、Xftp、SecureFX

3.1 挂载CentOS-7.5-x86_64-DVD-1804.iso

[root@controller ~]# mount -o loop CentOS-7.5-x86_64-DVD-1804.iso /mnt/
[root@controller ~]# cp -rvf /mnt/* /opt/centos/
[root@controller ~]# umount /mnt/

3.2 挂载chinaskills_cloud_iaas.iso

[root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /mnt/
[root@controller ~]# cp -rvf /mnt/* /opt/openstack/
[root@controller ~]# umount /mnt/

3.3 清除缓存,验证yum源配置

[root@controller ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: centos iaas-repo
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 repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
centos                                                                                                                                                                                                               | 3.6 kB  00:00:00     
iaas-repo                                                                                                                                                                                                            | 2.9 kB  00:00:00     
(1/3): centos/group_gz                                                                                                                                                                                               | 166 kB  00:00:00     
(2/3): iaas-repo/primary_db                                                                                                                                                                                          | 1.4 MB  00:00:00     
(3/3): centos/primary_db                                                                                                                                                                                             | 3.1 MB  00:00:00     
repo id                                                                                                            repo name                                                                                                          status
centos                                                                                                             centos                                                                                                             3,971
iaas-repo                                                                                                          iaas-repo                                                                                                          3,232
repolist: 7,203

4.搭建ftp

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

4.1 编辑vsftp配置文件,添加如下内容

[root@controller ~]# vi /etc/vsftpd/vsftpd.conf 
anon_root=/opt/

4.2 启动ftp服务,并设置开机自启动

[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

5 配置域名解析、关闭防火墙、永久关闭Selinux

5.1 配置域名解析

[root@controller ~]# vi /etc/hosts
添加如下内容:
172.17.10.10 controller
172.17.10.20 compute
[root@controller ~]# scp /etc/hosts [email protected]:/etc/

5.2 controller和compute都永久关闭防火墙以及Selinux

[root@controller ~]# systemctl stop firewalld
[root@controller ~]# systemctl disable firewalld
[root@controller ~]# vi /etc/sysconfig/selinux 

记录先电openstack私有云构建过程_第5张图片
根据题目要求修改为Permissive或者disabled。

6. 磁盘分区

[root@compute ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  3.9G  0 part [SWAP]
└─sda3   8:3    0 45.1G  0 part /
sdb      8:16   0  100G  0 disk 
sdc      8:32   0  100G  0 disk 
sr0     11:0    1  4.2G  0 rom  
loop0    7:0    0  3.6G  0 loop /mnt
[root@compute ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart cinder 0 107GB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore                                                     
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name    Flags
 1      17.4kB  107GB  107GB               cinder

(parted) q                                                                
Information: You may need to update /etc/fstab.

[root@compute ~]# parted /dev/sdc
GNU Parted 3.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart swift 0 107GB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore                                                     
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name   Flags
 1      17.4kB  107GB  107GB               swift

(parted) q                                                                
Information: You may need to update /etc/fstab.
[root@compute ~]# mkfs.xfs /dev/sdb
mkfs.xfs: /dev/sdb appears to contain a partition table (gpt).
mkfs.xfs: Use the -f option to force overwrite.
[root@compute ~]# mkfs.xfs /dev/sdc
mkfs.xfs: /dev/sdc appears to contain a partition table (gpt).
mkfs.xfs: Use the -f option to force overwrite.
[root@compute ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  3.9G  0 part [SWAP]
└─sda3   8:3    0 45.1G  0 part /
sdb      8:16   0  100G  0 disk 
└─sdb1   8:17   0  100G  0 part 
sdc      8:32   0  100G  0 disk 
└─sdc1   8:33   0  100G  0 part 
sr0     11:0    1  4.2G  0 rom  
loop0    7:0    0  3.6G  0 loop /mnt
[root@compute ~]# fdisk -l
#         Start          End    Size  Type            Name
 1           34    209715166    100G  Microsoft basic swift
#         Start          End    Size  Type            Name
 1           34    209715166    100G  Microsoft basic cinder

7.配置iaas环境变量

7.1 controller和comput一样的做法

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

7.2 编辑环境变量文档

[root@controller ~]# vi /etc/xiandian/openrc.sh 
##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=172.17.10.10

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

##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=172.17.10.0/24

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

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

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

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

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

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

将openrc.sh拷贝到compute节点下

[root@controller ~]# scp /etc/xiandian/openrc.sh root@compute:/etc/xiandian/

修改INTERFACE_IP=为comput的地址

8.使用脚本部署openstack平台

8.1 双节点执行iaas-pre-host.sh

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

记录先电openstack私有云构建过程_第6张图片
执行完成后,reboot重启系统。

8.2 在controller节点上执行iaas-install-mysql.sh

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

记录先电openstack私有云构建过程_第7张图片

8.3 执行iaas-install-keystone脚本

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

记录先电openstack私有云构建过程_第8张图片

8.4 安装Glance服务

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

记录先电openstack私有云构建过程_第9张图片

上传镜像

[root@controller ~]# source admin-openrc.sh
[root@controller ~]# glance image-create --name "CentOS7.5" --disk-format qcow2  --container-format bare --progress <       /opt/openstack/images/CentOS_7.5_x86_64_XD.qcow2     

8.5 双节点执行脚本安装Nova服务

#Controller节点
执行脚本iaas-install-nova-controller.sh进行安装
#Compute节点
执行脚本iaas-install-nova-compute.sh进行安装

8.6 双节点执行脚本安装Neutron服务

#Controller节点
执行脚本iaas-install-neutron-controller.sh进行安装
#Compute节点
执行脚本iaas-install-neutron-compute.sh进行安装

8.7 controller端安装Dashboard服务

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

记录先电openstack私有云构建过程_第10张图片
安装完仪表盘服务后,我们可以移步到浏览器中去访问openstackweb端了

打开浏览器访问Dashboard
http://controller(或本机内网ip)/dashboard
注:检查防火墙规则,确保允许http服务相关端口通行,或者关闭防火墙。

记录先电openstack私有云构建过程_第11张图片

8.8 通过脚本安装cinder服务以及swift服务

#Controller
执行脚本iaas-install-cinder-controller.sh进行安装
#Compute节点
执行脚本iaas-install-cinder-compute.sh进行安装

#Controller
执行脚本iaas-install-swift-controller.sh进行安装
#Compute节点
执行脚本iaas-install-swift-compute.sh进行安装

记录先电openstack私有云构建过程_第12张图片
至此,openstack基础搭建已基本完成。

此片文章为本人自行搭建openstack记录过程,仅供参考。有问题的小伙伴可私信留言。

你可能感兴趣的:(openstack,yum,centos,iaas)