我正在尝试编写一个用户数据模板文件,其中包含包含用户组访问权限的映射,但找不到任何在任何地方完成此操作的示例,并且不确定如何进行。可能吗?
这是我想要实现的目标:
terraform.tfvars 示例:
group_membership = {
backup_folder_access = [
"fred",
"alice"
],
full_folder_access = [
"greg"
]
}
userdata.ps1.tpl 示例:
foreach ($group in ${group_membership}){
New-LocalGroup -Name $group.key
foreach ($user in ${group}.value){
Add-LocalGroupMember -Group $group -Member $user
}
template_file 资源示例:
data "template_file" "userdata" {
template = file("${path.module}/src/userdata.ps1.tpl")
vars = {
group_membership = "${var.group_membership}"
}
这显然是不正确的,有人知道这应该是什么样子吗?
最佳答案
这些天你应该使用 templatefile ,而不是template_file
。那么就会是:
您的模板:
%{for group, value in group_membership ~}
New-LocalGroup -Name ${group}
%{for user in value ~}
Add-LocalGroupMember -Group ${group} -Member ${user}
%{ endfor ~}
%{ endfor ~}
和模板文件
:
locals {
userdata = templatefile("${path.module}/src/userdata.ps1.tpl", {
group_membership = var.group_membership
})
}
关于powershell - 带有 for_each 变量的 Terraform template_file 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73615966/