Как использовать роли AWS с Packer для создания AMI

В настоящее время я создаю AMI через Packer без проблем, но я запекаю учетные данные AWS в свои сценарии, а это не то, что мне нужно. Читая документацию Packer, они указывают, что если учетные данные не найдены, он может использовать роль AWS.

Я создал политику и роль, но мне непонятно, как сказать Пакеру использовать эту роль. Должен ли я передавать ARN в качестве переменной?

есть идеи?


person David Ficociello    schedule 30.03.2016    source источник
comment
packer.io/docs/builders/amazon.html Вы пробовали это?   -  person Kush Vyas    schedule 30.03.2016
comment
Я прочитал эту страницу, но не хочу указывать какие-либо учетные данные AWS. Я просто хочу использовать эту роль. Я обнаружил, что вы можете передать iam_instance_profile упаковщику и установить для него роль, которую я создал. Это отлично работает в командной строке, но я пытаюсь сделать это в Jenkins, и я не понял, как заставить их играть хорошо. Документация Packer не дает четкого представления об использовании iam_instance_profile. Мне пришлось копаться в Github, чтобы найти это.   -  person David Ficociello    schedule 30.03.2016


Ответы (1)


Если вы хотите установить роль IAM, которую Packer использует при создании AMI из командной строки (например, от Jenkins), вы можете использовать для этого переменные, например, используя в своем скрипте Packer следующее:

"variables": {
  "packer_profile": "packer",
  ...
},
"builders": [
  {
    "type": "amazon-ebs",
    ...
    "iam_instance_profile": "{{user `packer_profile`}}",
    ...
  }
],
"provisioners": [
  ...
]

Таким образом, мы предоставляем значение "упаковщика" по умолчанию для нашей переменной packer_profile. Затем при вызове Packer из командной строки в Jenkins вы переопределяете это значение переменной по умолчанию, используя:

$ /path/to/packer -var packer_profile="MyNewProfileHere" ...

Надеюсь это поможет!

person Castaglia    schedule 30.03.2016
comment
Я думаю, что это правильный ответ, но вам просто нужно изменить packer_role на packer_profile - person Joshua G. Edwards; 16.08.2018