当前位置: > 其它学习 > OpenStack >

openstack环境搭建

时间:2020-04-19 00:10来源:linux.it.net.cn 作者:IT
**
 
openstack
**
 
什么是openstack
openstack是由NASA(美国国家航空航天局)和Rackspace合作研发并发起的项目
openstack是一个由一套iaas解决方案
openstack是一个开源的云计算管理平台
 
什么是云计算
基于互联网的相关服务的增加,使用和交付模式
-这种模式提供可用的,编辑的,按需的网络访问,进行可配置的计算资源共享池
-这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互
-通常涉及互联网来提供动态衣扩展且经常是虚拟化资源
 
Iaas infrastructure as server 基础即服务
提供给消费者的服务是对所有计算机基础设施的利用,包括处理CPU,用户能够部署和运行任意软件,包括操作系统和应用程序.
iaas 通常分为三种用法:公有云,私有云,混合云
 
Paas platform as a service 平台即服务
以服务器平台或开发环境作为服务进行提供就成为paas
-paas 运营商所需提供的服务,不仅仅是单纯的基础平台,还针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发,优化等服务
-简单地说,paas平台是指定云环境中的应用基础设施服务,也可以说是中间件即服务
 
SaaS software-as a service 软件即服务,
是一种通过internet 提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己的实际需求,通过互联网向厂商订购所需的应用软件服务.
用户不用在购买软件,而是向提供商租用基于web的软件.来管理企业经营活动,不用对软件进行维护,提供商会全权管理和维护软件,同时也提供软件的离线操作和本地数据存储.
 
OPENSTACK结构图
Horizon 基于appache 提供web页面
Nova 用于给master(horizon) 管理其他机器的插件
keystone 用于组件之间的统一认证
glance 磁盘镜像组件(把后端盘放在glance,所有的机器都可以通过网络使用glance的镜像文件)
swift 对象存储主键
cinder 逻辑卷存储
quantum 网络组件,vxlan=扩展vlan,安装在所有安装用nova的机器
 
Horizon
用于管理openstack各种服务的,基于web的管理接口
-通过图形界面实现创建用户,管理网络,启动实例等操作
 
keystone
为其他服务提供认证和授权的集中身份管理服务
-也提供了集中的目录服务
-支持多种身份认证模式,如密码认证,令牌认证,以即AWS(亚马逊web服务)登录
-为用户和其他服务提供SSO认证服务
 
Neutron
一种软件定于网络服务
-用于创建网络,子网,路由器,管理浮动ip地址
-可以实现虚拟交换机,虚拟路由器
-可以用于在项目中创建VPN
 
Cinder
为虚拟机管理存储卷的服务
-为运行在nova中的实例提供永久的块存储
-可以通过快照进行数据备份
-经常应用在实例存储环境中,如数据库文件
 
Glance
扮演虚拟机镜像注册的角色
-运行用户为直接存储拷贝服务器镜像
-这些镜像可以用于新建虚拟机的模板
 
Nova
在节点上用于虚拟机的服务
-Nova是一个分布式的服务,能够与keystone交互实现认证,与Glance交互实现镜像管理
-Nova被设计成在标准硬件上能够进行水平扩展
-启动实例时,如果有则需要下载镜像
 
虚拟机准备
一个交换机,最多几个vlan 4096,最大号码4095
 
部署安装环境
准备3台虚拟机
(1)
openstack 192.168.1.10 管理
2 cpu 6G内存 50G硬盘
(2)
nova01 192.168.1.11 节点
2cpu 4.5G内存,100G硬盘
(3)
nova02 192.168.1.12 节点
2cpu 4.5G内存,100G硬盘
 
1)是否卸载firewall 和NetworkManager
2)检查配置主机网络参数(静态ip)
3)主机名必须相互ping通
4)检查配置主机yum源(4个,10670)
5)依赖软件包是否安装
6)检查NTP服务器是否可用
7)检查/etc/resolve.conf 不能有search 开头的行
 
真机创建虚拟机
[root@room12pc14 nsd1903]# vim /etc/clone.conf
name=base
[root@room12pc14 nsd1903]# clone-vm7
 
用户名:root
密码:a
 
