基于chinaskills_cloud_iaas,搭建Openstack私有云平台
使用chinaskills_cloud_iaas_v2.0.3脚本文件部署搭建openstack私有云平台
一、基础环境
controller:8G、4cpus、100G磁盘
compute:8G、4cpus、100G磁盘、20G磁盘
镜像文件:
CentOS-7-x86_64-DVD-2009
链接: https://pan.baidu.com/s/14zfhCHgXQcrXM8bFPc96pA 提取码: 9482
chinaskills_cloud_iaas_v2.0.3
链接: https://pan.baidu.com/s/1ajHVabsfg7KIpBrLzNo4QQ 提取码: qkf5
主机名 | 网卡类型 | IP地址 |
controller | NAT | 192.168.220.10 |
controller | 仅主机 | 192.168.110.10 |
compute | NAT | 192.168.220.20 |
compute | 仅主机 | 192.168.110.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 network-scripts]# vi ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.220.10"
PREFIX="24"
GATEWAY="192.168.220.2"
DNS1="114.114.114.114"
## 仅主机网卡
[root@controller network-scripts]# vi ifcfg-ens34
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens34"
DEVICE="ens34"
ONBOOT="yes"
IPADDR="192.168.110.10"
PREFIX="24"
## 重启网络,是网卡配置生效
[root@controller network-scripts]# systemctl restart network
-
配置域名解析
[root@controller ~]# echo '192.168.110.10 controller' >> /etc/hosts
[root@controller ~]# echo '192.168.110.20 compute' >> /etc/hosts
[root@controller ~]# cat /etc/hosts
192.168.110.10 controller
192.168.110.20 compute
上述配置完成后,可进行拍摄快照、关机,克隆出compute节点
compute节点
-
配置网卡
## NAT网卡
[root@compute network-scripts]# vi ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.220.20"
PREFIX="24"
GATEWAY="192.168.220.2"
DNS1="114.114.114.114"
## 仅主机网卡
[root@compute network-scripts]# vi ifcfg-ens34
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens34"
DEVICE="ens34"
ONBOOT="yes"
IPADDR="192.168.110.20"
PREFIX="24"
三、 配置Yum源
controller节点
[root@controller ~]# ls
anaconda-ks.cfg chinaskills_cloud_iaas_v2.0.3.iso
# 在/opt目录下创建两个子目录,花括号 `{}` 是 Bash 的扩展语法,允许一次性创建多个目录。
[root@controller ~]# mkdir /opt/{centos7,iaas}
[root@controller ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
# 将ISO镜像中的所有文件提取到指定的目录
[root@controller ~]# cp -rvf /mnt/* /opt/centos7/
[root@controller ~]# umount /mnt/
-o 为只读,loop以回环设备形式进行挂载,可查阅其中内容
挂载物理光驱:直接使用 mount,无需 -o loop;
挂载 ISO 文件:需 -o loop。
[root@controller ~]# mount -o loop ./chinaskills_cloud_iaas_v2.0.3.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/iaas
[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/centos7
gpgcheck=0
enabled=1
[openstack]
name=openstack-train
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
[root@controller ~]# yum clean all && yum repolist
Loaded plugins: fastestmirror
Cleaning repos: centos openstack
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror
Determining fastest mirrors
centos | 3.6 kB 00:00
openstack | 2.9 kB 00:00
(1/3): centos/group_gz | 153 kB 00:00
(2/3): openstack/primary_db | 597 kB 00:00
(3/3): centos/primary_db | 3.3 MB 00:00
repo id repo name status
centos centos7-2009 4,070
openstack openstack-train 954
repolist: 5,024
# 在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/centos7
gpgcheck=0
enabled=1
[openstack]
name=openstack-train
baseurl=ftp://controller/iaas/iaas-repo
gpgcheck=0
enabled=1
[root@compute ~]# yum clean all && yum repolist
Loaded plugins: fastestmirror
Cleaning repos: centos openstack
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror
Determining fastest mirrors
centos | 3.6 kB 00:00
openstack | 2.9 kB 00:00
(1/3): centos/group_gz | 153 kB 00:00
(2/3): openstack/primary_db | 597 kB 00:00
(3/3): centos/primary_db | 3.3 MB 00:00
repo id repo name status
centos centos7-2009 4,070
openstack openstack-train 954
repolist: 5,024
四、时间同步配置
controller节点
compute节点
[root@controller ~]# yum install -y chrony
[root@compute ~]# yum install -y chrony
[root@controller ~]# vi /etc/chrony.conf
# 将以下配置行删除或注释掉:
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
# 添加阿里云提供的ntp服务器
server ntp.aliyun.com iburst
# 当外网的ntp服务器不可用时,可采用本地时间作为同步标准
local stratum 1
# 设置同网段的主机使用本机的ntp服务
allow 192.168.110.0/24
[root@controller ~]# systemctl restart chronyd && systemctl enable chronyd
[root@compute ~]# vi /etc/chrony.conf
# 将以下配置行删除或注释掉:
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
# 添加控制节点的时间同步服务器,使计算节点与控制节点进行对时
server controller iburst
[root@compute ~]# systemctl restart chronyd && systemctl enable chronyd
# 测试时间是否同步
[root@compute ~]# chronyc sources
五、划分分区
compute节点
# 需要给cinder、swift和manila服务各提供一块空白分区,总共需要三个分区
[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@controller ~]# 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 0xa80a782d.
# 输入命令 n(即new partitio)后的交互界面,表示开始创建新分区
Command (m for help): n
# 输入 p 创建主分区(最多 4 个)
# 若需创建逻辑分区,需先创建扩展分区(输入 e)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
# 创建主分区
Select (default p): p
# 设置分区编号,若首次分区,默认分配编号 1,即生成 /dev/sdb1
Partition number (1-4, default 1):
# 起始扇区(First sector)通常保持默认值(直接回车)
First sector (2048-41943039, default 2048):
Using default value 2048
# 结束扇区(Last sector),设置分区大小为7G,直接回车则使用默认结束扇区(即剩余最大可用空间)
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +7G
Partition 1 of type Linux and of size 7 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 (14682112-41943039, default 14682112):
Using default value 14682112
Last sector, +sectors or +size{K,M,G} (14682112-41943039, default 41943039): +7G
Partition 2 of type Linux and of size 7 GiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (29362176-41943039, default 29362176):
Using default value 29362176
#直接回车,分得剩余最大可用空间
Last sector, +sectors or +size{K,M,G} (29362176-41943039, default 41943039):
Using default value 41943039
Partition 3 of type Linux and of size 6 GiB is set
# 输入 p(即print partition tabl)会显示当前磁盘 /dev/sdb 的分区表信息
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: 0xa80a782d
Device Boot Start End Blocks Id System
/dev/sdb1 2048 14682111 7340032 83 Linux
/dev/sdb2 14682112 29362175 7340032 83 Linux
/dev/sdb3 29362176 41943039 6290432 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# 更新/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 7G 0 part
├─sdb2 8:18 0 7G 0 part
└─sdb3 8:19 0 6G 0 part
sr0 11:0 1 4.4G 0 rom
# 格式化分区
[root@compute ~]# mkfs.xfs /dev/sdb1
[root@compute ~]# mkfs.xfs /dev/sdb2
[root@compute ~]# mkfs.xfs /dev/sdb3
六、 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 openstack-iaas
[root@compute ~]# yum install -y openstack-iaas
# 修改环境变量
[root@controller ~]# vi /etc/openstack/openrc.sh
# 删除每行前1个字符,再按ESC键输入:wq保存退出
:%s/^.\{1\}//
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.110.10
#Controller HOST Password. example:000000
HOST_PASS=root #controller节点root用户密码
#Controller Server hostname. example:controller
HOST_NAME=controller
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.110.20
#Compute HOST Password. example:000000
HOST_PASS_NODE=root #compute节点root用户密码
#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.110.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
#--------------------Placement Config----------------------##
#Password for Mysql placement user. exmaple:000000
PLACEMENT_DBPASS=000000
#Password for Keystore placement user. exmaple:000000
PLACEMENT_PASS=000000
#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000
#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000
#--------------------Neutron 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=ens33 # NAT网卡
#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=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
#--------------------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.168.110.20 # compute节点IP
#--------------------Trove Config----------------------##
#Password for Mysql trove user. exmaple:000000
TROVE_DBPASS=000000
#Password for Keystore trove user. exmaple:000000
TROVE_PASS=000000
#--------------------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 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
#--------------------ZUN Config----------------##
#Password for Mysql ZUN user. exmaple:000000
ZUN_DBPASS=000000
#Password for Keystore ZUN user. exmaple:000000
ZUN_PASS=000000
#Password for Keystore KURYR user. exmaple:000000
KURYR_PASS=000000
#--------------------OCTAVIA Config----------------##
#Password for Mysql OCTAVIA user. exmaple:000000
OCTAVIA_DBPASS=000000
#Password for Keystore OCTAVIA user. exmaple:000000
OCTAVIA_PASS=000000
#--------------------Manila Config----------------##
#Password for Mysql Manila user. exmaple:000000
MANILA_DBPASS=000000
#Password for Keystore Manila user. exmaple:000000
MANILA_PASS=000000
#The NODE Object Disk for Manila. example:md126p5.
SHARE_DISK=sdb3
#--------------------Cloudkitty Config----------------##
#Password for Mysql Cloudkitty user. exmaple:000000
CLOUDKITTY_DBPASS=000000
#Password for Keystore Cloudkitty user. exmaple:000000
CLOUDKITTY_PASS=000000
#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
# 将文件传给计算节点
[root@controller ~]# scp /etc/openstack/openrc.sh root@compute:/etc/openstack/openrc.sh
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 ~]# iaas-install-neutron-controller.sh
[root@compute ~]# iaas-install-neutron-compute.sh
8、部署Dashboard服务
controller节点
[root@controller ~]# iaas-install-dashboard.sh
安装完成后,可使用浏览器访问openstack云平台
地址:http://192.168.110.10/dashboard
域:demo 用户名:admin 密码:000000
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
七、创建cirros云主机
1、上传镜像
controller节点
# 导入环境变量
[root@controller ~]# source /etc/keystone/admin-openrc.sh
# 将cirros镜像上传到Glance服务中
[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-format bare < /opt/iaas/images/cirros-0.3.4-x86_64-disk.img
2、创建net网络
controller节点
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# openstack network create net
[root@controller ~]# openstack subnet create sub-net --subnet-range 192.168.220.0/24 --gateway 192.168.110.1 --network net
3、创建云主机
回到openstack的dashboard页面,创建云主机
更多推荐
所有评论(0)