木偶 - 包括另一个文件

时间:2017-05-03 06:55:54

标签: templates puppet ssh-keys

有没有办法将一个Puppet文件插入到其他Puppet文件中?

我们确实有很多服务器使用由Puppet管理的SSH密钥定义,我想为所有SSH密钥定义提供类似于单独文件的内容。主要目标是仅在几个地方更新密钥定义,而不是我们所有的服务器定义。

非常感谢

1 个答案:

答案 0 :(得分:1)

使用class - 它是资源的容器(如SSH密钥资源),您可以将其添加到节点或使用单行添加到其他类中。当您添加它时,该节点将获取其中的所有资源。

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
}

类定义可以位于清单目录中的相同文件或另一个文件中,或者最好是可以开始将它们放入a module layout,即/etc/puppetlabs/puppet/environments/production/sshkeys/manifests/init.pp,Puppet会自动加载它。模块可以帮助您封装功能,因为您可以将文件,模板和更具体的清单和类存储在一起。

相关问题