Chef 模板无法启用服务

Chef template unable to enable service

提问人:Burps 提问时间:9/28/2023 最后编辑:Burps 更新时间:9/28/2023 访问量:35

问:

我正在尝试使用 systemd 在 RH7 上配置 SEC(简单事件关联),并且我需要多个实例。 我曾经在没有 systemd 的 RH<7 上执行此操作,但我无法将其适应 systemd。 我正在使用这个技巧来运行多个实例:

  • 我已经为 systemd 创建了一个 [email protected] 文件
  • 我正在尝试使用模板为此服务创建选项文件:
<%-
index = 0
%>
[...]
<%- if ( (node[:platform] == "redhat" &&  node[:platform_version] >= "7")) %>
OPTIONS_<%= index %>="--conf=/etc/sec/oracle.sec --input=/var/log/oracle.log "
<%- else %>
SEC_ARGS[<%= index %>]="-detach -conf=/etc/sec/oracle.sec -input=/var/log/oracle.log -log=/var/log/sec.log -intevents -pid=/var/run/sec<%= index %>.pid"
<%- end %>
<%-
  index = index + 1
%>

(您可以在底部看到 RH<7 的“旧”语法)

因此,现在所有文件都存在,当手动启动时,它会完成这项工作。systemctl start sec@0

我的问题是我需要启用该服务,但显然,不允许我在模板文件中这样做:sec@0

systemctl enable sec@0

所以,我的解决方案用完了:我现在如何启用它?

编辑: 这就是我创建systemd服务的方式:

if ( (node[:platform] == "redhat" &&  node[:platform_version] >= "7"))
  cookbook_file "/usr/lib/systemd/system/[email protected]" do 
    source "usr/lib/systemd/system/[email protected]"
    owner "root"; group "root"; mode "0644"
  end
end

这就是我创建sec配置文件的方式,它存储了所有实例:

template "/etc/sysconfig/sec" do
  source "etc/sysconfig/sec.erb"
  owner "root"; group "root"; mode "0644"
  notifies :restart, resources(:service => "sec")
end

您知道一种方法来“列出”在 /etc/sysconfig/sec 中创建的所有实例,并在创建此文件后启用它们吗?

Ruby 模板 Chef-Infra

评论

0赞 seshadri_c 9/29/2023
如果手动创建这些文件,并使用命令启用服务,它是否有效?此外,如果您尝试这样做,则无法从模板文件启用服务。

答: 暂无答案