基于XianDian-IaaS,搭建Openstack私有云平台

目录

一、基础环境

二、系统配置

关闭防火墙

关闭NetworkManager服务

关闭selinux保护

配置网卡

配置域名解析

 配置网卡

三、 配置Yum源

四、划分分区

五、 Openstack云平台部署

1、配置环境变量

2、部署Openstack云平台基础环境

3、部署Mariadb数据库及Rabbit消息队列服务

4、部署keystone服务

5、部署Glance服务

6、部署Nova服务

7、部署Neutron服务

8、部署Dashboard服务

9、部署Cinder服务

10、部署Swift服务

11、登录云平台


 一、基础环境

controller:8G、4cpus、100G磁盘

compute:8G、4cpus、100G磁盘、20G磁盘

镜像文件:

CentOS-7-x86_64-DVD-2009

链接: 百度网盘 请输入提取码   提取码: 9482 

XianDian-IaaS-v2.2.iso
链接: https://pan.baidu.com/s/1NHqZzSQE8h6UZ46dBUD2gw  提取码: 6a5m

主机名网卡类型IP地址
controllerNATdhcp
controller仅主机192.32.10.10
computeNATdhcp
compute仅主机192.32.10.20

二、系统配置

controller节点

  • 关闭防火墙

[root@controller ~]# systemctl stop firewalld.service
[root@controller ~]# systemctl disable firewalld.service
[root@controller ~]# systemctl status firewalld.service
  • 关闭NetworkManager服务

[root@controller ~]# systemctl stop NetworkManager
[root@controller ~]# systemctl disable NetworkManager
[root@controller ~]# systemctl status NetworkManager
  • 关闭selinux保护

[root@controller ~]# vi /etc/selinux/config
SELINUX=disabled
  • 配置网卡

## NAT网卡
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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"
DEVICE="ens33"
ONBOOT="yes"


## 仅主机网卡
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.32.10.10
NETMASK=255.255.255.0
GATEWAY=192.32.10.2
DNS1=8.8.8.8
NAME=ens34
DEVICE=ens34
ONBOOT=yes


## 重启网络,是网卡配置生效
[root@controller ~]# systemctl restart network
  • 配置域名解析

[root@controller ~]# echo '192.32.10.10 controller' >> /etc/hosts
[root@controller ~]# echo '192.32.10.20 compute' >> /etc/hosts
[root@controller ~]# cat /etc/hosts
192.32.10.10 controller
192.32.10.20 compute

 上述配置完成后,可进行拍摄快照、关机,克隆出compute节点

compute节点

  •  配置网卡

