使用REST API启动Apache Brooklyn应用程序

时间:2015-03-23 10:21:46

标签: jclouds brooklyn

我们可以通过传递YAML文档来使用Brooklyn REST API启动VM吗?

样本YAML:

name: simple-vm
location:
...
services:
- type: brooklyn.entity.basic.EmptySoftwareProcess
  name: VM
  provisioning.properties:
    user: b-user
    privateKeyFile: ~/.ssh/id_b-user
    osFamily: Ubuntu

privateKeyFile会发生什么?我们可以将其作为论据传递吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以通过将YAML发布到/v1/applications来部署蓝图。

但是privateKeyFile必须是布鲁克林机器可以访问的URL,如果它远程运行,当然不会访问您计算机上的私钥。假设您不想将私钥放在可公开访问的URL上:)您有两种选择。

添加私钥数据配置

配置密钥privateKeyData胜过privateKeyFile,并允许您指定实际的私钥数据。例如:

name: simple-vm
location: ...
services:
- type: brooklyn.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或推理不起作用,您还可以提供{{1 }}

添加额外的公钥URL

一个更好的机制,以便您的私钥不需要与布鲁克林服务器共享,是让布鲁克林生成自己的凭据连接到机器,但告诉它将您的公钥安装为{{1}另外,这样你就可以连接了。配置键publicKeyData获取了URL的字符串列表,所以你要做的就是把你的公钥放到网上(这比放置更安全)你的私钥在线!)。

authorized_keys

extraSshPublicKeyUrls之后也引入了,因此您需要recent snapshot build才能使用此功能。