我们可以通过传递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会发生什么?我们可以将其作为论据传递吗?
答案 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 }}
一个更好的机制,以便您的私钥不需要与布鲁克林服务器共享,是让布鲁克林生成自己的凭据连接到机器,但告诉它将您的公钥安装为{{1}另外,这样你就可以连接了。配置键publicKeyData
获取了URL的字符串列表,所以你要做的就是把你的公钥放到网上(这比放置更安全)你的私钥在线!)。
authorized_keys
在 extraSshPublicKeyUrls
之后也引入了,因此您需要recent snapshot build才能使用此功能。