本来要搭建4节点,控制节点,网路节点,计算节点,存储节点,但是。。。。。此次搭建使用双节点测试,更多集群部署请自行增加即可。
Controller 控制节点–网络节点
要求: 内存4G+,2核+,双网卡(NET模式,仅主机模式),虚拟化引擎打开,硬盘一个大小看需求,镜像centos7。
Compute (计算节点)–存储节点
要求:内存8G+,2核+,双网卡(NET模式,仅主机模式),虚拟化引擎打开,硬盘3个大小看需求,镜像centos7。
说明:双网卡采用NAT和仅主机模式是为了更好的安全考虑,一个用于外网一个用于内部网络使用。
第一步 基础搭建:
1.修改主机名:
$ hostnamectl set-hostname controller
2.修改selinux
$ vi /etc/sysconfig
修改内容:disabled
3.关闭防火墙:
systemctl stop firewalld(重启自动关闭)
systemctl disable firewalld
4.YUM源配置
(1)创建目录 用于上传
$ mkdir /opt/centos
$ mkdir /opt/iaas
(2)上传CentOS-7-x86_64-DVD-1511.iso和 openstack-IaaS-v2.2.iso镜像至服务器上;(可以使用xftp上传至opt目录)
【注】为了更好的理解,此处采用再次上传的方式。
因为根据官网搭建,步骤零碎繁琐,所以将一些核心配置及需要的组件软件包等内容制作了属于自己的镜像。
openstack-IaaS-v2.2.iso是单独制作的openstack平台需要的软件包和核心配置集成的iso
(3)挂载镜像
$ mount [-o loop] /opt/CentOS-7-x86_64-DVD-1511.iso /opt/centos
$ mount [-o loop] /opt/XianDian-IaaS-v2.2.iso /opt/iaas
[注] 系统一旦重启,需要重新挂载。可以使用自动挂载
$ chmod 777 /etc/rc.local 授权
在 /etc/rc.local 中插入挂载命令
(4)编写本地yum仓库源
$ mv /etc/yum.repos.d/* /opt(移除yum.repos.d下的所有内容 防止与下面的源文件冲突)
在/etc/yum.repos.d创建centos.repo源文件(touch)
[centos]
name=centos
baseurl=file:///opt/centos #挂在路径 可以采用ip方式
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
验证:
$ yum clean all
$ yum repolist
5.安装 ftp服务:
$ yum -y install vsftpd #安装ftp服务
$ sed -i ‘anon_root=/opt/’ /etc/vsftpd/vsftpd.conf(指定只能访问opt下)
$ systemctl start vsftpd
$ systemctl enable vsftpd
6.编辑环境变量
安装xiandian服务:
$ yum install iaas-xiandian -y(在/ipt/iaas/base下 存在iaas-xiandian软件包)
修改核心基础配置:
$ vi /etc/xiandian/openrc.sh(可以通过xftp直接对文件修改)
HOST_IP=192.168.10.100 #控制节点IP
HOST_NAME=controller #控制节点主机名
HOST_IP_NODE=192.168.10.200 #计算节点
HOST_NAME_NODE=compute #计算节点
RABBIT_USER=openstack #消息队列服务
RABBIT_PASS=000000 #所有的服务密码都设置为000000
DB_PASS=000000 #数据库
DOMAIN_NAME=demo #默认云平台域名
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000 #keystone服务
GLANCE_DBPASS=000000 #
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ifcfg-eno... #网卡文件名
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sdb #存储节点 作为块存储cinder 空白分区名
SWIFT_PASS=000000
OBJECT_DISK=sdc #存储节点 对象存储swift 空白分区名
STORAGE_LOCAL_NET_IP=192.168.10.200 #存储节点
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000
【注】:详细配置可见官网
关于网卡,根据需求来配置NAT或者仅主机
1.修改主机名
$ hostnamectl set-hostname compute
2.修改selinux
$ vi /etc/sysconfig
修改内容:disabled
3.关闭防火墙
$ systemctl disable firewalld
$ systemctl stop firewalld
4.YUM源配置:
编写本地yum仓库源
$ mv /etc/yum.repos.d/* /opt #移走源
$ touch /etc/yum.repos.d centos.repo #创建新的源文件
$ vi /etc/yum.repos.d/centos.rpo #修改源文件
[centos]
name=centos
baseurl=ftp://192.168.10.100/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.10.100/iaas/iaas-repo
gpgcheck=0
enabled=1
验证:
yum clean all
yum repolist
5.编辑环境变量:
$ yum install iaas-xiandian -y
$ vi /etc/xiandian/openrc.sh
HOST_IP=192.168.10.100(控制节点)
HOST_NAME=controller
HOST_IP_NODE=192.168.10.200 #(计算节点)
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo #搭建dashboard后登录的域名)
ADMIN_PASS=000000 #(登录的密码)
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ifcfg-eno.... #网卡文件名
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sdb(空白分区名 lsblk)
SWIFT_PASS=000000
OBJECT_DISK=sdc(空白分区名)
STORAGE_LOCAL_NET_IP=192.168.10.200(计算节点)
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000
【注】此处配置网卡文件名需要和控制节点保持一致
【注】因为服务较多且每个服务都需要安装及配置不同的子组件,所以这里就介绍下每一步干那些事情,命令就不一一赘述了。详见官网
文本中会读取使用openrc.sh配置内容
执行以下的交本完成服务安装:
iaas-pre-host.sh #主要行为:关闭防火墙,卸载网络管理工具,设置iptables,映射IP和主机名等
iaas-install-mysql.sh #安装及配置ntp时间服务;数据库服务 mongodb&mariadb ;消息队列rabbitmq
iaas-install-keystone.sh # httpd服务,安装keystone服务及与之相关的数据库,端点,服务,用户,角色,域名,环境变量等
iaas-install-glance.sh#glance服务及子组件,同样数据库,与之对应的端点,用户,角色,配置文件链接信息,keystone注册等
iaas-install-nova-controller.sh #安装nova服务及子组件,同样数据库,与之对应的端点,用户,角色,配置文件链接信息,keystone注册等
iaas-install-neutron-controller.sh#安装网络服务同样数据库,与之对应的端点,用户,角色,配置keystone注册,nova链接,同时创建网桥等行为 此处很重要关系到云主机通信
iaas-install-neutron-controller-gre.sh;#更多关于网桥的配置及相关服务安装
iaas-install-dashboard.sh #web界面
iaas-install-cinder-controller.sh#安装cinder服务及子组件,同样数据库,与之对应的端点,用户,角色,配置文件链接信息,keystone注册等
iaas-install-swift-controller.sh(先执行此脚本);#安装swift服务及子组件,同样数据库,与之对应的端点,用户,角色,配置文件链接信息,keystone注册等
iaas-pre-host.sh
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-neutron-compute-gre.sh;
iaas-install-cinder-compute.sh
iaas-install-swift-compute.sh
最后访问dashboard页面,域名,用户,密码登录信息都在keystone交本中写好了。