Chef infra 包名不为';服务名称不匹配

Chef infra 包名不为';服务名称不匹配,chef-infra,cookbook,recipe,Chef Infra,Cookbook,Recipe,我正在尝试写一本食谱,它将在ubuntu和debian下运行。 我使用的软件包在ubuntu和debian中具有相同的名称。但在debian中,包名与服务名不匹配 例如: ubuntu-包名=foo,服务=foo。 debian-包名=foo,服务=xxxx 我需要明确启动/重新启动服务或通知服务的名称。那么,使用正确的服务名称的最佳方式是什么?当然,我可以在ubuntu和debian的属性文件中分别预定义名称,但我想尝试自动执行此操作。由于在许多情况下会出现这种差异,chef的文档中甚至包

我正在尝试写一本食谱,它将在ubuntu和debian下运行。 我使用的软件包在ubuntu和debian中具有相同的名称。但在debian中,包名与服务名不匹配

例如:

ubuntu-包名=foo,服务=foo。
debian-包名=foo,服务=xxxx


我需要明确启动/重新启动服务或通知服务的名称。那么,使用正确的服务名称的最佳方式是什么?当然,我可以在ubuntu和debian的属性文件中分别预定义名称,但我想尝试自动执行此操作。

由于在许多情况下会出现这种差异,chef的文档中甚至包含了一个这样的示例:

服务“crond”do
案例节点['platform']
当“redhat”、“centos”、“scientific”、“fedora”、“amazon”
服务名称“crond”
当“debian”、“ubuntu”、“suse”
服务名称“cron”
结束
操作[:开始,:启用]
结束

可能是熟悉这种情况的人。我说的是iptables持久包。它已在最新的debian中更改。您可以安装iptables persistent,但服务是netfilter persistent。问题是,当前的烹饪书正在使用ubuntu trusty,我需要向后兼容。谢谢你的重播。我想尝试找到一个解决方案,它可以避免每次更改服务名称时编辑cookbook。您还可以包括不同平台版本的条件。尽量不要使事情过于复杂-任何东西都可能随着新的操作系统版本而改变