Я пытался найти ответ или подобное поведение на разных сайтах, и я не вижу, чтобы кто-нибудь сталкивался с этой проблемой. Это означает, что либо я что-то делаю неправильно, либо я мало смотрел. Если вы считаете, что это повторяющийся вопрос, укажите, пожалуйста, на вопрос, где я могу найти ответ. Спасибо.
Я использую машину EC2 Ubuntu t2.micro.
У меня есть сценарий, который проверяет экземпляр «Масштабирование в бите защиты», и если он не установлен, он его завершает.
Используемый скрипт: скрипт Python
Способы пробовали: update-rc.d defaults rc.local
Симптомы: если я запускаю скрипт с консоли, он работает нормально, однако, если я перезагружаю систему, то строка, которая проверяет, выполняет «aws autoscaling description-auto-scaling-sizes --instance-id постоянно не работает.
Фрагмент кода:
попробуйте: myInstanceID = subprocess.check_output (["ec2metadata", "- instance-id"]) myInstanceID = myInstanceID.strip ("\ n") напечатайте myInstanceID, кроме: print "Still Booting" continue
#result = subprocess.check_output(["/usr/local/bin/aws","autoscaling","describe-auto-scaling-instances","--instance-id",myInstanceID])
p = subprocess.Popen(["/usr/local/bin/aws","autoscaling","describe-auto-scaling-instances","--instance-id",myInstanceID],stdout=subprocess.PIPE)
result = p.communicate()[0]
#try:
# #result = subprocess.check_output(["aws','autoscaling','describe-auto-scaling-instances','--instance-id',myInstanceID])
# result = subprocess.check_output(["/usr/local/bin/aws","autoscaling","describe-auto-scaling-instances","--instance-id",myInstanceID])
#except:
# #print e.output
# print "ERROR"
# continue
Пробовал и закомментированные строки, но результат тот же.
Причина сбоя: когда я создаю сценарий, который находится в пользовательском пространстве, и когда я выполняю «aws configure», это происходит для пользовательского ubuntu после завершения процесса загрузки системы. Однако, когда запускаются сценарии запуска, которые запускаются под root и, следовательно, в пространстве SU (Super User), и я не настроил его для учетных данных aws.
Решение: выполнил «sudo su» для перехода в режим суперпользователя, а затем выполнил «aws configure», чтобы предоставить все учетные данные aws. И это работает, поскольку сценарии запуска могут найти все учетные данные aws.