Finalmente consertado sozinho ...
Você deve trabalhar com a API DO e seguir alguns tutoriais como this ( meio do artigo de referência) é provável que você execute um dos seguintes erros.
Erro 1 leva a algo como ...request body malformed
Para resolver isso, certifique-se de que você não esqueceu de escapar de qualquer string / charackter no yaml.
O erro 2 não causará problemas à primeira vista. Sua solicitação de API é executada, a gotícula é girada e, a menos que você não tenha feito nenhuma fantasia, você pode até não notar (se você não verificar o que seu script fez no sistema ...). Verificar os logs do cloud-init, no entanto, mostrará que failed loading yaml blob
. Isso é causado quando os characks que precisam de escape não escapam com frequência suficiente (?!).
Exemplo:
- Isso resultará em erro 1 (perdeu para escapar do charckter dólar):
sed -i -e '$a\ \n#Add logfile information\nlogfile /var/log/ntp.log' /etc/ntp.conf
- Isso resultará em Erro 2 (o dólar é escapado corajosamente, mas escape simples não é suficiente aqui ...):
sed -i -e '\$a\ \n#Add logfile information\nlogfile /var/log/ntp.log' /etc/ntp.conf
Então a solução é:
sed -i -e '\$a\ \n#Add logfile information\nlogfile /var/log/ntp.log' /etc/ntp.conf
Se alguém realmente estiver lendo e entender o quão frustrada eu estou, por favor me avise se você puder explicar o que está acontecendo aqui ... - na verdade eu não estou realmente interessado nisso novamente, mas do outro lado eu estou sempre disposto a aprender.
A única razão que eu entenderia: Como o script bask puxa um yaml e esse grupo é enviado através do shell remoto no json, ele precisa de um pouco mais de "cuidado" e, portanto, de escapar em dobro!