Рейтинг:0

Как скопировать файл в экземпляр aws ec2 и использовать его в пользовательских данных?

флаг cn

У меня есть файл rpm для приложения, которое создается ежедневно, и которое я хочу установить на сервер EC2, используя пользовательские данные экземпляра ec2 с помощью terraform.

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

Любые предложения, как это сделать?

Tim avatar
флаг gp
Tim
Перетащите файл по sFtp на экземпляр, используя свой ключ ssh, или поместите его на веб-сервер и используйте wget для его загрузки.
Uday Kiran Reddy avatar
флаг cn
нет, это нужно делать до пользовательских данных. И создать отдельный веб-сервер для этого файла невозможно.
Tim avatar
флаг gp
Tim
Прочтите еще раз первую часть моего комментария. Ваше сообщение немного двусмысленно, если вам нужна помощь, пожалуйста, будьте точны.
Uday Kiran Reddy avatar
флаг cn
Я не понял, что тут непонятного. Я четко упомянул, что это пользовательские данные экземпляра aws ec2. Для получения дополнительной информации о пользовательских данных перейдите по этой ссылке https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html.
Uday Kiran Reddy avatar
флаг cn
И sFtp также работает только после пользовательских данных.
Tim avatar
флаг gp
Tim
О, кажется, теперь я понимаю. Каждый раз, когда экземпляр запускается, вы хотите что-то установить в файле RPM.Лучший способ задать вопрос — сказать, чего вы пытаетесь достичь, а не спрашивать, как выполнить шаги, которые, по вашему мнению, вам нужны.
Рейтинг:0
флаг gp
Tim

Вариант первый — сделать файл доступным

Учитывая информацию, которую вы предоставили в комментариях, я думаю, что ваш лучший или, возможно, единственный вариант - сделать файл RPM доступным на веб-сервере, где сценарий пользовательских данных может получить к нему доступ. Если это частный rpm, я бы поместил его на S3 с корзиной, настроенной как веб-сервер, использовал конечную точку S3 в VPC и убедился, что корзина S3 принимает запросы только от этой конечной точки.

Вариант второй — создать AMI

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

Общие шаги для этого:

  • Создать экземпляр
  • Установите RPM вручную
  • Остановить экземпляр
  • Создать образ / AMI

Затем вы используете пользовательский AMI для запуска новых экземпляров.

Даже если это не решит вашу проблему, это может помочь другим с похожей проблемой в будущем.

Uday Kiran Reddy avatar
флаг cn
этот rpm генерируется ежедневно, поэтому создание образа невозможно
Tim avatar
флаг gp
Tim
Это необычно. Я думаю, вам может понадобиться поместить его на веб-сервер - например. S3 для загрузки. Возможно, вы сможете использовать AWS Image Builder для ежедневного создания нового образа сервера.
Uday Kiran Reddy avatar
флаг cn
почему создание нового ami - это решение для установки только rpm. И в этом нет ничего необычного, так как мы ежедневно генерируем rpm каждый раз, когда в нашем коде появляются новые изменения. Пожалуйста, предложите, если у вас есть другой вариант
Tim avatar
флаг gp
Tim
Я дал вам другой вариант в файле. Вы обнаружите, что быстрее получаете лучшие ответы, если заранее даете людям всю информацию. Я немного отредактировал ваш вопрос, чтобы добавить информацию, которую вы предоставили в комментариях.

Ответить или комментировать

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