Sto provando a utilizzare una stringa multilinea nel blocco provisioner "remote-exec"
del mio script terraform. Tuttavia, ogni volta che uso la sintassi EOT
come descritto nella documentazione e vari esempi, ottengo un errore che si lamenta di avere: invalid characters in heredoc anchor
.Terraform: caratteri non validi nell'ancora heredoc
Ecco un esempio di un semplice provisioner "remote-exec"
che ha ricevuto questo errore (entrambi i tipi di EOT ricevono questo errore quando tentato separatamente):
provisioner "remote-exec" {
inline = [
<< EOT
echo hi
EOT,
<< EOT
echo \
hi
EOT,
]
}
Aggiornamento: Ecco la soluzione di lavoro, leggere attentamente se si stanno avendo questo problema perché Terraform è molto esigente quando si tratta di EOF:
provisioner "remote-exec" {
inline = [<<EOF
echo foo
echo bar
EOF
]
}
si noti che se si desidera utilizzare EOF tutti i comandi che si utilizzano in un blocco provisioner "remote-exec"
deve b e all'interno dell'EOF. Non è possibile avere EOF e non EOF come uno o l'altro.
La prima linea di EOF deve iniziare in questo modo, e non si può avere qualsiasi spazi bianchi in questa linea dopo <<EOF
altrimenti si lamenta di avere invalid characters in heredoc anchor
:
inline = [<<EOF
tuo EOF dovrà poi finire così con la EOF
allo stesso rientro della ]
EOF
]
si prega di accettare una risposta – holms