2013-08-27 7 views
1

У меня есть экземпляр AWS EC2 Windows (экземпляр 2008 R2), который я хочу начать с остановки с помощью команды/скрипта с моей локальной машины и расписания в соответствии с моим использованием. Я также хочу, чтобы несколько моих программ, запущенных на экземпляре EC2, запускались при запуске экземпляра. Эти программы в настоящее время запускаются с использованием файла bat, присутствующего в экземпляре.Как запустить программу при запуске экземпляра на AWS EC2

я сделал следующее до сих пор за то же самое:

1- У меня есть пользователь AWS, созданный в AWS IAM и используя auth_id и ключ для этого пользователя для использования EC2 APIs и утилиты командной строки.

2- Для запуска и остановки экземпляра я использую утилиты командной строки из EC2 Util.

start ->ec2-start-instances i-instanceID 

stop ->ec2-stop-instances i-instanceID 

3- Чтобы запланировать его, я добавил это в свой планировщик окон.

4- Добавлены данные пользователя для экземпляра в консоли управления AWS. Мои данные пользователя выглядит следующим образом:

<script> 
C:\Services\my_application.lnk 
</script> 

5- я могу видеть данные пользователя присутствует в моем EC2 например в C: \ ProgramFiles \ Амазонка \ Ec2ConfigServer \ Scripts \ UserScript

6- В C: \ Program Files \ Amazon \ Ec2ConfigService \ Settings \ confi.xml значения Ec2SetPassword и Ec2HandleUserData были изменены для включения и добавлено значение true.

Я столкнулся следующие проблемы:

1- Сценарии пользовательских данных не выполняется каждый раз при запуске экземпляра. Я не могу понять, почему. 2- Изменения, внесенные в Ec2ConfigService \ Settings \ confi.xml, возвращаются к значениям по умолчанию при повторном запуске экземпляра.

Я считаю, что это распространенный прецедент, и хотел бы знать лучшие практики и подход, применяемые для автоматизации операций EC2. Мне также нужна помощь в запуске программ на моем экземпляре, где я ошибаюсь или не хватает, что еще нужно сделать и т. Д.?

ответ

2

userdata is только выполнен в первый раз, когда экземпляр создан. Это по дизайну.

У вас есть несколько вариантов - все из которых использовать ваш сценарий UserData

  1. Скопируйте my_application.lnk в папку автозагрузки
  2. Зарегистрируйте приложение в реестре «запустить» клавишу запуска (http://blogs.msdn.com/b/powershell/archive/2006/04/25/how-to-access-or-modify-startup-items-in-the-window-registry.aspx)
  3. Зарегистрируйте его с помощью планировщика задач, чтобы настроить его для выполнения при запуске (http://technet.microsoft.com/en-us/library/bb490996.aspx)
+0

Я попробовал все 3 варианта, но проблема в том, что my_ap plication.lnk запускается только после того, как я беру удаленный рабочий стол и логин ... – Vineeth

+0

Вариант 3 - регистрация его с расписанием задач. Убедитесь, что пользователь, с которым вы зарегистрировали его, зарегистрировался как права на пакетное задание. И не используйте lnk - используйте фактический exe –

+1

Вариант 2 - перейдите по этой ссылке для правильного ключа http://www.akadia.com/services/windows_registry.html –

Смежные вопросы