OpenStack部署
一、主要组件
Horizon:用于管理Openstack各种服务的、基于web的管理接
口;通过图形界面实现创建用户、管理网络、启劢实例等操作。
Keystone:为其他服务提供认证和授权的集中身份管理服务;也提供了集中的目录服务;支持多种身份认证模式,如果密码认证、令牌认证、以及AWS(亚马逊Web服务)登陆;为用户和其他服务提供了SSO认证服务。
Neutron:一种软件定义网络服务;用于创建网络、子网、路由器、管理浮动IP地址;可以实现虚拟交换机、虚拟路由器;可用于在项目中创建×××。
Cinder:为虚拟机管理存储卷的服务;为运行在Nova中的实例提供永久的块存储;可以通过快照迚行数据备份;经常应用在实例存储环境中,如果数据库文件。
Nova:在节点上用于管理虚拟机的服务;Nova是一个分布式的服务,能够不Keystone交互实现认证,不Glance交互实现镜像管理;Nova被设计成在标准硬件上能够迚行水平扩展;启动实例时,如果有需要则下载镜像(托管节点,部署到管理节点外的其他主机)。
Glance:扮演虚拟机镜像注册的角色;允许用户为直接存储拷贝服务器镜像;这些镜像可以用于新建虚拟机的模板。(后端镜像)
二、OpenStack结构图
三、基础环境准备[前文自动化部署虚拟机(kvm)中已经准备完毕]
1. 禁用 selinux
2. 卸载 firewalld
3. 卸载 NetworkManager
4. 配置主机IP地址
5. 配置主机yum客户端
6. 创建cinder-volumes的卷组
7. 导入公钥(gpgcheck=1 rpm --import ftp://192.168.1.254/CentOS7/RPM-GPG-KEY-CentOS-7)
8. 安装依赖的软件包
四、部署安装OpenStack
[OpenStack管理节点、Nova节点 配置]
1)yum源配置
[local_repo]
name=CentOS7
baseurl="ftp://192.168.1.254/CentOS7"
enabled=1
gpgcheck=1
[openstack-ext]
name=Packages
baseurl="ftp://192.168.1.254/openstack-ext"
enabled=1
gpgcheck=0
[rhel-7-server-rhceph-2-osd-rpms]
name=rhel-7-server-rhceph-2-osd-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhceph-2-tools-rpms]
name=rhel-7-server-rhceph-2-tools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhscon-2-agent-rpms]
name=rhel-7-server-rhscon-2-agent-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhscon-2-installer-rpms]
name=rhel-7-server-rhscon-2-installer-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhscon-2-main-rpms]
name=rhel-7-server-rhscon-2-main-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhceph-2-mon-rpms]
name=rhel-7-server-rhceph-2-mon-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-tools-rpms]
name=rhel-7-server-openstack-10-tools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-rpms]
name=rhel-7-server-openstack-10-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-optools-rpms]
name=rhel-7-server-openstack-10-optools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-devtools-rpms]
name=rhel-7-server-openstack-10-devtools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
配置完成以后 yum repolist 能看到 12 个源及 10,731 个包
2)配置卷组
OpenStack管理节点虚拟机 [8G内存]:
]#pvcreate /dev/vdb
]#vgcreate cinder-volumes /dev/vdb
注:OpenStack虚拟机的模板机是minimal安装未安装逻辑卷相关命令,需要利用yum provides vgcreate 查出此命令由哪个软件包提供,并安装。
3)导入公钥
修改yum仓库gpgcheck=1
]#rpm --import ftp://192.168.1.254/CentOS7/RPM-GPG-KEY-CentOS-7
注:此步骤在制作模板机的时候已经操作完成,可忽略。
4)安装额外软件包
]#yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
[ penStack管理节点虚拟机配置 ]
五、安装OpenStack
1)安装openstack
]# yum install -y openstack-packstack
]#packstack --gen-answer-file answer.ini
2)修改应答文件
配置默认密码:
11: CONFIG_DEFAULT_PASSWORD=Taren1
设置禁用 swift (对象存储) 模块:
42: CONFIG_SWIFT_INSTALL=n
NTP 服务器地址:
75: CONFIG_NTP_SERVERS=192.168.1.254
计算节点IP地址:
98: CONFIG_COMPUTE_HOSTS=192.168.1.19
需要配置vxlan网络的 IP 地址:
102: CONFIG_NETWORK_HOSTS=192.168.1.19
禁用自动创建 cinder-volumns 卷组:
554: CONFIG_CINDER_VOLUMES_CREATE=n
设置网络支持协议:
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
设置组播地址:
876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
设置虚拟交换机:
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
设置虚拟交换机所连接的物理网卡:
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
设置隧道网络使用的网卡:
936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
禁用测试的DEMO:
1179:CONFIG_PROVISION_DEMO=n
保存配置文件,安装 openstack
]#packstack --answer-file=answer.ini
六、网络配置(安装配置自动生成)
1)多计算节点拓扑
2)配置br-ex为外部OVS网桥
]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.66"
PREFIX="24"
GATEWAY="192.168.1.254"
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge
3) 配置eth0为外部OVS网桥的端口
]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
4) 验证OVS配置
[1].ovs-vsctl show
[2].ip -o addr show
]# ovs-vsctl show
Bridge br-ex
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
… …
Port br-ex
Interface br-ex
type: internal
Port "eth0"
Interface "eth0"
七、Horizon BUG 处理
horizon 软件配置 bug
修改 /etc/httpd/conf.d/15-horizon_vhost.conf
ServerAliaslocalhost
WSGIDaemonProcessapache group=apache processes=3 threads=10 user=apache
WSGIProcessGroupapache
36: WSGIApplicationGroup %{GLOBAL} 第36行添加
八、重新加载配置文件,网页测试
重新载入配置文件:
]#apachectl graceful
查看用户名密码:
]# cat keystonerc_admin
利用浏览器输入http://192.168.1.202登陆管理界面
未完待续……