Интерфейс командной строки AWS: передача аргументов в --user-data (сценарий оболочки) в экземплярах выполнения aws ec2

Я пытаюсь запустить экземпляр aws ec2 через cli.

aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 \
 --instance-type t2.medium --key-name myKey \
 --security-group-ids sg-yyyyyyyy --subnet-id subnet-mysubnet \ 
 --region us-east-1 --user-data file://myscript

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

--user-data file://myscript

пример сценария оболочки:

echo $1
echo $2

person Vishal R    schedule 03.07.2017    source источник
comment
У меня точно такая же проблема. Вы когда-нибудь находили решение этой проблемы?   -  person efbbrown    schedule 14.02.2018
comment
нет, но я нашел обходной путь. Я выполнял сценарий через Jenkins, поэтому использовал команду sed. Вы можете узнать об этом здесь, geeksforgeeks.org/sed-command-in-unix Проверьте ответы Фредерика Анри и Джона Ротенштейна ниже.   -  person Vishal R    schedule 14.02.2018
comment
ОК, спасибо за быстрый ответ. Мы используем аналогичный обходной путь вздох ¯_ ༼ ᴼل͜ᴼ ༽ _ / ¯   -  person efbbrown    schedule 14.02.2018


Ответы (2)


Я не думаю, что ты сможешь, по крайней мере, мы никогда так не поступали.

Однако мы установили инструмент awcli (например, через pip) в наши пользовательские данные и прочитали хранилище файлов JSon на s3 со всеми необходимыми параметрами.

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

person Frederic Henri    schedule 03.07.2017

Вы можете либо создать myscript файл с параметрами, а затем вызвать run-instances, либо передать параметры в командной строке:

aws ec2 run-instances ... --user-data "#!\naws ec2 describe-instances --instance-id $INSTANCE\n"

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

person John Rotenstein    schedule 03.07.2017