我正在嘗試使用 Terraform 創建一個 Ansible 庫存檔案,格式如下
10.10.10.10 #test-vm
輸出.tf:
output "vm_name" {
value = toset([
for vm_names in azurerm_linux_virtual_machine.vm : vm_names.name
])
}
output "vm_ips" {
value = toset([
for vm_ips in azurerm_linux_virtual_machine.vm : vm_ips.private_ip_address ])
}
地形模板檔案:
%{ for vm in vm_ips}:
%{for vm in vm_names ~}:
${mc} ${mc_name}
%{ endfor ~}
%{ endfor ~}
以上產生
10.1.0.14 #vm1
10.1.0.14 #vm2
10.1.0.7 #vm1
10.1.0.7 #vm2
代替
10.1.0.14 #vm1
10.1.0.7 #vm2
任何建議如何正確迭代兩個輸出?
uj5u.com熱心網友回復:
您應該創建一個映射或元組串列,以便將虛擬機名稱和 IP 鏈接起來。
output "vms" {
value = [for vm in azurerm_linux_virtual_machine.vm : {
name = vm.name,
ip = vm.private_ip_address
}]
}
然后在您的模板中:
%{ for vm in vms ~}
${vm.ip} #${vm.name}
%{ endfor ~}
這將呈現在預期的
10.1.0.14 #vm1
10.1.0.7 #vm2
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/477561.html
標籤:for循环 地形 ansible-库存 terraform-模板文件
上一篇:加快將許多JSON檔案轉換為Pandas資料幀的for回圈
下一篇:用另一列的某些行替換列