## NAT网卡
[root@cmpute ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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"
DEVICE="ens33"
ONBOOT="yes"


## 仅主机网卡
[root@cmpute ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.32.10.20
NETMASK=255.255.255.0
GATEWAY=192.32.10.2
DNS1=8.8.8.8
NAME=ens34
DEVICE=ens34
ONBOOT=yes

三、 配置Yum源

 controller节点

[root@controller ~]# ls
anaconda-ks.cfg  XianDian-IaaS-v2.2.iso
# 在/opt目录下创建两个子目录,花括号 `{}` 是 Bash 的扩展语法,允许一次性创建多个目录。
[root@controller ~]# mkdir /opt/{centos,xiandian}
[root@controller ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
# 将ISO镜像中的所有文件提取到指定的目录
[root@controller ~]# cp -rvf /mnt/* /opt/centos/
[root@controller ~]# umount /mnt/

-o 为只读,loop以回环设备形式进行挂载,可查阅其中内容
挂载物理光驱:直接使用 mount,无需 -o loop;
挂载 ISO 文件:需 -o loop。

[root@controller ~]#  mount -o loop ./XianDian-IaaS-v2.2.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/xiandian
[root@controller ~]# umount /mnt/

[root@controller ~]# rm -f /etc/yum.repos.d/* 
# 配置controller节点Yum安装源文件local.repo,指向本地文件目录路径。
[root@controller ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos7-2009
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[openstack]
name=openstack-train
baseurl=file:///opt/xiandian/iaas-repo
gpgcheck=0
enabled=1

[root@controller ~]# yum clean all && yum repolist
已加载插件:fastestmirror, langpacks
正在清理软件源: centos openstack
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
centos                                                                   | 3.6 kB  00:00:00
openstack                                                                | 2.9 kB  00:00:00
(1/3): centos/group_gz                                                   | 153 kB  00:00:00
(2/3): openstack/primary_db                                              | 2.3 MB  00:00:00
(3/3): centos/primary_db                                                 | 3.3 MB  00:00:00
源标识                                    源名称                                           状态
centos                                    centos7-2009                                     4,070
openstack                                 openstack-train                                  1,688
repolist: 5,758

# 在controller节点使用Yum安装vsftpd服务,并将/opt目录下的文件共享出去。
[root@controller ~]# yum install -y vsftpd
Installed:
  vsftpd.x86_64 0:3.0.2-28.el7                                                  
Complete!
# 添加匿名访问用户
[root@controller ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd

 compute节点

# 配置compute节点Yum安装源文件local.repo,指向controller节点的共享文件目录路径。

[root@compute ~]# rm -f /etc/yum.repos.d/* 
[root@compute ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos7-2009
baseurl=ftp://controller/centos
gpgcheck=0
enabled=1
[openstack]
name=openstack-train
baseurl=ftp://controller/xiandian/iaas-repo
gpgcheck=0
enabled=1

[root@compute ~]# yum clean all && yum repolist
已加载插件:fastestmirror, langpacks
正在清理软件源: centos openstack
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
centos                                                                   | 3.6 kB  00:00:00
openstack                                                                | 2.9 kB  00:00:00
(1/3): centos/group_gz                                                   | 153 kB  00:00:00
(2/3): openstack/primary_db                                              | 2.3 MB  00:00:00
(3/3): centos/primary_db                                                 | 3.3 MB  00:00:00
源标识                                    源名称                                           状态
centos                                    centos7-2009                                     4,070
openstack                                 openstack-train                                  1,688
repolist: 5,758

四、划分分区

compute节点

# 需要给cinder、swift服务各提供一块空白分区

[root@compute ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda    253:0    0  40G  0 disk
└─sda1 253:1    0  40G  0 part /
sdb    253:16   0  20G  0 disk
sdc    253:32   0   1M  0 disk


# 对/dev/sdb进行分区
[root@compute ~]# fdisk /dev/sdb
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.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x76420c3e.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2):
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039):
Using default value 41943039
Partition 2 of type Linux and of size 10 GiB is set

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x76420c3e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    41943039    10484736   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@compute ~]# partprobe /dev/sdb
[root@compute ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  7.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 41.1G  0 lvm  /home
sdb               8:16   0   20G  0 disk
├─sdb1            8:17   0   10G  0 part
└─sdb2            8:18   0   10G  0 part
sr0              11:0    1  4.4G  0 rom



# 更新/dev/sdb分区
[root@compute ~]# partprobe /dev/sdb

[root@compute ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  7.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 41.1G  0 lvm  /home
sdb               8:16   0   20G  0 disk
├─sdb1            8:17   0   10G  0 part
└─sdb2            8:18   0   10G  0 part
sr0              11:0    1  4.4G  0 rom



# 格式化分区
[root@compute ~]# mkfs.xfs /dev/sdb1
[root@compute ~]# mkfs.xfs /dev/sdb2

五、 Openstack云平台部署

controller节点执行脚本的顺序:

mysql组件 -- keystone组件 -- glance组件 -- nova-controller组件 -- neutron-controller组件 -- dashboard组件 -- cinder-controller组件 -- swift-controller组件

compute节点执行脚本的顺序

nova-compute组件 -- neutron-compute组件 -- cinder-compute组件 -- swift-compute组件

跑完controller节点,再跑compute节点!!!

 1、配置环境变量

controller节点

compute节点​

# 安装OpenStack云平台的安装脚本软件包
[root@controller ~]# yum install -y iaas-xiandian.x86_64
[root@compute ~]# yum install -y iaas-xiandian.x86_64

# 修改环境变量
[root@controller ~]# vi /etc/xiandian/openrc.sh
# 删除每行前1个字符,再按ESC键输入:wq保存退出
:%s/^.\{1\}//
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.32.10.10

#Controller Server hostname. example:controller
HOST_NAME=controller

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

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute

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

#External Network Interface. example:eth1
INTERFACE_NAME=ens32

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

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

#--------------------Trove Config--------------------##
#Password for Mysql Trove User. exmaple:000000
TROVE_DBPASS=000000

#Password for Keystore Trove User. exmaple:000000
TROVE_PASS=000000

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

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

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

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

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

#--------------------Ceilometer Config----------------##
#Password for Mysql 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



# 将文件传给计算节点
[root@controller ~]# scp /etc/xiandian/openrc.sh root@compute:/etc/xiandian/openrc.sh
The authenticity of host 'compute (192.32.10.20)' can't be established.
ECDSA key fingerprint is SHA256:DcE7rcy2/VA+I7m83zpxseEvLgHKaojCgcENJHUoSc4.
ECDSA key fingerprint is MD5:3c:29:50:f7:d8:b0:a7:57:7f:a9:3a:9a:d3:2b:e2:0b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'compute,192.32.10.20' (ECDSA) to the list of known hosts.
root@compute's password:
openrc.sh                                                     100% 3042     1.4MB/s   00:00

 2、部署Openstack云平台基础环境

controller节点

compute节点​

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

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

 3、部署Mariadb数据库及Rabbit消息队列服务

 controller节点

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

 4、部署keystone服务

 controller节点

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

5、部署Glance服务

 controller节点

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

6、部署Nova服务

 controller节点

 compute节点

[root@controller ~]# iaas-install-nova-controller.sh
# 执行完上面的脚本后,在compute节点执行脚本部署Nova组件的计算服务,这样就将compute节点的CPU、内存及磁盘资源添加到OpenStack云平台的资源池中了。
[root@compute ~]# iaas-install-nova-compute.sh

7、部署Neutron服务

 controller节点

 compute节点

root@controller ~]# sudo yum -y downgrade libxslt.x86_64
[root@controller ~]# iaas-install-neutron-controller.sh
[root@compute ~]# sudo yum -y downgrade libxslt.x86_64
[root@compute ~]# iaas-install-neutron-compute.sh

8、部署Dashboard服务

controller节点

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

 9、部署Cinder服务

controller节点

compute节点

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

10、部署Swift服务

controller节点

compute节点

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

 11、登录云平台

地址:http://192.32.10.10/dashboard
域:demo  用户名:admin  密码:000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@t.t.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值