我似乎在理解如何使其工作时遇到了一些问题。我有一台正在工作的办公室 NAT 后面正在建造的新服务器,它的反向 dns 映射到office.mydomain.com
,但我希望这台机器是ns2.mydomain.com
为了傀儡。
node.pp 片段:
node 'ns2.mydomain.com' inherits basenode {
info('ns2.mydomain.com')
}
node 'office.mydomain.com' inherits basenode {
info('office.mydomain.com')
}
Run Code Online (Sandbox Code Playgroud)
我在客户端上的“puppet.conf”:
[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert
Run Code Online (Sandbox Code Playgroud)
我在服务器上的系统日志报告:
Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它在ns2.mydomain.com
不做这样的事情的情况下获取配置:
node 'ns2.mydomain.com' inherits …
Run Code Online (Sandbox Code Playgroud) 我一直在想办法测试一个资源是否已经在另一个文件中定义,如果没有创建它?一个简单的例子:
if File[$local_container] {
alert("Testing - It existed $local_container")
} else {
file{ "$local_container":
ensure => directory,
}
}
Run Code Online (Sandbox Code Playgroud)
但是 -File[$local_container]
似乎总是评估为真。有没有办法做到这一点?
我在 puppet 中有以下类和定义:
$certDirectory = "/var/lib/ssl/certs"
class openssl {
package { "openssl":
ensure => latest
}
file { "openssl":
path => "/var/lib/ssl",
ensure => directory,
mode => 0644
}
file { "openssl-certs":
path => "/var/lib/ssl/certs",
ensure => directory,
mode => 0644
}
define cert($ensure = present) {
$certfile = "${certDirectory}/${name}.cert"
$keyfile = "${certDirectory}/${name}.key"
$pemfile = "${certDirectory}/${name}.pem"
file { "${name}.cert":
path => $certfile,
source => "puppet:///openssl/${name}.cert",
mode => 0640,
ensure => $ensure,
}
file { "${name}.key":
path => $keyfile,
source => …
Run Code Online (Sandbox Code Playgroud)