Openstack-Murano应用包

13、OpenStack 中自云就绪应用的发展:Murano 助力应用部署 本文介绍了 OpenStack 中 Murano 项目的发展及其在云就绪应用部署中的作用。Murano 作为 OpenStack 的应用目录和编排服务,简化了应用的部署流程,支持多角色协作,并兼容多种应用格式。文章详细解析了 Murano 的架构、集成步骤以及部署自包含应用的实践方法,同时展望了其未来的发展方向,如增强容器编排支持和深化与其他 OpenStack 服务的集成。 阅读详情

Murano Package是Murano部署应用的基础,Package本身不包含任何的安装包,只是描述了应用的一些基本属性等信息
标准的Murano Package长相如下:

drwxr-xr-x 2 root root    34 Jul 26 14:55 Classes
-rw-r--r-- 1 root root 33332 May  8  2015 logo.png
-rw-r--r-- 1 root root  1273 Apr 18  2017 manifest.yaml
drwxr-xr-x 3 root root    48 Apr 12  2017 Resources
drwxr-xr-x 2 root root    20 Jul 26 14:57 UI

[root@localhost Apache]# tree
.
├── Classes
│   └── ApacheHttpServer.yaml
├── logo.png
├── manifest.yaml
├── Resources
│   ├── DeployApache.template
│   └── scripts
│       └── runApacheDeploy.sh
└── UI
    └── ui.yaml

https://docs.openstack.org/developer/murano/appdev-guide/developer_index.html

一、manifest.yaml

@1. Package的Type主要分为2类,Application和Library
这个比较好理解,
Library是以一个库,不能用来部署,主要包含了一些公共方法和属性,用于被Application继承和使用,Murano平台提供了很多已有的library可以直接使用

Application才是可以被Murano直接deploy的包
@2. FullName、Name、Description等都是描述Package的基本属性;
@3. Require表示Package之间的依赖,后续描述;
如下是Http Apache Package的manifest.yaml

二、$class.yaml
manifest.yaml中的Classes定义了对应的yaml文件,这个文件主要存放在Classes目录下

@1. namespaces
名称空间的声明,指定了可以在类体中使用的前缀,以使长类名称更短
举例说明不废话:
namespace中定义 –> std: io.murano
则在后面中的引用 –> std:Application 相当于是io.murano.Application
特殊说明: “=”相当于是current namespace, 所以MyClass相当于是com.awcloud.package.MyClass
@2. Name
@3. Extends
继承的Class, 目前基本上都是继承的io.murano.Application
@4. Properties
声明的参数,主要包含如下几部分
名称: – 参数名称
Contract: 声明类型,常见的包括如下,详细参考:http://muranotest.readthedocs.io/en/latest/articles/murano_pl.html#contract
类型 说明

$.int()    整形
$.string() 字符串
$.string().notNull()   非空字符串
$.bool()   布尔类型(true/false) 0会被转为false,其他转为true
$.class(ns:ClassName)  类
$.class(ns:ClassName).notNull()    非空类

Usage:声明作用域,包括如下
属性类型 说明
In 输入参数,该参数只能通过UI设置,不能在MuranoPL代码里面修改。这是类属性的默认类型。
Out 输出参数,该参数只能在MuranoPL代码里面修改,不能通过UI设置。
InOut 既能由UI设置,又能在MuranoPL代码修改的参数。
Const 和In类似,不同的是只能被用户设置一次。
Runtime 和Out类似,不同的是不会被序列化。
Default:默认值
@5. Method
声明的方法及实现, 默认必须包含的方法:
initialize: 初始化方法,主要是获取依赖的环境信息
deploy: 应用部署的主方法
Murano PL是一种用Python解释的类yaml的语言,它有如下的约束:

1. 赋值用冒号,且冒号后要跟空格 
2. 等号表示判断 
3. 逗号不能在字符串内使用 
4. 变量要用$作为前缀 
5. 单个$ 就是Java里面的this,而$xxx 表示变量xxx,$.xxx 表示类变量xxx

基本的用法:
1) if语句

      -If:not$.getAttr(deployed, false)
        Then:
          -$.setAttr(deployed, true)
        Else:
          -$._environment.reporter.report($,"application has deployed")

每个环境只能部署一次,本段代码用于判断是否已经部署,防止重复部署
4) 并发执行(可指定并发数)

- Parallel:
  - $.masterNode.deployInstance()
  - $.minionNodes.take($.nodeCount).pselect($.deployInstance())
  - $.gatewayNodes.take($.gatewayCount).pselect($.deployInstance())

5.)调用脚本

   -$resources: new(sys:Resources)
   -$template:$resources.yaml('DeployOrionChef.template').bind(dict( port => $.port))
   -$result:$.instance.agent.call($template, $resources)

