2015-06-08 3 views
2

Я пытаюсь инициализировать экземпляр AWS EC2, используя сценарий оболочки. Моя конечная цель - автоматизировать этот процесс с помощью boto (SDK python), и до сих пор у меня есть простой тестовый скрипт, который будет запускать новый экземпляр ubuntu, а затем с помощью скрипта оболочки будет обновляться и загружать некоторые инструменты (которые отлично работают), но то я пытаюсь создать сценарий для создания папки, создать файл и в конечном итоге запустить команду AWS cli для загрузки файла из ведра S3.Сценарий оболочки для AWS EC2 init

После создания экземпляра я могу запустить ssh и запустить команды, которые создают папку, файл и загружают файл из ведра, но сценарий не сделает этого для меня, и я не могу понять почему.

Мой сценарий выглядит следующим образом:

#!/bin/bash 
apt-get -y update 
apt-get -y install awscli 
mkdir ./test_folder 
echo -e "data" > ./test_folder/test_file 
aws s3 ls 

Для этого поста я заменил доступа ключевых данных с «данные», чтобы в конечном счете, команда s3 не будет работать, но если кто-то может помочь мне понять, почему mkdir и echo команды не будут работать. Я уверен, что смогу понять остальное.

+0

Не должен ли apt-get работать с sudo priviledges? –

+2

Добавьте 'set -x' в скрипт и посмотрите, какой результат вы получите? Работают ли строки 'apt-get'? Вы уверены, что знаете, в каком каталоге вы выполняете этот скрипт? Помогает ли использование абсолютного пути? –

+0

команды apt-get работают нормально. Скрипт фактически передается как строка в переменную в python, которая затем использует этот синтаксис, чтобы называть его скриптом sh при инициализации. Я пробовал абсолютные пути, и результат тот же. Я попробовал 'set -x', но ничего не произошло. –

ответ

1

Мне удалось выяснить, спасибо за помощь. Для не-родных команд мне нужно было указать пользователя, используя su 'user' -c 'command', что позволило мне запускать команды вроде pip install boto и aws s3 ls. Надеюсь, если кто-нибудь столкнется с этой проблемой, это поможет!

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