Murano环境搭建、使用介绍和思考

原创 2015年06月02日 18:01:55
  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)
没有统的对外接种平台林立(OpenShift,CloudFundry,GAESAE一; 
(4)应用上
PaaS难,没有规范的应用发布标准

  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版本太低的问题

   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应用为例,虚拟机启动后需要执行如下脚本:
  1. sudo apt-get update
  2. sudo apt-get -y install apache2

  3. if [[ $1 == "True" ]];
  4. then
  5.     sudo apt-get -y install php5
  6. fi

  7. 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"
  8. 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
  1. ##升级python-openstackclient
  2. sudo pip install python-openstackclient --upgrade



Murano实践之package分析

1、murano package概述murano package 中包含Classes、Resources、UI三个文件夹和manifest.yaml、logo.png两个文件,其中manifest....
  • hhp_hhp
  • hhp_hhp
  • 2015年09月24日 09:44
  • 1154

手动安装OpenStack-Murano和Murano-dashboard

一、 环境准备 搭建Murano和Murano-dashboard是在Red Hat Enterprise Linux Server release 7.1 (Maipo)上搭建的,之前这个环境已经搭...
  • lanceyang1992
  • lanceyang1992
  • 2015年08月25日 10:53
  • 1569

翻译Murano—OpenStack,来自wiki.openstack.org/wiki/Murano(2015.7.3Update)

Murano英文资料地址:wiki.openstack.org/wiki/Murano 翻译水平有限,仅限自己学习记录所用。 一、Murano     Murano项目给OpenStack项目...
  • lanceyang1992
  • lanceyang1992
  • 2015年06月17日 10:17
  • 771

OpenStack Mitaka 版本不可不知的53个新特性

OpenStack Mitaka 版有三大主题:优化的用户体验、更好的管理性和扩展性。这一版本总共有上百个新特性和变更(Mirantis 的 OpenStack Mitaka 视频介绍了其中183个)...
  • zhengmx100
  • zhengmx100
  • 2017年01月24日 09:25
  • 1545

Murano环境搭建、使用介绍和思考

murano是OpenStack的Application Catalog服务,推崇AaaS(Anything-as-a-Service)的概念,通过统一的框架和API实现应用程序快速部署和应用程序生命...
  • u010571844
  • u010571844
  • 2015年11月17日 21:37
  • 665

如何使用murano的PL语言

声明: 本博客欢迎转载,但请保留原作者信息! 作者:柯晓东 团队:华为杭州OpenStack团队最近在用Murano来部署应用,关于Murano包及PL语言的使用,这里总结一下,便于后来者。先说...
  • canxinghen
  • canxinghen
  • 2017年03月12日 12:49
  • 1090

Openstack-Murano应用包

Murano Package是Murano部署应用的基础,Package本身不包含任何的安装包,只是描述了应用的一些基本属性等信息 标准的Murano Package长相如下:drwxr-xr-x ...
  • iov_aaron
  • iov_aaron
  • 2017年11月09日 16:28
  • 103

OpenStack Newton 版本不可不知的53个新特性

原文链接:53 new things to look for in OpenStack Newton OpenStack 版本代号为 Newton 刚刚发布了,这已经是OpenSt...
  • zhengmx100
  • zhengmx100
  • 2017年01月24日 09:30
  • 1416

OpenStack Pike 版本中的 53 个新功能盘点

我们都在期待 OpenStack 第16个社区版本 Pike,它在08/30发布。现在是我们传统节目时间了,那就是从这个版本中概括出53个核心功能。...
  • dylloveyou
  • dylloveyou
  • 2017年09月06日 13:49
  • 877

在Devstack上快速部署Murano和使用

1.Murano installation      1.1 download devstack source code from github             git clone...
  • lanceyang1992
  • lanceyang1992
  • 2015年11月13日 14:59
  • 603
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Murano环境搭建、使用介绍和思考
举报原因:
原因补充:

(最多只允许输入30个字)