automation - 如何在 conf 文件中更新没有节标题的 Puppet ini_setting 或 ini_subsetting 资源?
问题描述
我想知道是否有人可以帮助我解决我的 conf 文件问题。我需要得到如下所示的输出,但在使用 inifile 时遇到问题。我已经把我的代码和测试输出放在下面。由于“[]”,我的服务无法启动。非常感谢您的意见和想法。谢谢!
预期产出
cat /etc/service.conf
info something something...
without section header
setting1=value1
测试
测试脚本1.pp
ini_setting {'setx':
ensure => present,
path => '/etc/service.conf',
key_val_separator => '=',
setting => 'setting1',
value => 'value1',
}
testscript1.pp 的输出
cat /etc/service.conf
info something something...
[setx]
setting1=value1
测试脚本2.pp
$defaults = {
ensure => present,
path => '/etc/service.conf',
key_val_separator => '=',
}
$settings = {
' ' => {
'setting1' => 'value1',
}
}
create_ini_settings($settings,$defaults)
testscript2.pp 的输出
cat /etc/service.conf
info something something...
[ ]
setting1=value1
由于我真的想删除该[]
字符,因为它在服务重启期间导致错误,所以我使用了section_prefix => '#',
. 第一个傀儡代理运行顺利且有效。现在的问题是,如果 puppet 代理在其频率时间运行(比如假设每小时),由于缺少节标题,它将自动在 conf 文件中附加详细信息。我决定使用ini_subsetting
,但我遇到了错误。
测试脚本3.pp
ini_subsetting {'subset':
ensure => present,
section => '',
key_val_separator => '=',
path => '/etc/service.conf',
setting => 'setting1',
subsetting => '',
value => 'value1',
}
testscript3.pp 的输出
Error: Failed to apply catalog: Parameter path failed on Ini_subsetting[subset]: File paths must be fully qualified, not '/etc/service.conf'.
任何建议或建议都将受到高度赞赏。
谢谢你。
解决方案
你试过你的testscript1.pp吗section => ''
?
它看起来像这样:
ini_setting {'setx':
ensure => present,
path => '/etc/service.conf',
key_val_separator => '=',
section => '',
setting => 'setting1',
value => 'value1',
}
输出将是:
cat /etc/service.conf
info something something...
setting1=value1
或者您可以尝试使用force_new_section_creation => false
,因为默认情况下它是正确的,并强制创建一个部分,如模块参考中所述。
至于您的第三个示例,它可能由于空白subsetting
参数而失败。ini_subsetting
资源类型需要和参数才能工作setting
。subsetting
推荐阅读
- parameters - Google DataStudio:链接参数以控制下拉列表
- node.js - puppeteer 错误:找不到选择器的节点:.olp-text-box
- java - 无法运行项目灰色运行按钮 - Intellij
- android - Android Telecom Manager 隐藏/禁用添加呼叫和发送消息按钮
- javascript - 在日期选择器中选择年份和月份时如何获取日期
- spring - 为特定的 Get 端点创建 Prometheus 规则/警报,以验证它是否返回 200(Ok)
- javascript - 如何使用按钮 Vuejs 访问对象 ID
- c++ - Gem5 如何处理 X86 构建的应用程序指针?
- css - 我的 SASS 变量到 :root 没有被插值
- php - 无法在 MacOS 上的 PHP 和 Apache2 上安装 PDFLib