Puppet:如何在模块中共享公共资源/变量
Puppet: how to share a common resource / variable in modules
我正在尝试使用 puppet bootstrap 一个新的 VPS。我将 运行 多个站点,目前我正计划 运行 在不同的用户帐户中使用它们。我想为所有这些用户提供一个通用的授权密钥。我正在使用木偶 4.10。
我遇到的问题是我想将我的 ssh key
添加到所有这些用户的 authorized_keys 中,但我似乎无法弄清楚如何拥有一个共同点资源。我试过将它添加到 class 中,然后将其包括在内,但它是重复的。我尝试将变量传递给 class,但还是重复了。
基本上我有这样一个模块
class wibble_somesite {
user { 'someuser':
ensure => 'present',
managehome => true,
purge_ssh_keys => true,
home => '/home/someuser',
shell => '/bin/bash'
}
ssh_authorized_key { 'patrickmacbookair':
ensure => present,
user => 'someuser',
type => 'ssh-rsa',
key => 'some_shared_key'
}
}
然后我将其包含在我的 manifests/site.pp
中。但是,我想要这些 class wibble_someothersite
的倍数,并且我想集中管理 ssh_authorized_key
节中的 some_shared_key
。
如有任何帮助,我们将不胜感激。我已经尝试按照文档进行操作,但我一无所获。
我可以复制所有 ssh_authorized_key
调用,但这显然很糟糕。
一个 class 不能有多个实例。但是,您可以使用定义的类型。
你的例子可以是:
define wibble_somesite () {
user { $title:
ensure => 'present',
managehome => true,
purge_ssh_keys => true,
home => "/home/${title}",
shell => '/bin/bash'
}
ssh_authorized_key { "${title}_patrickmacbookair":
ensure => present,
user => $title,
type => 'ssh-rsa',
key => 'some_shared_key'
}
}
你可以这样使用它:
wibble_somesite{'patrick':}
wibble_somesite{'bob':}
它将创建用户 'patrick' 和 'bob',并允许共享密钥连接。
这是您要找的吗?
我正在尝试使用 puppet bootstrap 一个新的 VPS。我将 运行 多个站点,目前我正计划 运行 在不同的用户帐户中使用它们。我想为所有这些用户提供一个通用的授权密钥。我正在使用木偶 4.10。
我遇到的问题是我想将我的 ssh key
添加到所有这些用户的 authorized_keys 中,但我似乎无法弄清楚如何拥有一个共同点资源。我试过将它添加到 class 中,然后将其包括在内,但它是重复的。我尝试将变量传递给 class,但还是重复了。
基本上我有这样一个模块
class wibble_somesite {
user { 'someuser':
ensure => 'present',
managehome => true,
purge_ssh_keys => true,
home => '/home/someuser',
shell => '/bin/bash'
}
ssh_authorized_key { 'patrickmacbookair':
ensure => present,
user => 'someuser',
type => 'ssh-rsa',
key => 'some_shared_key'
}
}
然后我将其包含在我的 manifests/site.pp
中。但是,我想要这些 class wibble_someothersite
的倍数,并且我想集中管理 ssh_authorized_key
节中的 some_shared_key
。
如有任何帮助,我们将不胜感激。我已经尝试按照文档进行操作,但我一无所获。
我可以复制所有 ssh_authorized_key
调用,但这显然很糟糕。
一个 class 不能有多个实例。但是,您可以使用定义的类型。
你的例子可以是:
define wibble_somesite () {
user { $title:
ensure => 'present',
managehome => true,
purge_ssh_keys => true,
home => "/home/${title}",
shell => '/bin/bash'
}
ssh_authorized_key { "${title}_patrickmacbookair":
ensure => present,
user => $title,
type => 'ssh-rsa',
key => 'some_shared_key'
}
}
你可以这样使用它:
wibble_somesite{'patrick':}
wibble_somesite{'bob':}
它将创建用户 'patrick' 和 'bob',并允许共享密钥连接。
这是您要找的吗?