Создание Образов Docker С Помощью Ansible + Vagrant

  • Автор темы AndreaKn
  • Обновлено
  • 18, Oct 2024
  • #1

Итак, я работаю над исследовательским проектом и пытаюсь автоматически создавать определенные среды с использованием различных методов виртуализации.

Итак, сначала я создал Vagrantfile, который извлекает образ Ubuntu, а затем запускает книгу воспроизведения Ansible. У меня есть сценарий, который определяет все для моей среды.

А это значит, что он копирует файлы, устанавливает и все настраивает.

Для VirtualBox это не проблема — моя среда в VirtualBox раскручивается.

Теперь я хочу сделать то же самое, но на Docker. Обычно для определения среды пишут файл docker. Я хочу повторно использовать сценарий Ansible для определения среды (несмотря на то, что это немного нелогично). Хотя в Vagrant, похоже, есть некоторая поддержка Docker — как лучше всего добиться того, чего я хочу? Я хочу создать Docker-контейнер — именно так, как указано в книге действий Ansible. (По сути, повторное использование книги, которую я также использовал для настройки VirtualBox). Результатом должен стать образ Docker, который я могу просто запустить с помощью Docker Run.

 1) Setup a VM with Vagrant.
2) Install Ansible and Docker in that VM.
3) Create a new Docker Image with Ansible. It just defines the Container OS and maybe opens a port so Ansible can SSH into the container?
4) Run the playbook in the container to configure everything.
5) Package the entire thing as a new image
6) Transfer packaged docker image to the host machine
 

Как лучше всего это сделать? На что мне следует обратить внимание?

AndreaKn


Рег
13 Jul, 2014

Тем
60

Постов
197

Баллов
507
  • 25, Oct 2024
  • #2

Если это возможно, я бы использовал Packer для создания артефактов.

Обратите внимание: вам необходимо убедиться, что сборник сценариев Ansible будет работать в обоих типах виртуализированных сред.

Преимущество этого подхода заключается в создании произвольных типов артефактов на основе одного входного сигнала. Вы можете использовать один рабочий процесс для образов Vagrant и Docker, и они будут построены на основе одного и того же состояния кодовой базы (то есть git-хэш).

 

Migserg64


Рег
01 Nov, 2008

Тем
74

Постов
205

Баллов
635
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно