【问题标题】:RPMBUILD: Is is possible to RPM configuration file portability at install timeRPMBUILD:是否可以在安装时对 RPM 配置文件进行移植
【发布时间】:2012-12-04 11:03:19
【问题描述】:

根据我的要求,所有服务器的 rpm 可能相同,但根据服务器环境(如生产、登台、测试或其他)只有一个配置文件更改。 我有所有服务器的配置文件包,但我不想在规范文件中对其进行硬编码,或者无法为所有服务器创建不同的 rpm。可以在客户端上安装 rpm 时指定配置文件的名称一边。

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    可能是this one 的重复,所以我将从那里复制我的答案...


    我不认为有本地方式;我会像你提到的那样做一个%post

    但是,我会这样做(类似于我为工作而开发的仅限内部包所做的事情):

    1. 三个独立的文件/etc/name.conf-developer/etc/name.conf-live
    2. 让所有三个包都提供一个虚拟包,例如name-config
    3. 有主包需要name-config
      • 这将使rpmyum 或任何需要在同一事务中至少安装一个的东西
    4. 所有三个包都相互冲突
    5. 让每个配置包的%post(可能还有%verify)符号链接/etc/name.conf到正确的配置
      • 这也有助于向用户展示正在发生的事情

    缺点:

    1. 有点老套
    2. rpm --whatprovides /etc/name.conf 会说它不属于任何包

    【讨论】:

    • 我仍然很困惑,请提供更多信息。
    【解决方案2】:

    Aaron 的回答是一个很好的方法。另一种选择是使用 bash if 语句根据主机名(例如 *prod)在 %post 部分中的配置文件上运行 sed 命令。这将允许您根据环境替换特定变量。显然这是一个高级示例,因为我不知道您的配置设置是什么样的。不幸的是,这是一个坏包的例子,因为其他人很难管理。我建议您将所有配置文件移出 RPM,然后开始使用 SaltChefPuppet,因为这是它们旨在完成的任务。

    【讨论】:

      猜你喜欢
      • 2015-11-08
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2011-12-31
      • 2014-04-14
      相关资源
      最近更新 更多