2

我想以与 The Conversation 相同的方式分享我的头巾部门:https ://github.com/conversation/babushka-deps

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

在 babushka 中是否有一种处理安全的、外部的 repo 文件的好方法?

4

1 回答 1

2

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

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

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

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

我有一个带有几个小辅助方法的 dep,用于在远程机器上安装 babushka,然后在其上运行任意 deps。这使您可以编写依赖于远程运行结果的本地 dep,从而有效地将 babushka 嵌套在其内部。

它还不够通用,无法合并到核心中(并且需要重构),但效果很好。如果你想在此期间试一试,这里是:

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

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

(请注意,尽管参数值记录到本地和远程框上的 ~/.babushka/logs/dep-name 中,因此“私有”假定两者上的相关用户帐户都是受信任的。)

于 2012-09-29T10:30:37.990 回答