自定义 type/provider 不区分大小写的标题
custom type/provider case insensitive title
是否可以通过 munge
调用或类似方式规范化标题值?
我有一个自定义 type/provider 管理 Windows 机器上的本地组成员资格(我们需要更精细的组成员资格,而不仅仅是在 user/group 类型中。
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 仍然是 returns 大写,但 Windows ADSI 返回的是小写形式。如果我们不使用 resources{'group_member': purge=>true}
,这将不是问题,但现在在这个测试环境中,每个木偶都可以添加(通过它们各自的 .pp 文件)和删除(通过 resources{'group_member': purge=>true}
})组运行.
理想情况下,我想将 self.instances
和我们所有 .pp 文件中的所有内容标准化为小写,但我们有 400 个木偶模块,我们使用 group_member 120 次,由很多不同的团队。如果我可以 munge
标题元参数,那会容易得多。
有什么建议吗?
所以,我处理这个的方法是重命名现有的 type/provider 并将其包装在一个定义类型中,该类型是 title
.
是否可以通过 munge
调用或类似方式规范化标题值?
我有一个自定义 type/provider 管理 Windows 机器上的本地组成员资格(我们需要更精细的组成员资格,而不仅仅是在 user/group 类型中。
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 仍然是 returns 大写,但 Windows ADSI 返回的是小写形式。如果我们不使用 resources{'group_member': purge=>true}
,这将不是问题,但现在在这个测试环境中,每个木偶都可以添加(通过它们各自的 .pp 文件)和删除(通过 resources{'group_member': purge=>true}
})组运行.
理想情况下,我想将 self.instances
和我们所有 .pp 文件中的所有内容标准化为小写,但我们有 400 个木偶模块,我们使用 group_member 120 次,由很多不同的团队。如果我可以 munge
标题元参数,那会容易得多。
有什么建议吗?
所以,我处理这个的方法是重命名现有的 type/provider 并将其包装在一个定义类型中,该类型是 title
.