【发布时间】:2020-10-23 11:17:03
【问题描述】:
我一直在寻找这个问题的答案,但没有运气,但有没有办法在运行“应用”命令时将参数传递到 puppet 清单中,类似于在运行 UNIX 时传递参数的方式命令行脚本?
我看到的建议提到要么将变量保留在清单顶部以供以后使用,要么将它们存储在 hiera 文件中。但两者都没有真正回答我提出的问题?
任何关于如何做到这一点的指导将不胜感激?
编辑:
我一直在做的一个例子是:
$doc_root = "/var/www/example"
exec { 'apt-get update':
command => '/usr/bin/apt-get update'
}
package { 'apache2':
ensure => "installed",
require => Exec['apt-get update']
}
file { $doc_root:
ensure => "directory",
owner => "www-data",
group => "www-data",
mode => 644
}
file { "$doc_root/index.html":
ensure => "present",
source => "puppet:///modules/main/index.html",
require => File[$doc_root]
}
如您所见,该变量在顶部是硬编码的,而当我尝试以相同方式使用该变量时,我需要能够在运行应用命令时传递该值。 出于同样的原因,将查找函数与 hiera.yaml 文件结合使用并不能满足我的要求。 我唯一能想到的解决方法是创建一个接受参数的 UNIX 脚本,将这些值保存在 yaml 文件中,然后让脚本执行 .pp 文件。 但我希望 puppet 有办法直接做到这一点。
【问题讨论】:
-
您能否展示您迄今为止所做的工作,以便我们提供答案?
-
我已经编辑了主要问题,希望它能增加更多的清晰度。
标签: command-line parameters apply puppet