您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
初探OpenStack Mitaka
 
作者:徐超  来源:CSDN  发布于 2016-4-13
  4806  次浏览      15
 

北京时间4月8日,OpenStack社区如期发布了OpenStack的第13个版本——Mitaka,新版本更多聚焦于可管理性、可扩展性和终端用户体验方面。OpenStack作为一个IaaS基础设施架构的集大成者,通过支持、集成众多插件的方式,向用户提供更多可选择的功能和需求,比如SDN、NFV、Container等。OpenStack已经成为众多企业和服务器提供商的云平台选择之一。

由于,笔者更多从事的是OpenStack研发测试体系相关的CI-CT-CD工作。因此,在笔者看来,OpenStack另一个非常成功的一方面是其面向所有人的参与、贡献和交流等平台。为了协调这些,OpenStack社区构建和维护了一套非常完整的研发测试系统。这些基础设施,无疑是奠定OpenStack取得成功的重要基石之一。

鉴于,OpenStack的开发和体验,一般是使用Devstack的方式自动化部署。因此,这里基于自己的实践过程,总结出一份本日Release的Mitaka完整安装过程。

与其他资料所不同的是,本次安装较详细的给出了安装后的相关网络配置,相信能给初学或体验者带来更好的体验。

一.环境

环境:

1.列表内容

2.一台CentOS 7.2 VM;

3.一张NAT网卡;

4.内存4G;

5.ip地址10.10.10.129;

二.部署

1、关闭iptables防火墙和selinux

# vim /etc/selinux/config
#SELINUX=enforcing       //注释掉
SELINUX=disabled         //增加

# yum -y install iptables-services
# systemctl disable iptables
# reboot

2、安装epel源和git

# yum -y install epel-release git
# yum -y install net-tools

3、准备Devstack 
下载代码:

# cd /home
# git clone https://github.com/openstack-dev/devstack.git -b stable/mitaka  //指定clone mitaka版本

4、需要创建stack用户运行

# cd /home/devstack/tools/
# bash ./create-stack-user.sh

5、修改devstack目录权限,让stack用户可以运行

# chown -R stack:stack /home/devstack
# chmod 777 /opt/stack -R

6、切换到stack用户下

# su stack
$ cd /home/devstack

7、编辑创建localrc文件,添加以下内容:

# Misc
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=$ADMIN_PASSWORD

# Target Path
DEST=/opt/stack

# Enable Logging
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=$DEST/logs

KEYSTONE_TOKEN_FORMAT=UUID

# Nova
enable_service n-novnc n-cauth

# Neutron
disable_service n-net
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
ENABLED_SERVICES+=,q-lbaas,q-vpn,q-fwaas
# Swift
#enable_service s-proxy s-object s-container s-accounts
#SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5

# Cinder
VOLUME_GROUP="cinder-volumes"
ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak

# Ceilometer
#enable_service ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector 
ceilometer-api
#enable_service ceilometer-alarm-notifier ceilometer-alarm-evaluator

# Heat
enable_service heat h-api h-api-cfn h-api-cw h-eng
enable_service tempest

# Trove
enable_service trove tr-api tr-tmgr tr-cond

# Sahara
enable_service sahara

# Murano
enable_plugin murano git://git.openstack.org/openstack/murano
enable_service murano-cfapi
enable_service g-glare
MURANO_APPS=io.murano.apps.apache.Tomcat,io.murano.apps.Guacamole
enable_service murano murano-api murano-engine

HOST_IP=10.10.10.129 //本机IP地址 

FIXED_RANGE=10.0.0.0/24 //私有IP网段 

NETWORK_GATEWAY=10.0.0.1 //私有网段网关

注意:若需要安装其他服务,请参考其他资料。

8、运行Devstack,执行安装

$ ./stack.sh

注意:使用的是stack用户运行。

9、默认Devstack创建 admin和demo两个用户,通过设置环境变量可以进行相关操作。进入到/home/devstack目录下。 

admin 用户:

$ source openrc admin admin

demo 用户:

$ source openrc demo demo

10、其他 

安装失败时,可以再次执行安装命令。

$  ./unstack.sh && ./stack.sh

11、配置网络 

由于在Devstac安装过程中,将br-ex的地址设置成了其他ip,因此需要将br-ex地址清除掉,重新配置。

$ sudo ip addr flush br-ex

或者

$ sudo ovs-vsctl del-br be-ex

之后将物理网卡eno16777736(即eth0)作为br-ex的port,之后创建的虚拟机就可以通过eth0访问网络,也能登陆Dashboard了,Host也可以通过floating ip访问虚拟机。 

这里,我给出自己的配置内容

# cat ifcfg-eno16777736
TYPE=OVSPort
DEVICE=eno16777736
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes

# cat ifcfg-br-ex 
TYPE=OVSBridge
DEVICE=br-ex
DEVICETYPE=ovs
BOOTPROTO=static
IPADDR=10.0.0.9
NETMASK=255.255.255.0
GATEWAY=10.0.0.2

# ovs-vsctl add-port br-ex eno16777736 ;systemctl restart network

PS:因为,一般VM是通过br-ex外部网桥的ip出外网的,所以,必须保证能ping通。

1.关闭Selinux、iptables;

