错误:重复声明虚拟定义用户和组同名

错误:重复声明虚拟定义用户和组同名

我需要创建一个名为 user1 且组为 user1 的用户。我定义了一个虚拟资源来创建它。在 class1 中我创建了用户:

 include '::class1::virtual_accounts'
  realize(class::User['user1'])

在 class2 中,创建组:

 include '::class1::virtual_accounts'
  realize(class::Group['user1'])

在虚拟账户内部:

class class1::virtual_accounts {
  @class::group { 'user1': }
  @class::user { 'user1': }

执行的时候出现错误:

Error: Duplicate declaration: Group[user1] is already declared in file /root/puppet/class/manifests/group.pp:23; cannot redeclare at /root/puppet/class/manifests/user.pp:95 on node arqopasr21.lacaixa.es

在 user.pp 和 group.pp 中,我有创建用户和组的定义。可能是因为虚拟资源具有相同的名称(user1)而产生了错误,谢谢

答案1

是的,资源声明必须是唯一的。如果使用虚拟资源,则只需声明一次:

@user { 'name': ... }

不得有其他虚拟或非虚拟的资源声明User['name']。您可以意识到或者收集随意使用资源。

User<| |>
User<| title == 'name' |>
realize(User['name'])

一般来说,避免命名模块班级sinceclass是保留字。

相关内容