使用 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-incubating0.7.0-M2-incubating 之后引入的,因此您需要获得recent snapshot build 才能使用此功能。

【讨论】:

太棒了。谢谢@partlycloudy。在 S3 中使用 ***lyn-0.7.0-SNAPSHOTextraSshPublicKeyUrls 测试。

以上是关于使用 REST API 启动 Apache ***lyn 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

带有 Swagger UI 的 Apache Wicket REST

使用 REST API 创建 Apache kylin 多维数据集

用于保护 REST api 的 Apache Shiro

启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止

Apache Ranger REST API addUsersAndGroups 返回 404 未找到

Apache Shiro 正在破坏我的 Spring Boot Rest API 的 CORS 配置