Назад | Перейти на главную страницу

Преобразование контейнера Linux в Vagrant и обратно

Ситуация следующая: у нас есть lxc (linux-контейнер), который содержит дистрибутив Debian Squeeze, созданный с помощью файла preseed. Мы хотели добавить несколько дополнительных пакетов (пакетов для тестовой системы OMF), которые не входят в список основных, дополнительных или несвободных пакетов debian. Целью (/ было) является распространение файла preseed, чтобы другие пользователи могли легко использовать дистрибутив debian (с новыми пакетами) в своем контейнере linux. Но LXC, похоже, не дает возможности добавлять дополнительные репозитории (или мы что-то упустили) в установку, откуда можно загрузить и установить дополнительные пакеты.

Решение, которое мы рассмотрели, использует Бродяга в сочетании с Chef, где мы сначала создаем контейнер linux, затем конвертируем этот контейнер linux в бродячий ящик, позволяем vagrant в сочетании с chef добавлять наши собственные пакеты (из репозиториев omf), а затем конвертируем его обратно в контейнер linux. Таким образом, мы распространяем файл предварительной загрузки контейнера linux, VagrantFile и, возможно, какой-нибудь сценарий оболочки для выполнения преобразований.

Но как это сделать? Можно ли преобразовать контейнер linux (/ var / lib / lxc / nameContainer / rootfs) в .box? Или возможно преобразовать .ext2 / .ext4 / .img (мы могли бы сначала преобразовать контейнер linux в это) в .box? И можем ли мы конвертировать обратно (из сгенерированной Vagrant VM в контейнер linux)? Мы не смогли найти никакой информации по этой теме (что, очевидно, не очень хороший знак ...)

Заранее спасибо,

Гленн

Нет автоматического способа, нет. Или, по крайней мере, я не смог найти.

Однако с точки зрения хранения LXC по сути является chroot.

Ты мог:

  • возьмите "chroot" (rootfs)
  • при необходимости добавьте ядро ​​и личинку
  • превратить его в файловую систему на виртуальном диске
  • добавить загрузчик
  • добавить классическую конфигурацию времени загрузки (/etc/fstab и со)
  • создать виртуальную машину VirtualBox вокруг этого виртуального диска
  • преобразовать его в бродячий ящик
  • создайте виртуальную машину из окна Vagrant, трансформируйте ее как хотите
  • снова извлеките систему с диска виртуальной машины
  • верните его в свой chroot после очистки, если вы хотите удалить ядро ​​и материал grub