一、虚拟机参考(Vmware版本:17.5.0)
镜像参考:CentOS-7-x86_64-DVD-1804.iso chinaskills_cloud_iaas_v2.0.iso
提前准备:双节点已配置好IP地址,并可以ping通外网,可使用工具连接虚拟机。
节点规划:
IP | 主机名 | 节点 |
192.168.100.30 | Controller | 控制节点 |
192.168.100.40 | Compute | 计算节点 |
二、开始部署
1、环境准备
(1)修改主机名
[root@localhost ~ ]# hostnamectl set-hostname controller
[root@localhost ~ ]# bash
[root@controller ~ ]#
[root@localhost ~ ]# hostnamectl set-hostname compute
[root@localhost ~ ]# bash
[root@compute ~ ]#
(2)修改映射文件
在双节点都 修改映射文件
[root@controller ~ ]# vi /etc/hosts
[root@compute ~ ]# vi /etc/hosts
(3)配置yum环境
需要将前面提到的镜像上传到controller节点的/root目录下,并在/opt下创建centos目录和iaas目录,将其分别挂在到/mnt下之后将相应的镜像内容复制到其目录下面,然后解除挂载,继续下一镜像的挂载与内容的复制。
[root@controller ~]# mkdir /opt/centos
[root@controller ~]# mkdir /opt/iaas
[root@controller ~]# ls
anaconda-ks.cfg CentOS-7-x86_64-DVD-1804.iso chinaskills_cloud_iaas_v2.0.iso
[root@controller ~]# mount CentOS-7-x86_64-DVD-1804.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -r /mnt/* /opt/centos/
[root@controller ~]# umount /mnt/
[root@controller ~]# mount chinaskills_cloud_iaas_v2.0.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -r /mnt/* /opt/iaas/
然后我们开始编写yum源文件,在此之前我们需要把原有的yum源文件给移走,防止原来的yum源文件对新的yum源文件造成影响。
[root@controller ~]# mv /etc/yum.repos.d/* /media/
[root@controller ~]# vi /etc/yum.repos.d/local.repo
清除yum缓存和重新生成缓存
[root@controller ~]# yum clean all && yum repolist
需注意:status为0的话,说明编辑的yum源文件有问题需要重新编辑
我们也需要在compute节点编辑yum源文件,但它与controller节点的有区别。
我们需要在controller节点安装vsftpd服务,将/opt目录下的文件共享,而compute节点的yum源文件的配置内容的区别就在这里
[root@controller ~]# yum install -y vsftpd
还需要在其配置文件最上面添加“anon_root=/opt”
然后我们启动vsftpd服务,并将其加入开启自启
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf
[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.
[root@controller ~]#
接下来开始配置compute节点的yum源文件
在compute节点执行yum repolist命令之前把两个节点的防火墙和selinux都关闭
(4)划分分区
需要给compute节点的第二块磁盘划分两个大小一样的分区,因为我这里第二块磁盘是40G,所以我把他划分为两个20G的分区。具体过程就不再演示了。
2、开始部署平台
(1)环境变量配置
需要在两个节点安装平台的安装脚本软件包
[root@controller ~]# yum install -y openstack-iaas
[root@compute ~]# yum install -y openstack-iaas
修改两个节点的环境变量文件:/etc/openstack/openrc.sh
在配置文件里面执行下面两条命令以行方便
密码填充 :%s/PASS=/PASS=000000
需要使用删除每行前1个字符(#号) :%s/^.\{1\}//
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.30 ##(controller节点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.100.40 ##(compute节点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.100.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=ens34(请根据自己的第二张网卡名称添加)
#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=2000
#--------------------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.100.40(compute节点IP地址)
建议以下服务的部署一定按照顺利来!!双节点部署的,等一个节点部署完成
再部署另一个节点
(2)双节点部署平台基础环境
[root@controller ~]# iaas-pre-host.sh
[root@compute ~]# iaas-pre-host.sh
(3)controller节点部署mariadb数据库及rabbit消息队列服务
[root@controller ~]# iaas-install-mysql.sh
(4)controller节点部署keystone服务
[root@controller ~]# iaas-install-keystone.sh
(5)controller节点部署glance服务
[root@controller ~]# iaas-install-glance.sh
(6)controller节点部署nova服务
[root@controller ~]# iaas-install-placement.sh
[root@controller ~]# iaas-install-nova-controller.sh
[root@compute ~]# iaas-install-nova-compute.sh
(7)部署neutron服务
[root@controller ~]# iaas-install-neutron-controller.sh
[root@compute ~]# iaas-install-neutron-compute.sh
(8)部署dashboard
[root@controller ~]# iaas-install-dashboard.sh
三、平台部署完成
在浏览器访问http://192.168.100.30/dashboard
至此,openstack平台基础部署第一阶段完成!