[root@room12pc14 ~]# virsh shutdown tedu_node01
[root@room12pc14 ~]# virsh edit tedu_node01
tedu_node01
7061cce5-3e6c-430b-8080-0a1fc5541b65
7488282 //改内存
7488282 //改当前内存
2 //改cpu
[root@room12pc14 ~]# virsh start tedu_node01
[root@room12pc14 ~]# virsh start tedu_node02
[root@room12pc14 ~]# virsh start tedu_node03
[root@room12pc14 ~]# virsh blockresize --path /var/lib/libvirt/images/tedu_node01.img --size 50G tedu_node01
重新定义 ‘/var/lib/libvirt/images/tedu_node01.img’ 块设备大小
[root@room12pc14 ~]# virsh blockresize --path /var/lib/libvirt/images/tedu_node02.img --size 100G tedu_node02
重新定义 ‘/var/lib/libvirt/images/tedu_node02.img’ 块设备大小
[root@room12pc14 ~]# virsh blockresize --path /var/lib/libvirt/images/tedu_node03.img --size 100G tedu_node03
重新定义 ‘/var/lib/libvirt/images/tedu_node03.img’ 块设备大小
 
虚拟机扩容 ( openstack nova01 nova02 3台机都要操作 )
[root@opnenstack ~]# free -h //查看扩大后的内存
[root@opnenstack ~]# LANG=C
[root@opnenstack ~]# growpart /dev/vda 1 //扩大硬件内存后,扩展分区
[root@opnenstack ~]# xfs_growfs /dev/vda1 //扩大硬件内存后,扩展文件系统
 
1)是否卸载firewall 和NetworkManager ( openstack nova01 nova02 3台机都要操作 )
[root@opnenstack ~]# systemctl stop firewalld
[root@opnenstack ~]# systemctl stop NetworkManager
 
2)检查配置主机网络参数(静态ip) ( openstack nova01 nova02 3台机都要操作 )
必须是静态ip
[root@nova01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
#Generated by dracut initrd
DEVICE=“eth0”
ONBOOT=“yes”
NM_CONTROLLED=“no”
TYPE=“Ethernet”
BOOTPROTO=“static” // dhcp改成static
PERSISTENT_DHCLIENT=“yes”
 
openstack
eip 10 //设置ip ,只需要输入最后一位
reboot
 
nova01
eip 11 //设置ip ,只需要输入最后一位
reboot
 
nova02
eip 12 //设置ip ,只需要输入最后一位
reboot
 
3)主机名必须相互ping通 ( openstack nova01 nova02 3台机都要操作 )
[root@opnenstack ~]# vim /etc/hosts //域名
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
两两能ping通
[root@opnenstack ~]# ping nova01 -c 2
[root@opnenstack ~]# ping nova02 -c 2
[root@nova01 ~]# ping openstack -c 2
[root@nova01 ~]# ping nova02 -c 2
[root@nova02 ~]# ping openstack -c 2
[root@nova02 ~]# ping nova01 -c 2
 
4)检查配置主机yum源(4个,10670)( openstack nova01 nova02 3台机都要操作 )
真机
把系统的3个镜像文件挂载在/var/ftp
[root@room12pc14 openstack]# cd /var/ftp
[root@room12pc14 ftp]# ls
centos-1804 ceph pub share
[root@room12pc14 ftp]# mkdir openstack
[root@room12pc14 ftp]# mkdir kubernetes
[root@room12pc14 ftp]# mount /linux-soft/04/openstack/RHEL7-extras.iso /var/ftp/kubernetes
mount: /dev/loop1 写保护,将以只读方式挂载
[root@room12pc14 ftp]# mount /linux-soft/04/openstack/RHEL7OSP-10.iso /var/ftp/openstack/
mount: /dev/loop2 写保护,将以只读方式挂载
[root@room12pc14 ftp]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 99G 73G 21G 79% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 89M 7.8G 2% /dev/shm
tmpfs 7.8G 11M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 293G 65G 214G 24% /var/lib/libvirt/images
/dev/loop0 8.8G 8.8G 0 100% /var/ftp/centos-1804 //挂载1
tmpfs 1.6G 40K 1.6G 1% /run/user/1000
/dev/loop1 169M 169M 0 100% /var/ftp/kubernetes //挂载2
/dev/loop2 3.0G 3.0G 0 100% /var/ftp/openstack //挂载3
 
虚拟机
[root@opnenstack yum.repos.d]# vim openstack.repo
[kubernetes]
name=centos openstack extras
baseurl=ftp://192.168.1.254/kubernetes
enabled=1
gpgcheck=0
 
[openstack]
name=centos openstack packages
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms
enabled=1
gpgcheck=0
 
