是的,您可以通过将 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
之后 的 Brooklyn 版本0.7.0-M2-incubating
将尝试推断公钥数据,但如果您正在使用0.7.0-M2
或推断不起作用,您也可以提供publicKeyData
.
添加额外的公钥 URL
一个更好的机制是让你的私钥不需要与布鲁克林服务器共享,让布鲁克林生成自己的凭据来连接到机器,但告诉它安装你的公钥作为authorized_keys
附加,这样你就可以连接。配置密钥extraSshPublicKeyUrls
采用 URL 字符串列表,因此您所要做的就是将您的公钥放到网上(这比将您的私钥放到网上更安全!)。
name: simple-vm
location: ...
services:
- type: brooklyn.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
引入的,因此您需要获取最近的快照版本才能使用此功能。