Так что я не вижу ничего плохого в вашем сценарии.Но я бы предложил следующие действия:
исполняемый флаг для вашего скрипта, поэтому
chmod +x /opt/sonar/bin/linux-x86-64/sonar.sh
для целей отладки добавьте следующую строку
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
Таким образом, ваши пользовательские данные должны выглядеть так:
#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
sudo chown -R ec2-user:ec2-user /opt/sonar/temp/conf
chmod +x /opt/sonar/bin/linux-x86-64/sonar.sh
/opt/sonar/bin/linux-x86-64/sonar.sh start
Дополнительная строка взята из aws docs ;
Чтобы устранить проблемы с загрузкой экземпляра EC2 без необходимости доступа к экземпляру через SSH, вы можете добавить код в свой сценарий bash пользовательских данных, который перенаправляет весь вывод как в /var/log/user-data.log, так и в /DEV / консоли.Когда код будет выполнен, вы сможете увидеть журналы вызовов ваших пользовательских данных в консоли.