2.如果部署的是GRE、VXLAN网络,使用ip a命令,查看br-ex的ip地址,是否能ping通;

3.使用ovs-vsctl show命令,查看网桥br-ex的设置情况。这里的eno16777736是我的实际网卡,即eth0,如下图所示:

图片描述

3)ip a查看br-ex ip地址

# ip a | grep br-ex

14:br-ex:< BROADCAST,MULTICAST,UP,LOWER_UP > mtu 1500 qdisc noqueue state UNKNOWN 
inet 10.10.10.129/24 brd 10.10.10.255 scope global br-ex

最后,我们使用这个ip地址登陆Dashboard!

三.Horizon有哪些变化

1.登录Dashboard 

http://10.10.10.129/dashboard 

用户名:admin 

密码:admin 

图片描述

2. Horizon有哪些变化

1)Keystone——身份管理变化 
Mitaka版本界面中,新增加了组、域和角色的操作功能。原来只能通过命令行操作的,现在也能通过界面来实现了。 
组:就是把用户放在一个组里,一个用户可以属于多个组,这样可以方便进行权限管理。 
角色:也就是给创建项目的用户,分配member、admin的roles。 
域:将用户和其他组使用的基础设施相隔离,具体管理的有组和组下的用户。

如下图所示

图片描述

2)Cinder——云硬盘一致性组

图片描述

3)Horizon——添加开发者(Bootstrap主题)面板 

Mitaka版本新增加的Bootstrap主题预览面板功能,可以让用户在Default和Bootstrap两种主题中自由切换,并且可以在Bootstrap主题中进行自由配置。

图片描述

4)Nova——主机集合 

主机集合,就是把计算节点分组,一个计算节点只能属于一个组。这样我们在资源调度上可以更加灵活,根据需求把创建的虚拟机放到相应的主机集合里。主机集合,用户是看不到的,是管理员通过设置,调度生效。通常,适用于大规模的环境。

图片描述

5)Nova——元数据定义 

可以让用户导入自定义的元数据和删除等。

图片描述

6)其他 

此外,云主机类型中,也新增加了许多字段,比如RX/TX 因子、Swap磁盘等。

3.一些建议 

Devstack安装trove组件时,会默认下载mysql.qcow2镜像。为了提高安装进度,可以事先自己下载,保存到该目录下/home/devstack/files/,下载地址:http://tarballs.openstack.org/trove/images/ubuntu/mysql.qcow2。

如果你安装和配置成功了,请立即对该虚拟机平台做个快照,方便以后做各种操作后出现问题时,利于恢复;并避免因宿主系统关机,导致的不必要问题。

四.Screen的使用

既然,我们一般使用DevStack部署OpenStack环境来进行开发,那么掌握Screen的使用就是必须的了。

Screen是一个窗口命令,当你需要离开电脑一阵,然后回来再继续在这个窗口工作,可以启动一个screen,离开时通过screen -d xxx退出这个窗口,窗口中的任务会在后台执行。回来后可以通过screen -x xxx再次打开窗口继续工作。

比如scp一个大文件的时候,如果你不是在screen环境,退出终端或者ssh连接的话,这个任务将终止。使用screen后,screen -d这个任务就在后台运行,回来后再ssh连接到服务器,然后screen -x xxx再打开刚才的那个窗口,可以看到任务继续再执行。

Devstack的所有进程都在 stack用户的screen中运行,可以通过screen -x stack重新打开窗口,打开后最下边会有一行工具栏显示所有在这个窗口中运行的任务,可以通过:

1.ctrl+a+n切换下一个任务,

2.ctrl+a+p切换前一个任务,

3.crtl+a在最近两次任务之间切换;

4.Ctrl+a+d退出当前的screen;

切换到某一个任务时,比如需要重启这个服务,可以ctrl+c先停掉,通过向上箭头查阅命令历史记录,第一条应该是启动这个服务的命令,再次执行,这个任务开始运行。

调试python代码特别有用,import pdb;pdb.set_trace()到某一个文件后,然后再次运行这个任务,执行到断点是,任务窗口中就可以调试这个任务了。至于pdb的用法这里就不介绍了。

1)列出screens:

FROM mhart/alpine-node:4

RUN apk add --no-cache make gcc g++ python

RUN apk add --no-cache imagemagick

WORKDIR /src
ADD . .
RUN npm install --registry=http://registry.npm.taobao.org/

EXPOSE 3000
CMD ["npm","start"]

2)进入screen:

FROM mhart/alpine-node:4

RUN apk add --no-cache make gcc g++ python

RUN apk add --no-cache imagemagick

WORKDIR /src
ADD . .
RUN npm install --registry=http://registry.npm.taobao.org/

EXPOSE 3000
CMD ["npm","start"]

图片描述

3)中断screen session:

$ screen -S 51432 -X quit

 

   
4806 次浏览       15
 
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
 
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
 
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件的思考
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS
更多...   
相关培训课程

云计算原理与应用
Windows Azure 云计算应用

摩托罗拉 云平台的构建与应用
通用公司GE Docker原理与实践
某研发中心 Openstack实践
知名电子公司 云平台架构与应用
某电力行业 基于云平台构建云服务
云计算与Windows Azure培训
北京 云计算原理与应用