У меня есть экземпляр EC2, который запускает приложение, размещенное на частной репликации git.Bundle Git SSH ключи в личное AMI
Мне нужно запустить многие из них с моего главного сервера. На данный момент у меня есть 5 фиксированных «рабочих» экземпляров, которые я запускаю/останавливаю у мастера без проблем. Каждый рабочий запускается, вытягивает репо и запускает приложение при запуске. Это, очевидно, не очень хорошее решение, и я хочу сделать его более гибким (запуск как можно большего количества экземпляров, и т. Д.). Конфигурация и пакеты являются окончательными, поэтому я чувствую себя хорошо, связав все это с AMI.
Есть ли способ для меня связать мои ключи git в AMI, чтобы запустить много подобных экземпляров и заставить их все тянуть и запускать мое приложение при запуске без необходимости подключения к каждому из них и ввода пароля? Есть ли способ лучше? Я читал о cloud-init, пользовательских данных, марионетках и многом другом, но я довольно новичок в этом вопросе и не смог найти подходящий пример с помощью ssh-ключей.
Спасибо за ответ! поэтому, чтобы подвести итог, мне нужно: создать скрипт пользовательских данных, который вставляет мой закрытый ключ, открытый ключ и известные хосты (так что я не должен принимать отпечатки пальцев), запускает ssh-agent, а затем клонирует репо? Тогда все, что мне нужно, это скрутить его при запуске? Извините, я немного смущен – xShirase
Да. Создайте собственный сценарий, который скопирует ключ (ы), известные хосты в правильное место и клонирует репо. Проверьте подлинность сценария на локальном компьютере перед копированием содержимого в поле данных пользователя при запуске экземпляра. – helloV
AWS ожидает данные пользователя в кодированном формате base64. Если вы используете панель управления AWS, есть опция, позволяющая AWS закодировать ее на base64. Если вы используете API/CLI, из документов выясняется, ожидает ли API/CLI кодировать данные. Если после запуска вашего экземпляра, если вы не видите желаемого результата: 'cd/var/lib/cloud/instance/scripts'. Вы должны увидеть там свой сценарий. Попробуйте запустить сценарий, отладить, исправить скрипт и использовать его в качестве пользовательских данных при запуске экземпляров. Я делал это много раз, поэтому не стесняйтесь задавать мне вопросы, если вы не видите желаемых результатов. – helloV