厨师centos 7 openvpn服务

chef centos 7 openvpn service

我的自定义食谱按以下方式安装 openvpn:

package 'openvpn'

... do some configuration ....

service 'openvpn' do
  action [:enable, :start]
end

上面的代码在 centos 6 中运行良好,在 centos 7 (systemd) 中运行失败

错误:/bin/systemctl 启用 openvpn - 没有那个文件或目录

似乎在 systemd 上服务的名称不同:openvpn@server 我如何检测到这个?

您可以检查 platform_version(假设您已经在您的食谱中检查 CentOS 平台)然后即时切换 service_name。例如,启动 OpenVPN 服务器

service 'openvpn_service' do
  if node['platform_version'].to_f >= 7.0
    service_name 'openvpn@server.service'
  else
    service_name 'openvpn'
  end
  action [ :enable, :start ]
end