[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
Murano环境搭建、使用介绍和思考
时间:
2015-06-03 02:19:43
阅读:
345
评论:
0
收藏:
0
[点我收藏+]
murano是OpenStack的Application Catalog服务,推崇AaaS(Anything-as-a-Service)的概念,通过统一的框架和API实现应用程序快速部署和应用程序生命周期管理的功能,降低应用程序对底层平台(OpenStack层和虚拟化层)的依赖。
目前,容器技术的火爆使沉默已久的PaaS焕发了青春,各种概念曾出不穷,比如CaaS(Container-as-a-Service),ePaaS(elastic PaaS),其核心思想就是通过通过Container打包应用。仔细想想,过去几年PaaS一直不瘟不火,或者直白一点在IaaS面前显得那么鸡肋,总结起来主要有以下几点原因:
(1)严重依赖IaaS层的实现,比如需要IaaS层提供服务编排和弹性扩展的功能;
(2)处于SaaS和IaaS的夹缝中,很多功能SaaS层和IaaS实现起来更方便;
(3)
没有统
一
的对外接
口
,
各
种平台林立
(O
penShift,CloudFundry,GA
E
,
S
A
E
)
,
接
口
不
统
一;
(4)应用上
Paa
S
难,
没有
规范的应用发布标准
;
Container的出现,彻底解决了(1)和(2)两个问题,而且提供了更好的用户体验(部署快,性能好),并且能够反过来蚕食SaaS和IaaS的空间(比如CaaS和AaaS的概念)。但是(3)和(4)仍然实现是最需要解决的两个核心问题:标准的接口和标准的应用发布流程。murano针对这两个问题提出的解决框架:标准的对外API(
OpenStack API
)、标准的应用打包规范(http://murano.readthedocs.org/en/latest/articles/app_pkg.html)和标准的应用生命周期管理流程。
1. DevStack安装部署murano
(1) 从https://github.com/openstack/murano/tree/master/contrib/devstack处下载extras.d和lib下的文件,然后执行如下命令
$ cp lib
/
murano $
{
DEVSTACK_DIR
}
/
lib
$ cp lib
/
murano
-
dashboard
{
DEVSTACK_DIR
}
/
lib
$ cp extras
.
d
/
70
-
murano
.
sh
{
DEVSTACK_DIR
}
/
extras
.
d
(2)编写localrc文件
DATABASE_PASSWORD
=
123456
RABBIT_PASSWORD
=
123456
SERVICE_TOKEN
=
123456
SERVICE_PASSWORD
=
123456
ADMIN_PASSWORD
=
123456
disable_service n
-
net
enable_service q
-
svc
enable_service q
-
agt
enable_service q
-
dhcp
enable_service q
-
l3
enable_service q
-
meta
enable_service q
-
lbaas
enable_service q
-
vpn
DEST
=
/
home
/
OpenStack
/
workspace
DATA_DIR
=
$
DEST
/
data
SERVICE_DIR
=
$
DEST
LOGDIR
=
/
home
/
OpenStack
/
workspace
/
logs
LOGFILE
=
$
LOGDIR
/
stack
.
sh
.
log
VERBOSE
=
True
LOG_COLOR
=
True
SCREEN_LOGDIR
=
$
LOGDIR
/
screens
Q_PLUGIN
=
ml2
ENABLE_TENANT_VLANS
=
True
LOGDAYS
=
1
#RECLONE
=
True
#OFFLINE
=
True
GIT_BASE
=
"http://github.com"
IMAGE_URLS
=
http
:
/
/
download
.
cirros
-
cloud
.
net
/
0
.
3
.
4
/
cirros
-
0
.
3
.
4
-
x86_64
-
disk
.
img
# Enable Heat
enable_service heat h
-
api h
-
api
-
cfn h
-
api
-
cw h
-
eng
# Enable Murano
enable_service murano murano
-
api murano
-
engine
2. 安装过程遇到问题
(1)如果之前通过devstack安装过openstack,可能存在依赖的pip包和python-xxxclient版本太低的问题
##升级python
-
openstackclient
sudo pip install python
-
openstackclient
-
-
upgrade
具体错误参见文章《
openstack image list: error: unrecognized arguments: --property status=active
》
(2)目录权限问题: ~/.cache/pip目录没有写入的权限
3. Murano使用总结
这里先简单的介绍murano的使用,对于具体的原理性的知识后续专门进行介绍。
murano成功搭建完成后,会在horizon多出murano相关的菜单,如下图所示。
用户使用murano,首先需要将自己的applications或者mirantis application catalog的应用导入,下面以从mirantis application catalog导入应用为例,目前支持三种类型的应用导入方式:文件、Repository和URL。
(1)文件,指的是将应用按照murano的应用打包规范做成的zip包
(2)Repository,指的的应用的源码的git repository,可以自己搭建本地的repo,也可以使用mirantis的
(3)URL,指的是从源码按照murano的应用打包规范做好的zip包的网络地址,murano可以直接从网上下载并导入
下面以URL的方式为例,从murano的官方
app catalog
导入应用。下图从apps.openstack.org导入Apache和Cloudfoundry的zip包。
导入后应用就可以在application catalog中看到了,如下图所示。
murano有Enviroment的概念,意思是一组application的集合,比如我们可以把相互关联的应用定义成在同一个Env中,也可以把功能相似的应用定义在同一个Env中,个人感觉有点微服务的概念,即多个应用构成一个服务。比如创建一个PaaS的enviroment,并在这个环境中添加CloudFoundry应用。下面首先创建一个Env,然后就可以通过拖拽的方式向这个环境中添加application,完成一键式安装和部署,如下图所示。
拖入应用后,要求配置应用的需要的资源信息,如下图所示。
点击部署之后,可以看到应用开始部署,在orchistration中也能看到生成了对应的stack,并且还可以继续向这个env 中添加应用
最后可以通过murano查看当前应用的部署拓扑,如下图所示,拓扑显示这个apache应用有个external network的floating ip和一个nova instance两种资源组成。
另外,需要注意一个问题,这里的floating ip要求能够访问公网,因为应用的部署过程需要从公网下载一些安装包,以这个apache应用为例,虚拟机启动后需要执行如下脚本:
sudo apt
-
get update
sudo apt
-
get
-
y install apache2
if
[
[
$1
=
=
"True"
]
]
;
then
sudo apt
-
get
-
y install php5
fi
sudo iptables
-
I INPUT 1
-
p tcp
-
m tcp
-
-
dport 443
-
j ACCEPT
-
m comment
-
-
comment
"by murano, Apache server access on HTTPS port 443"
sudo iptables
-
I INPUT 1
-
p tcp
-
m tcp
-
-
dport 80
-
j ACCEPT
-
m comment
-
-
comment
"by murano, Apache server access on HTTP port 80"
后续文章将从代码和原理上解释murano的工作机制等相关知识。
————————————————————
email: ustc.dylan@gmail.com
微博:@Marshal-Liu
Murano环境搭建、使用介绍和思考
原文:http://blog.chinaunix.net/uid-20940095-id-5064016.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!