2016-03-30 19 views
2

Şu anda AMI'leri Packer üzerinden sorunsuz bir şekilde yapıyorum, ancak AWS kimlik bilgilerini benim istediğim gibi olmayan komut dosyalarına yapıyorum. Packer belgelerini okumak, kimlik bilgileri bulunmadığında AWS rolünü kullanabileceğini belirtir.AMI'leri oluşturmak için Packer ile AWS rolleri nasıl kullanılır

İlke ve rolünü oluşturdum, ancak Packer'a bu rolü nasıl kullanacağını açıklamak bana açık değil. ARN'yi değişken olarak geçmek zorunda mıyım?

Herhangi bir düşünce?

+0

https://www.packer.io/docs/builders/amazon.html Bunu denediniz mi? –

+0

Bu sayfayı okudum, ancak AWS kimlik bilgilerini belirtmek istemiyorum. Ben sadece rolünü kullanmak istiyorum. Iam_instance_profile dosyasını paketleyiciye iletebileceğinizi ve bunu oluşturduğum role göre ayarlayabileceğinizi buldum. Bu komut satırında iyi çalışıyor, ama bunu Jenkins'de yapmaya çalışıyorum ve onları nasıl iyi oynayacağımı anlayamadım. Packer dokümanları iam_instance_profile kullanımı hakkında net değildir. Bunu bulmak için Github'u kazmalıydım. –

cevap

2

Roller yalnızca AWS üzerinde çalışan örneklere uygulanır ve roller yalnızca bir örnek oluşturduğunuzda uygulanabilir (ancak bu role daha sonra atanan izinleri daha sonra değiştirebilirsiniz).

Eğer AMI oluşturulması için rolleri kullanmak istiyorsanız Yani bu durumda, sen ...

  1. oluşturmak için izinlere sahip bir rol (Kush sağlanan bağlantıyı ayrıntılı yani olanlar) oluşturma gerekecektir Amis
  2. Eğer AMI w oluşturabilir sonra, bu örneği kullanarak o örneğe

üzerinde Packer yükleyin o rolle bir örneğini oluşturma Herhangi bir kimlik bilgisi belirtin.

+0

referans IAM rolü: https://www.packer.io/docs/builders/amazon.html#using-an-iam-task-or-instance-role –

-1

Eğer Packer komut satırından AMI yaratılış (mesela Jenkins adlı) sırasında kullandığı IAM rol ayarlamak isterseniz, o zaman bu kadar, örneğin yapmak için değişkenler kullanabilirsiniz sizin Packer komut aşağıdaki kullanarak:

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

yüzden bizim packer_profile değişken için bir varsayılan "Packer" değer sağlayacak. Jenkins de komut satırından Packer yürütmesini Sonra, kullanmakta olduğu varsayılan değişken değerini geçersiz:

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

Umut bu yardımcı olur!

İlgili konular