目录
一、基础环境
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地址 |
controller | NAT | dhcp |
controller | 仅主机 | 192.32.10.10 |
compute | NAT | dhcp |
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