1、主机信息:(为了完成实验的最低配置)
openstack管理主机:
ip:192.168.1.10
2CPU,6G 内存,50G 硬盘
配置静态IP ifcfg-eth0
两台nova主机:
2CPU,4.5G 内存,100G 硬盘
ip:192.168.1.11, 192.168.1.12
配置静态IP ifcfg-eth0
# ip都通过配置文件进行修改,/etc/sysconfig/network-scripts/目录下
主机192.168.1.254作为NTP服务器、YUM仓库
2、配置DNS:(所有主机)
# 配置 dns 服务器 /etc/resolv.conf
vim /etc/resolv.conf #去掉所有search开头的行
; generated by /usr/sbin/dhclient-script
nameserver 114.114.114.114 #外部dns
# DNS需要是单独的主机
# openstack安装需要使用外部DNS
# 配置主机名 /etc/hosts,能够相互 ping 通
vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
3、配置NTP时间同步:(所有主机)
vim /etc/chrony.conf
...
server 192.168.1.254 iburst #指定时间同步服务器,iburst 表示立即生效
...
systemctl restart chronyd #重启服务
chronyc sources -v #查看是否同步成功
成功: ^*
失败: ^?
4、配置yum仓库:
# 通过ftp配置网络yum源
Centos7-1804.iso #提供系统软件
RHEL7-extras.iso #提供python依赖软件包
RHEL7OSP-10.iso #提供openstack相关软件包
mkdir /var/ftp/centos-1804
mkdir /var/ftp/RHEL7-extras
mkdir /var/ftp/RHEL7OSP-10
mount Centos7-1804.iso /var/ftp/centos-1804/
mount RHEL7-extras.iso /var/ftp/RHEL7-extras/
mount RHEL7OSP-10.iso /var/ftp/RHEL7OSP-10/
vim /etc/yum.repos.d/local.repo #baseurl所指路径一定是repodata文件所在的目录
[local_repo] #系统软件包
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos-1804"
enabled=1
gpgcheck=0
[RHEL7-extras] #python依赖软件包
name=RHEL7-extras
baseurl="ftp://192.168.1.254/RHEL7-extras"
enabled=1
gpgcheck=0
[RHEL7OSP-package] #openstack主要软件仓库
name=RHEL7OSP-package
baseurl="ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[RHEL7OSP-devtools] #packstack软件仓库
name=RHEL7OSP-devtools
baseurl="ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
yum clean all #清空缓存
yum repolist #查看yum软件包,10670个
通过scp把 local.repo 文件发送给所有主机
5、安装依赖包:(所有主机)
yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
yum install -y libvirt-daemon-config-nwfilter # 这个也需要安装
6、环境检查:(所有主机)
卸载firewalld和NetworkManager(yum -y remove firewalld* NetworkManager*)
关闭selinux(通过配置文件修改)
ip是静态的
使用hosts中的主机名验证各主机可以互相ping通
yum源是否正确,yum repolist,10670个包
依赖包是否安装成功,开启libvirtd服务,设置为开机自启动
NTP、DNS是否正确
7、安装openstack:
配置packstack:(openstack管理主机上配置)
yum install -y openstack-packstack
packstack --gen-answer-file answer.ini #生成应答文件
修改应答文件:
vim answer.ini
42 CONFIG_SWIFT_INSTALL=n #关闭对象存储
45 CONFIG_CEILOMETER_INSTALL=n #关闭计费相关模块
49 CONFIG_AODH_INSTALL=n #关闭计费相关模块
53 CONFIG_GNOCCHI_INSTALL=n #关闭计费相关模块
75 CONFIG_NTP_SERVERS=192.168.1.254 #NTP时间服务器地址
98 CONFIG_COMPUTE_HOSTS=192.168.1.11 #nova节点,为了防止安装失败,先配置一台nova节点
102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 #安装neutron
330 CONFIG_KEYSTONE_ADMIN_USERNAME=admin #管理员账号
333 CONFIG_KEYSTONE_ADMIN_PW=123456 #管理员密码
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan #网络驱动类型
# 网络驱动类型包括:local(本地网络),flat(直连网络,用于和外网通信),
# vlan,gre(vpn隧道),xvlan(比vlan数量多,用于内部通信)
876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5 #设置组播地址,最后一个随意不能为0和255,其他固定
910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex #虚拟交换机的名称br-ex
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 #虚拟交换机br-ex外网出口的网卡(连接外网的网卡)
1179 CONFIG_PROVISION_DEMO=n #DEMO演示实例,占内存,所以需要关闭
8、部署openstack:
packstack--answer-file=answer.ini
# 根据配置文件远程自动部署openstack
# 在远程部署的过程中不能手动中断
# 出现错误之后进行排错,然后再次执行上述命令
# 部署完毕之后,网卡eth0的ip被虚拟交换机br-ex拿走,此时网卡eth0不再具有ip地址
# eth0相当于br-ex的接口,类比路由器,所有的数据通过eth0转发
# 通过cat查看eth0的信息和br-ex的信息,/etc/sysconfig/network-scripts/目录下
# 在配置的过程中可能会由于环境问题、内存不足而导致配置失败
# 只要不是人为停止(ctrl+c),在排错之后都可以再次执行上述命令
---以下是配置的过程---
# Welcome to the Packstack setup utility
# The installation log file is available at: /var/tmp/packstack/20190423-170603-b43g_i/openstack-setup.log
# Installing:
# Clean Up [ DONE ]
# Discovering ip protocol version [ DONE ]
# root@192.168.1.11's password:
# root@192.168.1.10's password:
# Setting up ssh keys
# **** Installation completed successfully ****** #出现这个为成功
------
ovs-vsctl show #查看虚拟交换机br-ex的信息,能看到eth0和br-ex的关系
9、Horizon管理BUG修改:
# Horizon是由django编写的,运行在apache上
# 当前使用的Horizon存在一个BUG
# 部署完毕之后无法直接访问Horizon
# 解决方法如下:
vim /etc/httpd/conf.d/15-horizon_vhost.conf
35 WSGIProcessGroup apache
36 WSGIApplicationGroup %{GLOBAL} #添加这一行
# 重新加载服务
systemctl reload httpd
或
apachectl graceful
firefox 192.168.1.10
写总结的第七十一天!!!