使用 REST API 启动 Apache ***lyn 应用程序
Posted
技术标签:
【中文标题】使用 REST API 启动 Apache ***lyn 应用程序【英文标题】:Apache ***lyn Application Launch using REST API 【发布时间】:2015-05-26 07:08:57 【问题描述】:我们可以通过传递 YAML 文档来使用 ***lyn REST API 启动虚拟机吗?
YAML 示例:
name: simple-vm
location:
...
services:
- type: ***lyn.entity.basic.EmptySoftwareProcess
name: VM
provisioning.properties:
user: b-user
privateKeyFile: ~/.ssh/id_b-user
osFamily: Ubuntu
privateKeyFile 会发生什么?我们可以将它作为参数传递吗?
【问题讨论】:
【参考方案1】:是的,您可以通过将 YAML 发布到 /v1/applications
来部署蓝图。
但是,privateKeyFile
必须是布鲁克林机器可以访问的 URL,如果它远程运行,当然不会访问您机器上的私钥。假设您不想将私钥放在可公开访问的 URL :) 您有两种选择。
添加私钥数据配置
配置密钥privateKeyData
胜过privateKeyFile
并允许您指定实际的私钥数据。例如:
name: simple-vm
location: ...
services:
- type: ***lyn.entity.basic.EmptySoftwareProcess
name: VM
provisioning.properties:
user: b-user
privateKeyData: |
-----BEGIN RSA PRIVATE KEY-----
MIIEblahblahblahM1gknxGfMNxsIzi6bdrGPtCS4NKrTIIzi6bdrGPtCS4NKrTI
Izi6bdrGPtCS4NKrTImGqeK0xUFa98WhVS0gHbdX8ebi+RxfOYM5w7NOLlzVzOrE
...
-----END RSA PRIVATE KEY-----
osFamily: Ubuntu
之后的布鲁克林版本0.7.0-M2-incubating
将尝试推断公钥数据,但如果您使用0.7.0-M2
或推断不起作用,您也可以提供publicKeyData
。
添加额外的公钥 URL
让你的私钥不需要与布鲁克林服务器共享的更好机制是让布鲁克林生成自己的凭据以连接到机器,但告诉它以authorized_keys
的形式安装你的公钥另外,这样你就可以连接了。配置密钥extraSshPublicKeyUrls
需要一个 URL 字符串列表,所以你所要做的就是把你的公钥放到网上(这比把你的私钥放到网上更安全!)。
name: simple-vm
location: ...
services:
- type: ***lyn.entity.basic.EmptySoftwareProcess
name: VM
provisioning.properties:
user: b-user
extraSshPublicKeyUrls:
- http://me.com/my/public/key.pub
osFamily: Ubuntu
这也是在0.7.0-M2-incubating
0.7.0-M2-incubating
之后引入的,因此您需要获得recent snapshot build 才能使用此功能。
【讨论】:
太棒了。谢谢@partlycloudy。在 S3 中使用***lyn-0.7.0-SNAPSHOT
和 extraSshPublicKeyUrls
测试。以上是关于使用 REST API 启动 Apache ***lyn 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
带有 Swagger UI 的 Apache Wicket REST
使用 REST API 创建 Apache kylin 多维数据集
启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止