Я пытаюсь избежать процентного символа в моем скрипте терраформирования:
"${join("\n",formatlist("%s ansible_host=%s ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q cloud-user@%s"'","${module.compute.ops_master_names}","${module.compute.ops_master_priv_ips}","${module.ips.bastion_fips[0]}"))}"
Как напечатать строку «% h:% p» как обычный текст?
С помощью %%
обычно работает для печати буквального %
персонаж в printf
-подобные функции. Например:
locals {
test = ["foo", "bar"]
}
output "test" {
value = "${formatlist("%s %%h:%%p", local.test)}"
}
Дает следующее:
$ terraform apply
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
test = [
foo %h:%p,
bar %h:%p
]