部署APP基本的步骤:
1. 新增安全组暴露应用的端口信息
2. 创建虚拟机
3. 在虚拟机中执行安装APP的脚本

14、深入探索OpenStack中Murano应用开发与部署 本文深入探讨了在OpenStack环境中使用Murano进行云应用的开发与部署。详细介绍了Murano应用的结构、开发流程以及从开发者和消费者两个视角的部署过程。通过MuranoPL编程语言和丰富的UI配置,开发者可以实现高度定制化的应用,而用户则能便捷地部署和管理应用。同时,文章强调了持续集成和安全检查在应用开发中的重要性,并展望了OpenStack及其相关技术的未来发展。 阅读详情

相关推荐

murano, OpenStack的应用程序目录.zip

murano, OpenStack的应用程序目录 团队和知识库标签 Murano项目引入了应用程序目录,它允许应用程序开发人员和云管理员在可以浏览分类目录中发布各种云。 云用户--包括无经验的--可以以使用目录编写可以靠的应用程序环境,并按按钮。项目资源Murano官方文档

OpenStack Murano Dashboard(Kilo)安装

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33670713的博客 284

openstack-murano

openstack-murano JClouds1.8.0版本中添加了Murano模板,接口适应开发环境。

Murano简介和源码方式安装

murano由来 OpenStack在H版本到K版本的摸索中,对整合容器的思路逐步清晰与成熟,温哥华OpenStack Summit上,Container/Docker成为一大关注焦点,随后发表的白皮书《Exploring Opportunities:Containers and OpenStack》阐明了OpenStack今后深度整合容器的方式与方向。基于这份白皮书,Liberty版本发布时,...

mark's technic world 514

murano-agent:Murano的VM端代理。 在opendev.org上维护的代码镜像

团队和存储库标签 村野代理 Murano代理是VM端的来宾代理,它接受来自Murano引擎的命令并执行它们。 使用DiskImage-Builder建立映像 名为contrib / elements的文件夹包含元素,用于构建包含使用Murano所需的Murano Agent的映像。 可以使用以下命令构建包含代理的基于Ubuntu的映像并将其上传到Glance: $ git clone https://opendev.org/openstack/diskimage-builder.git $ git clone https://opendev.org/openstack/murano-agent.git $ export ELEMENTS_PATH=murano-agent/contrib/elements $ export DIB_CLOUD_INIT_DATASOURCES=Open

基于STM32的HC-SR04超声波模块测距(新手级)

本人是嵌入式新手,学习了STM32的部分内容,最近想找些项目做,然后顺便学习了一下HC-SR04超声波模块,学习过程中也参考了一些大佬的文章。本文记录了自己的学习方法和学习过程,同时也希望能和各位大佬交流讨论。

weixin_63758495的博客 2206

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

