Você está usando os dados do usuário de maneira errada. Por favor, veja a documentação do cloud-init .
Seu modelo deve conter algo como isto (formato YAML):
#cloud-config
write_files:
- path: /home/resources/wso/bin/wso.sh
content: |
#!/bin/bash
# update ubuntu
sudo apt-get update
# install nginx
sudo apt-get install nginx -y
sudo service nginx start
runcmd:
- ["sh", "/home/resources/wso/bin/wso.sh"]
Como isso pode ser melhorado com pouco esforço, eu proporia usar isso como modelo:
#cloud-config
packages:
- nginx
package_update: true
runcmd:
- [systemctl, daemon-reload]
- [systemctl, enable, nginx]
- [systemctl, start, nginx]
Ele alcançará o mesmo que o seu script, mas usará o sistema fornecido para provisionar uma máquina e também removerá a necessidade, por exemplo. para manter sua própria AMI, como você poderia então apenas aplicar uma configuração cloud-init através dos dados do usuário e confiar nas Imagens Debian / Ubuntu.
Se isso não funcionar, você pode verificar /var/log/cloud-init.log
. Como o formato do arquivo é YAML, lembre-se de que ele está sendo quebrado usando indention impróprio.