0

问题:我希望能够安装带有特定版本的配置文件的 RPM。

举个例子:

假设我有一个我想保证已安装并运行的 RPM。这里没问题。现在说我想为每个 puppet 环境提供不同的配置文件。这里也没有问题。

但是现在说我想专门对配置文件进行版本控制,然后希望能够检测到配置文件的新版本存在,比如在 Git 存储库中,如果是,则应用配置文件并且服务重新启动。如果服务运行正确,则可以,如果没有,则应重新应用旧版本的配置文件(将配置文件回滚到上一个版本)。

木偶有可能吗?如果是这样,什么样的架构将是这种场景的最佳方法?

任何正确方向的观点或在此问题上的帮助将不胜感激。

谢谢,

4

1 回答 1

1

您可以按照以下方式构建方案:

  1. 让 Puppet 在每个代理上为您的中央 git 存储库部署凭据
  2. 使用vcsrepo 类型以允许 Puppet 在每个代理上维护具有所需修订版的 repo 的克隆
  3. 让配置文件资源使用本地资源。

    source => '/path/to/local/git/clone/my_config.ini'
    
  4. 如果情况不正常,请使用validate_cmd参数使 Puppet 回滚。

    validate_cmd => 'apache2ctl configtest'
    
  5. 让文件对应notify相应的服务,或者subscribe让 Puppet 在更改配置时重新加载配置的服务。

我不明白你为什么一直引用 RPM 包——据我所知,它们与问题无关。

于 2014-12-19T12:28:42.670 回答