murano是OpenStack的Application Catalog服务,推崇AaaS(Anything-as-a-Service)的概念,通过统一的框架和API实现应用程序快速部署和应用程序生命周期管理的功能,降低应用程序对底层平台(OpenStack层和虚拟化层)的依赖。   目前,容器技术的火爆使沉默已久的PaaS焕发了青春,各种概念曾出不穷,比如CaaS(Container-as

u010571844的专栏 1196

Android SDK安装教程(超详细),从零基础入门到精通,从这篇开始_android sdk下载安装

Android SDK安装教程(超详细),从零基础入门到精通,从这篇开始_android sdk下载安装

Jinmindong 5015

手动安装OpenStack-Murano和Murano-dashboard

一、 环境准备 搭建Murano和Murano-dashboard是在Red Hat Enterprise Linux Server release 7.1 (Maipo)上搭建的,之前这个环境已经搭建了Openstack的环境,因此一些系统的工具包也安装过了,例如:gcc,python-pip,mysql。 二、在Devstack上配置安装Murano 1.首先需要下载dev的包,

lanceyang1992的专栏 2599

常见的电容有哪些

电容在电路板中非常常见,类别纷繁复杂,本文化繁为简,主要介绍下常见电容。

qq_40170041的博客 768

[网络安全提高篇] 一二九.Powershell恶意代码检测 (5)混淆和反混淆 [上]

前文介绍了如何利用MS Defender实现恶意样本家族批量标注。这篇文章将继续讲解Powershell恶意代码检测,主要包括PowerShell混淆与反混淆内容,首先结合Invoke-Obfuscation工具详细介绍PowerShell代码混淆方法,再结合PowerDecode工具阐述解混淆方法。该研究将为后续的恶意软件家族分类或溯源提供帮助。未完待续,基础性文章,希望您喜欢,且看且珍惜。

杨秀璋的专栏 1541

Openstack Murano(kilo)二次开发之添加Volume

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33984032的博客 198

【Unity大规模RTS/攻城战框架】Large Scale Combat System - RTS Sieges深度解析

本文介绍了Unity专业级大规模RTS战斗框架Large Scale Combat System(LSCS)。该系统通过Job System+Burst技术解决了万人级单位的性能问题,提供完整的RTS操作体系、动态阵型系统、战术AI和攻城战功能。其亮点包括可破坏城门、行走城墙、战术AI配置系统,支持URP渲染管线,适用于Total War风格的大规模兵团对战项目。LSCS不仅提供核心战斗系统,还包含UI、小地图等配套模块,是Unity中少有的专业级RTS解决方案,特别适合需要深度战术玩法和大规模战斗的开发者

2403_88403568的博客 1334

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

Murano英文资料地址:wiki.openstack.org/wiki/Murano 翻译水平有限,仅限自己学习记录所用。 一、Murano     Murano项目给OpenStack项目引进了一个应用程序目录,使得应用的开发人员和云管理人员可以在可浏览的分类目录里发布各种云就绪的(cloud-ready)应用。云的使用者,即使是毫无经验的人,也能够通过按下按钮就可以用这

lanceyang1992的专栏 1159

【Java基础知识 1】Java入门级概述

优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。

学Java,找哪吒 16万+

C# 开发实战:深度解析 13.56MHz 射频卡读写应用

本文详细介绍了如何在 C# 环境下开发 13.56MHz 射频卡的读写应用。通过 ACR122U 作为硬件设备,结合 C# 提供的 COM 组件或 SDK,我们能够实现对射频卡的读取与写入功能。在实际开发中,开发者还需要根据具体应用场景选择合适的卡片类型与设备,并注意性能优化和异常处理。随着技术的发展,RFID 技术的应用场景会越来越广泛,开发者可以根据不同需求,灵活扩展读写功能,实现更加智能化和自动化的系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1602

Murano实践之package分析

1、murano package概述murano package 中包含Classes、Resources、UI三个文件夹和manifest.yaml、logo.png两个文件,其中manifest.yaml是必须包含的文件。 package解析的入口是manifest.yaml,概括的定义了这个package是什么和有什么样的用途;Classes中定义了这个package中各种运行的方法或者是应

hhp_hhp的专栏 2118

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

murano原理解析

转自:https://iaaslee.blogspot.com/2015/10/openstack-application-catalog-murano.html?view=snapshot 如题,本文的着重点在于讨论Murano的工作原理和设计。所以内容较为晦涩和枯燥。根据前面的内容,我们很容易得出Murano在OpenStack环境中的数据流,在整个创建、构建、直到虚拟机/集群开始运行的整个过...

yyy987456123的博客 1362

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

如何使用murano的PL语言

声明: 本博客欢迎转载,但请保留原作者信息! 作者:柯晓东 团队:华为杭州OpenStack团队最近在用Murano来部署应用,关于Murano包及PL语言的使用,这里总结一下,便于后来者。先说Murano包,典型的Murano包如下图所示。含有UI的称为Application,它能继承library,但是不能被其他Application继承了。library不含UI,一般是平台提供,里面含有

Hcloud 2430

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

在Devstack上快速部署Murano和使用

1.Murano installation      1.1 download devstack source code from github             git clone https://github.com/openstack-dev/devstack.git       1.2 download some files that installing m

lanceyang1992的专栏 1027

Murano.conf的配置

用命令行安装Murano的时候,需要在安装之前编辑Murano.conf文件进行配置 Murano的doc给出的描述见:Installing and Running Manually 现在把上面的link给出的配置模板拿出来,并且说明一下用到了哪些参数 [DEFAULT] debug = true verbose = true rabbit_host = %RABBITMQ_

lanceyang1992的专栏 717

OpenStack 容器手册(二)

Magnum 是一个 OpenStack 服务,由 OpenStack 容器团队于 2014 年创建,旨在实现容器编排引擎COE),提供在 OpenStack 中将容器部署和管理为一流资源的能力。目前,Magnum 支持 Kubernetes、Apache Mesos 和 Docker Swarm COE。Magnum 使用 Heat 在 OpenStack 提供的 VM 或裸金属上进行这些 COE 的编排。它使用包含运行容器所需工具的 OS 映像。

龙哥盟 1723

Openstack murano NoPackageForClassFound: Package for class "io.murano.Environment" is not found

在部署murano environment 时 murano-engine.log 报出如下错误:   NoPackageForClassFound: Package for class "io.murano.Environment" is not found   原因是未将io.murano Classes 包上传至murano环境中。解决办法如下: 环境中找到  murano...

Nicholas的专栏 449
上一篇: Python笔记(九) -- Python HttpClient使用requests库发送http消息
下一篇: Openstack Cinder源码分析-理解Taskflow
Aaron.com
博客等级 码龄17年 25粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值