2015-08-11 8 views
1

С Jenkins, работающим в моей сборке VPC. У меня есть работа, которая запускает сборку Packer для выпекания AMI. Во время создания AMI я должен извлечь из своего частного реестра Docker, также работающего в моей сборке VPC.Экземпляр упаковщика, получающий доступ к частному реестру докеров в AWS

У меня заблокирован мой регистратор, поэтому он доступен только от Дженкинса или от моего офиса.

При выпечке AMI мне нужно вытащить изображение докера и запустить с него контейнер. Однако, поскольку экземпляр Packer не разрешен для доступа к реестру, это терпит неудачу.

Я не могу понять, как динамически разрешить доступ к реестру для этого экземпляра.

Есть ли способ сделать это с помощью Packer (или Jenkins), без необходимости постоянно открывать реестр?

+0

Есть ли туннель между офисом и VPC? –

+0

Нет. У меня есть IP-адрес офиса в группе безопасности, которая добавлена ​​в экземпляр. – Will

ответ

1

У меня был бы Packer запуск экземпляра, создаваемого в группу безопасности, с использованием настроек: security_group_id или security_groups_ids. Если вы добавите эту группу к безопасности для экземпляра реестра Docker, тогда связь должна быть разрешена на сетевом уровне. Разрешения все на вас.

https://packer.io/docs/builders/amazon-ebs.html

+0

Добавление SG в другой SG работает только на внутренних IP-адресах, правда? Я использую внешний IP-адрес для моего реестра докеров, поэтому это не сработает. Я собираюсь попробовать ваш предложенный ответ на мой другой вопрос - http://stackoverflow.com/questions/32061542/packer-assign-specific-elastic-ip-to-instance – Will

+0

Итак, вы получаете щедрость, потому что ваш ответьте на мой другой вопрос о фиксированных вещах. Спасибо за вашу помощь :) – Will

+0

Есть лучший способ сделать это (чем я изначально сделал это). Если частный IP-адрес вашего реестра докеров исправлен, что в моем случае это, вы можете написать частный IP-адрес своего реестра в файл/etc/hosts Packer Instance и сопоставить его с обычным DNS, который имеет сертификат SSL присвоено: '' 'echo '{{user' docker_registry_ip'}} {{user 'docker_registry_host'}}' | sudo tee --append/etc/hosts'''. Затем вы можете использовать группу безопасности для саморегуляции. – Will