#amazon-web-services #jenkins #github #packer
#amazon-веб-сервисы #дженкинс #github #упаковщик
Вопрос:
Мне нужно, чтобы Packer создал образ в AWS. Шаблон Packer будет сохранен в репозитории Github и развернут с помощью Jenkins.
Где я должен указать свой доступ к AWS и секретные ключи? Я не могу поместить их в шаблон JSON в Github (это было бы плохо) : (
Настраивать ли мне свои ключи доступа с помощью командной строки AWS на сервере Jenkins или я могу указать свои в плагине Jenkins Packer?
Комментарии:
1. Для чего именно нужны учетные данные? Для какого ресурса? С какой целью? Эта информация повлияет на правильный метод хранения учетных данных.
Ответ №1:
Лучший вариант — использовать рабочий узел с ролью экземпляра, у которого есть необходимые разрешения для запуска Packer. Второй вариант — использовать плагин Jenkins secrets для хранения секретов и установки их в качестве переменных среды в вашем задании сборки Packer.
Комментарии:
1. Спасибо; то, что я никогда не рассматривал.
Ответ №2:
Я проведу расследование с использованием плагина Jenkins secrets. Тем временем я могу указать секретный ключ и ключ доступа в поле «Дополнительные параметры», как показано. Шаблон Packer сохраняется в Github, который Jenkins извлекает при выполнении задания. Не использовал плагин Github Pull из соображений безопасности.
Ответ №3:
Как ответил Рикард, лучше использовать роль экземпляра. Способ, которым мы реализовали, заключается в том, что у нас есть роль под названием «PackerRole» с необходимыми разрешениями, которая используется packer. В файле packer.json укажите роль как «iam_instance_profile»: «PackerRole».
Теперь создайте отдельную роль под названием «JenkinsRole» (любое подходящее вам имя, которое будет использоваться узлом Jenkins), которая имеет встроенную политику для передачи «PackerRole».
{ «Sid»: «», «Эффект»: «Разрешить», «Действие»: «iam: passrolle», «Ресурс»: «arn: aws: iam::1234567:role/PackerEc2Role»}