文档章节

Tutorial——使用Maven开发Cloud Driver

hjswust
 hjswust
发布于 2013/04/11 20:47
字数 751
阅读 152
收藏 2

Before You Start

开发之前,应有以下准备

  • Apache Maven
  • Cloudify
  • 调用云API的安全凭证,使用SSH访问你的机器,如果需要访问您的云的存储。
    例如,通过以下步骤获得OpenStack的安全凭证:
    1. Request a login, and its corresponding access key and secret key, from your Openstack administrator. In the user section of the cloud driver configuration file, the access key and secret key correspond to the user and the apiKey attributes respectively.
    2. Generate a SSL key pair file (required for bootstrapping machines) using HybridFox, and save it in the cloud driver’s upload folder. In the user section of the cloud driver configuration file, the keyFile attribute is set to the path of the SSL key pair file.
  • Create cloud images

配置Maven pom 文件

  1. 添加依赖的jar

    <dependency>

    <groupId>org.cloudifysource</groupId>

    <artifactId>esc</artifactId>

    <version>2.3.1-RELEASE</version>

    </dependency>

    view rawpom_dependency.xmlThis Gist brought to you by GitHub.

  2. 添加Cloudify的Maven仓库

    <repository>

    <id>org.cloudifysource</id>

    <url>http://maven-repository.cloudifysource.org</url>

    </repository>

    view rawrepo.xmlThis Gist brought to you by GitHub.

创建Cloud Driver

You are now ready to develop your cloud driver. Create a new Java class that implements theorg.cloudifysource.esc.driver.provisioning.ProvisioningDriver interface. For examples, see Default Cloud Driver andOpenstack Cloud Driver.

配置Cloud Driver Configuration File

Next, configure the user and management templates sections of your cloud driver configuration file.

配置 user section

配置user, apiKey, and keyFile for your cloud.

user {

user Your_User_Here

apiKey Your_API_Key_Here

keyFile Your_PEM_File_Name_Here

}

view rawdriver_user.groovyThis Gist brought to you by GitHub.

配置 templates section

配置 management machines 各它相应的镜像

templates ([

SMALL_LINUX_32 : template {

imageId "221"

machineMemoryMB 1600

hardwareId "100"

}

])

view rawtemplates.groovyThis Gist brought to you by GitHub.

下一步, 配置managementMachineTemplate 属性,在recipe中用于manage machine的template:

cloud {

name = "openstack"

configuration {

className "org.cloudifysource.clouds.openstack.OpenstackProvisioningDriver"

managementMachineTemplate "SMALL_LINUX_32"

connectToPrivateIp true

}

view rawdriver.groovyThis Gist brought to you by GitHub.

打包并添加到Cloudify

最后, 打包你的cloud driver class, 并添加依赖的相应classes和resources。形成一个jar文件并放置到<cloudifyRoot>/lib/platform/esm 文件夹. 另外,放置你的cloud driver configuration文件各安全凭证到<cloudifyRoot>/tools/cli/plugins/esc 文件夹。

为了使cloud driver在你的云环境的机器中可用, 执行以下操作:

  1. 将你的cloud driver文件各Cloudify distribution文件一起共同重新打包。并将其保存到一个cloud maine可用的地方。
  2. 在已安装了Cloudify的机器中,编辑cloud driver configuration 文件, 在provider section, 指定cloudifyUrl属性(Cloudify安装源)作为Cloudify distribution 文件的位置。
    当你启动你的cloud, Cloudify会使用本地的cloud driver configuration文件,并将它传递给 bootstrapped cloud 以供应machines.

Overrides

在cloud driver的“upload”目录可能包含一个可选的”cloudify-overrides”子目录.如果存在,这个orerrides目录的内容会被拷贝到Cloudify的安装目录。这允许cloud管理员重写指定的Cloudify文件。例如,一个特定的日志配置文件可以放置在“upload/cloudify-overrides/config/gs_logging.properties”。这gs_logging.properties 文件将被拷贝到management machine并且会重写默认的Cloudify日志配置。这个文件也会被拷贝到其它任何的template中使用相同upload目录的服务machine(如果是启动的)。

在开发cloud driver时为了速讯测试,你可以将clouddriver jar放到你本地机器的<cloudName>/upload/Cloudify-overrides/lib/platform/esm 文件中,Cloudify将会上传它们,并从你本地机器供应machines 。

© 著作权归作者所有

上一篇: 剖析 Recipe
下一篇: Cloud Drivers开发
hjswust
粉丝 13
博文 50
码字总数 35806
作品 0
绵阳
私信 提问
Cloudify 架构——Architecture

1.How Cloudify Works Cloudify设计了任何应用可部署到任何的云中,使得企业、ISVs、托管服务供应商们都因为云的自动化和弹性管理,迅速获益。Cloudify通过对应用部署和运行进行额外的组织,...

hjswust
2013/04/24
0
0
可视化系统开发工具集 - X-Series

X-Series是一套轻量级的框架。包含好几个工具,各自解决不同场景的共性问题。每个工具都拥有基于Eclipse的图形化编辑器和基于标准maven依赖的运行时引擎。他们具有以下特点: 易于使用。基于...

赫杰辉
2017/04/27
0
1
Infinispan 7.2.0.Alpha1 发布,数据网格平台

Infinispan 7.2.0.Alpha1 发布,此版本主要是 atomic objects 和一些 bug 修复。 Bug 修复 [ISPN-5158] - Transaction rolled back but returns successful response [ISPN-5166] - During S......

叶秀兰
2015/02/27
273
0
项目协作管理--Mingle

Mingle 是关于项目的协作管理(非开源软件)。Mingle的独特之处以及它在敏捷项目管理和团队协作方面的强大功能包括: Mingle并不局限于敏捷方法论——它默认提供了三种软件开发模版(Scrum, ...

匿名
2008/11/10
6.9K
0
一名开源小白的Apache成长自述

今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大...

业界首个Apache微服务顶级项目
2018/06/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Knative Service 之流量灰度和版本管理

本篇主要介绍 Knative Serving 的流量灰度,通过一个 rest-api 的例子演示如何创建不同的 Revision、如何在不同的 Revision 之间按照流量比例灰度。 部署 rest-api v1 代码 测试之前我们需要...

阿里云云栖社区
6分钟前
1
0
代码管理平台git

22.5/22.6 单机上使用git 22.7 简历远程仓库 22.8 克隆远程仓库 22.9 分支管理 22.10 远程分支管理 22.11 标签管理 22.12 git别名 22.13 搭建git服务器 22.14/22.15 安装gitlab 22.16 使用g...

tobej
6分钟前
1
0
压测某HR系统,遇到的坑

遇到的问题:当多个线程组公用一个公共模块功能的时候(登录生成的cookies信息,文件的写入操作),此时出现跨域问题 场景分析: 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的...

覃光林
7分钟前
1
0
学习k8s——基本架构

对部署流水线有了个大致的认知之后,开始学习k8s k8s的基本架构 kubernateskubernates这个单词起源于古希腊,是舵手的意思,所以它的logo既像一个渔网,又像一个罗盘。K8S是它的缩写,用“8...

啊哈关关
19分钟前
1
0
好程序员分享JavaScrip数组去重操作实例小结

好程序员分享JavaScrip数组去重操作实例小结,这篇文章主要介绍了JavaScrip数组去重操作,结合实例形式总结分析了javascript针对数组的遍历、判断、去重等相关操作技巧,需要的朋友可以参考下。...

好程序员IT
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部