自定义类型/提供程序不区分大小写的标题

时间:2017-12-28 22:32:24

标签: puppet custom-type

无论如何通过munge电话或类似的东西来标准化标题值?

我有一个自定义类型/提供程序,用于管理Windows计算机上的本地组成员身份(我们需要更多粒度而不是组成员身份,而不仅仅是用户/组类型。

group_member{"Group => Member":
   ensure=>present,
}

group_member{"Group => DOMAIN\Member":
   ensure=>present,
}

resources{'group_member':
   purge =>true,
}

一般来说,当一切都一致时,一切都很好。问题在于windows / active目录不区分大小写。因此,当self.instances被调用时,它会生成资源Group_member["Users => DOMAIN\SomeGroup"],但在我们的puppet清单中,Users是硬编码的,DOMAIN来自事实,SomeGroup来自一个hiera值。

我们一直在与puppet的案例敏感性斗争大约5年,我们的大多数管理员已经习惯于确保域和yaml配置之间的案例匹配。

现在,我们遇到了一个新问题......某种程度上DOMAIN正在搞乱。在新的测试域上,NETBIOS名称是小写的。我们返回DOMAIN的事实仍然返回大写,但Windows ADSI返回小写形式。如果我们不使用resources{'group_member': purge=>true},这不会是一个问题,但现在在这个测试环境中,这些组被添加(通过各自的.pp文件)并被移除(通过resources{'group_member': purge=>true}})每个木偶运行

理想情况下,我想在self.instances和所有.pp文件中将所有内容规范化为小写,但我们有400个木偶模块,我们使用group_member 120次,由不同的团队管理。如果我只能munge标题元参数,那将会更加容易。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

所以,我正在处理这个问题的方法是重命名现有的类型/提供程序,并将其包装在一个以title为小写的定义类型中。