提问人:Burps 提问时间:9/28/2023 最后编辑:Burps 更新时间:9/28/2023 访问量:35
Chef 模板无法启用服务
Chef template unable to enable service
问:
我正在尝试使用 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 中创建的所有实例,并在创建此文件后启用它们吗?
答: 暂无答案
评论