0

我想用 puppet 管理一个 SSH 公钥池。我不确定我做对了,但现在它是这样工作的:

我有一个类 mysshd,其清单包含我想要的 SSH 服务器的每个配置。此外,还有另一个清单包含作为“ssh_athorized_keys”资源的所有公钥。

目前,我希望所有这些都被注册,所以它们在清单中有“确保 => 存在”。所以每个节点都加载了方便的 mysshd 类,就是这样。

但是现在,我想在此清单中定义我的用户的所有公钥,并使用“确保 => 不存在”。然后,在我的 node.pp 中,对于每个节点,如果我愿意,我想将每个资源 ssh_authorized_keys 的值“确保”设置为“呈现”。

我试图为类中的某些资源覆盖“确保”参数,但我肯定错过了一点,而且我无法弄清楚如何做到这一点。

你能帮助我吗 ?

更多细节:

在 :modules/iuem-sshd/manifests/publickeys.pp'中,有我的 pub 键列表:

ssh_authorized_key{'gab':
        key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAugG5p+SHmDm8OKdKifipUuK/TIbVXgQXm5ee//Cne+2QU9gctxOechyptT0oNh57rXUDShHpkNToC6r1ZvPLpxae2p2kBWJl5O2u1ov9/L8eWSvCFlVFc/gicH1wWG9vrlh7gXGGrAb6rVJ97XVDNkDmmF43W+Z8p8AjRtzE4b9Z3ZGGgPbBaPHPybBogs3wP3d5cyaLqlQgjJQXdkWkaVq8ApWLnan34O1sZVimcD6TVVSBZ1PmnSZfchxYq56xMnI+GpYvvi0dw+JU9aS+br4g1K5LtxFlxp4YlKGlQByrFdhn21z3VRnDrPWomgQHvdyzTUqwIs7AKvmPbQX+kQ==',
        name => 'Nicolas',
        ensure => absent,
        type => "ssh-rsa",
        user => root,
}

它由 init.pp 导入,它在 ssh 服务器上执行其他配置。

在节点配置中,我加载类 iuem-ssh :

class {'iuem-sshd': }

但我想覆盖设置:ensure => present例如user => lagaffe

谢谢,

乔纳森

4

1 回答 1

2

听起来这是虚拟资源的用例

您可以在一个地方定义所有 ssh_authorized_keys,然后只在需要它们的地方实现它们。

于 2013-02-05T19:21:44.610 回答