0

我无法将我的大脑包裹在以下事情上......我希望有一种简单的“rubyist”方法来解决这个问题。

我有几个 linux 服务器,它们都通过一堆带有自己配置的 ruby​​ 脚本进行管理。所有这些脚本都依赖于一个 utils gem,它可以通过“gem install”轻松安装在所有主机上。然而,应用程序本身是主机依赖的。

例如处理夜间数据库备份的 ruby​​ 脚本只在数据库主机上有意义。解析应用服务器日志文件的脚本在数据库主机上也没有任何关系。

使用 utils gem 很容易。我只是把它放到我们的 gem 服务器上,每个主机都会获取它。但是应用程序本身及其配置目前是手动复制的。但这有点愚蠢。

我真的很想将 app + config 打包到它自己的 ruby​​ gem 中。这部分很容易。但是我希望将应用脚本安装到 /usr/local/bin 并将配置文件安装到 /usr/local/etc。但是我不知道如何告诉 gemspec 如何处理每个文件的安装路径,包括所有者更改和可能的强制手动差异/自动合并,以防配置发生更改。

我偷偷尝试启动一个厨师系统,它可以解决所有问题。但是目前这里发生的事情太多,无法建立这样的基础设施......我什至不能使用洒......遗憾的是。所以现在一切都很糟糕。

那么有没有办法告诉我的 gemspec 如何处理某些文件,或者至少有一种方法可以告诉 gemspec 在安装时运行某个文件,以便我可以编写解决这些问题的方法?

或者也许你有类似的情况并且有一个适合你的好解决方案,你不介意与我分享你的智慧?

提前谢谢,斯特凡

4

1 回答 1

0

我会将该应用程序打包为一个包。也就是说,在 Debian/Ubuntu 上制作 .deb 文件,在 RedHat 上制作 .rpm 等等。

这解决了将可执行文件和配置放置到正确文件夹的问题。

于 2012-07-05T11:57:58.093 回答