[packstack]
name=centos openstack packstack
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0
[root@opnenstack yum.repos.d]# yum clean all
[root@opnenstack yum.repos.d]# yum repolist
repolist: 10670 //必须这个数量才正确
出错
[root@opnenstack yum.repos.d]# rsync -avXSH /etc/yum.repos.d/ nova01:/etc/ //出错,yum数量不对
[root@opnenstack yum.repos.d]# rsync -avXSH /etc/yum.repos.d/ nova02/etc/ //出错,yum数量不对
排错
[root@opnenstack yum.repos.d]# rsync -avXSH /etc/yum.repos.d nova01 etc/ //成功,拷贝yum源配置文件,一定不能加/
[root@opnenstack yum.repos.d]# rsync -avXSH /etc/yum.repos.d nova02:/etc/ //成功,拷贝yum源配置文件,一定不能加/
 
5)依赖软件包是否安装
安装软件 nova01 nova02
[root@nova01 ~]# yum -y install qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[root@nova01 ~]# rpm -qa | grep -i qemu-kvm
[root@nova01 ~]# rpm -qa | grep -i libvirt-daemon
[root@nova01 ~]# rpm -qa | grep -i libvirt-daemon-driver-qemu
[root@nova01 ~]# rpm -qa | grep -i libvirt-client
[root@nova01 ~]# rpm -qa | grep -i python-setuptools
 
6)检查NTP服务器是否可用 ( openstack nova01 nova02 3台机都要操作 )
[root@opnenstack ~]# vim /etc/chrony.conf //配置时间同步
server 192.168.1.254 iburst
[root@opnenstack ~]# systemctl restart chronyd
[root@opnenstack ~]# systemctl enable chronyd
[root@opnenstack ~]# chronyc sources -v
^* gateway 11 6 37 38 +2412ns[ +37us] +/- 11ms ///^*表示同步成功
 
7)检查/etc/resolve.conf 不能有search 开头的行
[root@opnenstack ~]# vim /etc/resolv.conf //DNS客户机配置文件
; generated by /usr/sbin/dhclient-script
#search localhost //注释掉,防止域名被加后缀
nameserver 192.168.1.254
 
安装openstack
在openstack机上
安装openstack需要使用packstack
 
-首先openstack-packstack
[root@opnenstack ~]# yum -y install openstack-packstack
[root@openstack ~]# packstack --gen-answer-file=answer.ini //生成应答文件
 
其次配置packstack
[root@openstack ~]# vim answer.ini //修改应答文件
[root@openstack ~]# sed -n ‘42p;45p;49p;53p;75p;98p;102p;333p;910p;921p;1179p’ answer.ini
CONFIG_SWIFT_INSTALL=n //把y改成n
CONFIG_CEILOMETER_INSTALL=n //把y改成n
CONFIG_AODH_INSTALL=n //把y改成n
CONFIG_GNOCCHI_INSTALL=n //把y改成n
CONFIG_NTP_SERVERS=192.168.1.254 //时间同步服务器是真机
CONFIG_COMPUTE_HOSTS=192.168.1.11 //把本机ip改成nova01的ip
CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //增加nova01的ip
CONFIG_KEYSTONE_ADMIN_PW=a //改为简单的密码方便实验
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //自定义网桥
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //自定义网卡
CONFIG_PROVISION_DEMO=n //把y改成n
 
最后一键部署openstack
[root@openstack ~]# packstack --answer-file=answer.ini 20分钟左右
 
**** Installation completed successfully ******
 
网络拓扑
 
查看外部OVS网桥
br-ex 为外部OVS网桥
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT=“yes”
IPADDR=192.168.1.10
NM_CONTROLLED=“no”
PERSISTENT_DHCLIENT=“yes”
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=“static”
TYPE=OVSBridge
 
eth0为外部OVS网桥端口
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
 
验证OVS配置
[root@openstack ~]# ovs-vsctl show
 
Horizon
Horizon Bug处理
[root@openstack ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
[root@openstack ~]# tail -4 /etc/httpd/conf.d/15-horizon_vhost.conf | head -2
WSGIProcessGroup apache
WSGIApplicationGroup %{GLOBAL} //添加一行
 
[root@openstack ~]# apachectl graceful //重新载入配置文件
 
在浏览器输入 192.168.1.10
输入用户名admin
输入密码:a
 
//登录成功
 
 


(责任编辑:IT)
------分隔线----------------------------