目录
一、环境准备
1、准备服务器
2、主机名与域名配置
3、yum仓库配置
4、配置时间同步
二、安装Openstack与Nova依赖环境
1、Nova依赖软件包安装
2、Openstack依赖软件包安装
三、搭建私有云
1、环境检查
2、配置应答文件answer.ini
3、检查网络
四、管理页面登录
4台centos 7.5服务器:
服务器 | 主机名 | IP | 配置 | 备注 |
openstack控制节点 | openstack | 192.168.2.10 | 2C 7G | 关闭selinux 卸载firewalld 卸载NetworkManager 设置network开机自启 |
nova计算节点 | nova1 | 192.168.2.20 | 2C 4G | 关闭selinux 卸载firewalld 卸载NetworkManager 设置network开机自启 |
nova计算节点 | nova2 | 192.168.2.30 | 2C 4G | 关闭selinux 卸载firewalld 卸载NetworkManager 设置network开机自启 |
内网源服务器 时间同步服务器 |
http | 192.168.2.40 | 1C 1G | 关闭selinux 卸载firewalld |
(3台做主机名解析)
vim /etc/hosts
192.168.2.10 openstack
192.168.2.20 nova1
192.168.2.30 nova2
openstack安装时需要使用外部dns来解析域名,3台主机都如下配置:
vim /etc/resolv.conf
#把无关项都去掉,search后面得域名后缀都删除,去掉search开头得所有行
nameserver 114.114.114.114
注意:/etc/resolv.conf里search开头的配置一定要删除干净,不然在后面创建云主机访问控制台的时候会报错,会自动给nova节点配置文件/etc/nova/nova.conf的vncserver_proxyclient_address配置项的主机名后面多加一个.localdomain,会导致nova节点无法ping通该错误域名。
yum镜像下载地址:
链接:https://pan.baidu.com/s/1OtBp89aHrnF-tKLW9dscdg?pwd=1234
提取码:1234
其中:
此处选择http主机为yum源服务器,将RHEL7-extras.iso和RHEL7OSP-10.iso下载解压到openstack主机,并搭建http源,如果是内网机器,还要加一个系统源,本次实验是外网环境,就不单独搭建系统源了,如果内网环境请自行添加:
(建议将http源单独找一台服务器,实际部署有试过将http源部署在openstack服务器,在安装openstack的时候有报错,并且导致http无法访问的情况)
#http主机执行
yum install httpd -y
mkdir -p /var/www/html/{extras,openstack}
将RHEL7-extras.iso内容挂载复制到/var/www/html/extras目录下
将RHEL7OSP-10.iso内容挂载复制到/var/www/html/openstack目录下
chmod -R 755 /var/www/html/
systemctl enable --now httpd
如上可以正常访问,下面开始配置yum源客户端:
三台主机均如下相同配置:
vim /etc/yum.repos.d/openstack.repo
内容如下,添加三个openstack安装源:
[extras]
name=CentOS-$releasever - Extras
baseurl="http://192.168.2.40/extras"
enabled=1
gpgcheck=0
[openstack]
name=CentOS-$releasever - Openstack
baseurl="http://192.168.2.40/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[openstack-devtools]
name=CentOS-$releasever - Openstack-dev-tools
baseurl="http://192.168.2.40/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
yum clean all
yum repolist
源搭建成功。
(时间同步服务器建议也是单独找一台服务器,实际部署有试过和openstack共享服务器,在安装openstack的时候有报错,是时间无法同步)
服务端:
同样将http主机(192.168.2.40)服务器作为时间服务器,其他主机向该机进行时间同步
#在http服务器执行
yum install chrony -y
vim /etc/chrony.conf
#新增如下内容
bindacqaddress 0.0.0.0
allow 192.168.2.0/24
systemctl restart chronyd
systemctl enable chronyd
客户端:
(openstack和nova主机均如下配置):
#在openstack和nova主机配置
yum install chrony -y
vim /etc/chrony.conf
#配置如下内容,将自带server配置都注释或删除,就用下面一个server地址
server 192.168.2.40 iburst
systemctl restart chronyd
systemctl enable chronyd
检查时间同步状态:
#在nova主机执行
chronyc sources -v
在nova1和nova2主机安装Nova相关包:
qemu-kvm:主包
libvirt-daemon:libvirt守护进程
libvirt-daemon-driver-qemu:libvirt启动
libvirt-client:libvirt客户端
python-setuptools:python工具包
openstack启动虚机得过程如下:
user指令--->openstack--->nova--->libvirtd--->qemu-kvm,其中openstack和nova属于openstack项目,libvirtd和qemu-kvm属于单独得虚拟化平台,所以需要单独安装:
yum install qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools -y
systemctl enable --now libvirtd
Openstack安装2个软件包
- python-setuptools
- openstack-packstack
#在openstack主机安装
yum install python-setuptools openstack-packstack -y
(在openstack主机操作):
cd /root
packstack --gen-answer-file=answer.ini
ls
如上会生成一个应答文件。
修改应答文件:
vim /root/answer.ini
需要修改得内容如下:
#42行:为是否安装swift组件,swift一般在做存储云才用到,这里可不装
CONFIG_SWIFT_INSTALL=n
#45、49、53行:计费相关
CONFIG_CEILOMETER_INSTALL=n
CONFIG_AODH_INSTALL=n
CONFIG_GNOCCHI_INSTALL=n
#75行:时间服务器地址,这里填写NTP时间服务器地址
CONFIG_NTP_SERVERS=192.168.2.40
#95行:默认就是本机IP,不做更改,这个是设置openstack Dashboard管理节点是在哪台机器
CONFIG_CONTROLLER_HOST=192.168.2.10
#98行:nova组件安装IP地址,这里需要给几个nova主机安装nova组件,就填几个IP,这里应该将nova1和nova2的IP都写上,但是后面nova2要做其他实验,这里就安装nova1一个
CONFIG_COMPUTE_HOSTS=192.168.2.20
#102行:在哪个主机安装配置Neutron网络,这里所有主机包含openstack和nova主机都要安装,同样nova2先不装,装openstack和nova1主机
CONFIG_NETWORK_HOSTS=192.168.2.10,192.168.2.20
#330行:用户名,管理员用户名是admin,也可自定义修改
CONFIG_KEYSTONE_ADMIN_USERNAME=admin
#333行:管理员密码,密码默认是随机数,也可自定义修改
CONFIG_KEYSTONE_ADMIN_PW=admin
#840行:支持的网络协议,如果要连互联网,就要支持运营商的flat直连网络
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
#910行:ovs网桥名称
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
#921行:网桥物理网卡接口,br-ex转发给真实物理网卡ens38,真实物理网卡名需要根据本机实际物理网卡名对于修改
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens38
#1179行:是否需要演示案例,这里设置不,可以减少内存
CONFIG_PROVISION_DEMO=n
修改好应答文件好,可以使用packstack根据应答文件配置安装openstack和nova,nova节点会被远程安装(通过ssh):
packstack --answer-file=/root/answer.ini
执行上面安装后,如果各主机之间没有配置互信,会要求输入各个nova节点主机的密码,按提示输入密码后回车即可,安装过程耗时比较长,需要耐心等待安装。
如下图所示,如果遇到报错,需要按照提示对于修改,然后再重新执行安装,下图是报ntp时间同步报错,和一个NetworkManager启动,而networking没有启用的警告:
修正错误后,重新安装:
如上,安装成功,至此一个openstack的私有云就安装完成。
安装完成后openstack服务会多一个br-ex网络,br-ex和原物理网口模板类型如下:
如上可以看到eth0物理网卡的设备类型变成ovs,TYPE是ovs的一个端口ovsport,属于下面的br-ex交换机,上面的br-ex图,看到br-ex设备类型是OVS,类型是OVSBridge。
使用ovs-vsctl命令查看:
ovs-vsctl show
可以看到r-ex相当于一个虚拟交换机,而物理网卡ens38是br-ex的一个端口,用户虚机内部网络的向外转发。同样,在nova节点也是相同配置。
前面介绍过,openstack服务的Web控制面板是属于Horizon服务,Horizon是一个用于管理、控制OpenStack服务的Web控制面板,也称之为Dashboard仪表盘,可以管理实例、镜像、创建密钥对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例。
登录前,本次部署使用的openstack版本需要修改一个httpd服务配置:
vim /etc/httpd/conf.d/15-horizon_vhost.conf
新增一行配置:
WSGIProcessGroup %{GLOBAL}
systemctl reload httpd
登录网址:http://192.168.2.10/dashboard
输入安装时answer.ini应答文件里配置的用户名密码,admin/admin登录:
在answer.ini同目录下的keystonerc_admin也记录了web管理端的用户名和密码:
cat /root/keystonerc_admin
也可以通过该文件,通过命令console登录到openstack后台:
source /root/keystonerc_admin