如何使用公共babushka dep管理安全文件?

时间:2012-09-27 23:19:50

标签: ruby provisioning babushka

我想和“对话”一样分享我的babushka deps:https://github.com/conversation/babushka-deps

但是,我使用厨师管理SSL证书和SSH密钥。现在这些文件直接在我的厨师配置中,但是因为我想分享我的babushka配置,我不能把它们放在那里。

babushka是否有办法处理安全的外部仓库文件?

1 个答案:

答案 0 :(得分:2)

这是我目前正在努力的事情。没有内置方式,但可以通过一些脚本来完成。

如果您在远程系统上运行deps,比如从shell脚本运行,那么我将向脚本添加一个命令,以便首先将私有数据rsync到位:

rsync -taP private/ user@host:~/private/
ssh user@host 'babushka "server configured"'

这是最简单的情况,但很快就会变得混乱。相反,我正在用babushka本身做这种事情,以便用deps描述整个过程。

我有一个带有几个小助手方法的dep,用于在远程计算机上安装babushka,然后在其上运行任意deps。这允许您编写依赖于远程运行结果的本地deps,有效地将babushka嵌套在其自身内。

它还不够融入核心(并且它需要一个重构),但它运作良好。在这期间,如果你想在此期间试一试:

https://github.com/conversation/babushka-deps/blob/master/provision.rb#L123-131

使用此方法,您可以将参数传递给每个远程运行。这使得提供私人数据变得容易,例如您的私钥,或用于设置您的网络服务器的SSL证书等。

(注意虽然在本地和远程框中将参数值记录到〜/ .babushka / logs / dep-name,因此'private'假定两者上的相关用户帐户都是可信的。)