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



我想以与the Conversation大致相同的方式分享我的babushka deps:https://github.com/conversation/babushka-deps

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

babushka有没有一个好的方法来处理回购文件之外的安全文件?

这是我目前正在做的事情。没有内置的方法,但只需一点脚本就可以完成。

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

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

这是最简单的情况,但很快就会变得一团糟。相反,我正在用巴布斯卡本身做这种事情,以便用deps来描述整个过程。

我有一个dep,它有几个小的助手方法,用于在远程机器上安装babushka,然后在上面运行任意dep。这允许您根据远程运行的结果编写本地dep,有效地将babushka嵌套在其内部。

它还不够通用,无法合并到核心中(需要进行重构),但它运行良好。如果你想在这期间尝试一下,它就在这里:

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

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

(但请注意,参数值记录在本地和远程框上的~/.babushka/logs/dep-name中,因此"private"假设两者上的相关用户帐户都是可信的。)

最新更新