Назад | Перейти на главную страницу

Скрипты запуска AWS EC2 Ubuntu

Я пытался найти ответ или подобное поведение на разных сайтах, и я не вижу, чтобы кто-нибудь сталкивался с этой проблемой. Это означает, что либо я что-то делаю неправильно, либо я мало смотрел. Если вы считаете, что это повторяющийся вопрос, укажите, пожалуйста, на вопрос, где я могу найти ответ. Спасибо.

Я использую машину 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.