Puppet - 包括另一个文件
Puppet - including another file
有没有办法将一个 Puppet 文件插入到其他 Puppet 文件中?
我们确实有很多服务器具有由 Puppet 管理的 SSH 密钥定义,我希望为所有 SSH 密钥定义创建一个单独的文件。主要目标是只更新少数地方的键定义,而不是我们所有的服务器定义。
非常感谢
使用 class - 它是一个资源容器(例如您的 SSH 密钥资源),您可以使用一行将其添加到节点或从其他 classes。当你添加它时,该节点将获取其中的所有资源。
class sshkeys {
ssh_authorized_key { 'foo@example.com':
ensure => present,
user => 'foo',
type => 'ssh-rsa',
key => 'AAAAB3Nza[...]qXfdaQ==',
}
ssh_authorized_key { 'bar@example.com':
# more...
}
}
然后在您的 node
块中,使用 include
:
node foo.example.com {
include sshkeys
}
class 定义可以在 manifests 目录中的同一个文件或另一个文件中,或者最好您可以开始将它们放入 a module layout,即 /etc/puppetlabs/puppet/environments/production/sshkeys/manifests/init.pp
,Puppet 将自动在其中加载它。模块帮助您封装功能,因为您可以将文件、模板和更具体的清单和 classes 存储在一起。
有没有办法将一个 Puppet 文件插入到其他 Puppet 文件中?
我们确实有很多服务器具有由 Puppet 管理的 SSH 密钥定义,我希望为所有 SSH 密钥定义创建一个单独的文件。主要目标是只更新少数地方的键定义,而不是我们所有的服务器定义。
非常感谢
使用 class - 它是一个资源容器(例如您的 SSH 密钥资源),您可以使用一行将其添加到节点或从其他 classes。当你添加它时,该节点将获取其中的所有资源。
class sshkeys {
ssh_authorized_key { 'foo@example.com':
ensure => present,
user => 'foo',
type => 'ssh-rsa',
key => 'AAAAB3Nza[...]qXfdaQ==',
}
ssh_authorized_key { 'bar@example.com':
# more...
}
}
然后在您的 node
块中,使用 include
:
node foo.example.com {
include sshkeys
}
class 定义可以在 manifests 目录中的同一个文件或另一个文件中,或者最好您可以开始将它们放入 a module layout,即 /etc/puppetlabs/puppet/environments/production/sshkeys/manifests/init.pp
,Puppet 将自动在其中加载它。模块帮助您封装功能,因为您可以将文件、模板和更具体的清单和 classes 存储在一起。