LXD: различия между версиями

Материал из ALT Linux Wiki
Строка 74: Строка 74:
Есть еще профили <tt>ve/systemd-etcnet</tt> и <tt>ve/sysvinit-etcnet</tt>.
Есть еще профили <tt>ve/systemd-etcnet</tt> и <tt>ve/sysvinit-etcnet</tt>.


Затем нужно подготовить метаданные. Создать файл {{path|metadata.yaml}} со следующим содержимым:
Из полученого rootfs нужно сделать образ с помощью {{pkg|distrobuilder}}.
<pre>
architecture: "x86_64"
creation_date: 1624481977 # To get current date in Unix time, use `date +%s` command
properties:
architecture: "x86_64"
description: "ALT Sisyphus (20210623)"
os: "altlinux"
release: "sisyphus"
</pre>


И сделать {{path|metadata.tar.xz}}.
Допустим, что собирается образ для бранча p9 и архитектуры x86_64. Для этого нужно создать каталоги images/p9/cloud и скопировать туда rootfs c именем alt-p9-rootfs-systemd-x86_64.tar.xz. И раздавать каталог images по http. Например так:
  $ tar -cvJf metadata.tar.xz metadata.yaml
$ cd images
Добавить полученый образ в lxd.
$ python3 -m http.server
  $ lxc image import systemd-networkd.tar.xz metadata.yaml --alias myimage
 
Теперь нужно будет от root создать каталог, где будут лежать образы и скоприровать в него файл {{path|/usr/share/doc/distrobuilder-*/doc/ci/alt.yaml}}. В скопированном файле {{path|alt.yaml}}
в поле <tt>source</tt> заменить <tt>url</tt> на http://localhost:8000 и добавить <tt>skip_verification: true</tt>.
 
Затем собрать образ.
  # distrobuilder build-lxd alt.yaml -o image.release=p9 -o image.architecture=amd64
 
И добавить полученый образ в lxd.
  $ lxc image import lxd.tar.xz rootfs.squashfs --alias myimage


[[Category:Виртуализация]]
[[Category:Виртуализация]]
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}

Версия от 14:47, 14 июля 2021

LXD это новое поколение системы управления контейнерами, базирующееся на Linux containers.

Установка и настройка

Установить пакет lxd.

# apt-get install lxd

Добавить отображение uid и gid в файлы /etc/subuid и /etc/subgid:

root:100000:65536
lxd:100000:65536

Включить сервис lxd.

# systemctl enable --now lxd

Запустить первоначальную настройку.

# lxd init

Добавить пользователя от которого будет запускаться lxd в группу lxd.

# usermod username --append --groups lxd

Запуск

Доступные образы ALT на images.linuxcontainers.org

$ lxc image list images:alt

Примерный вывод:

alt/Sisyphus (3 more) a6bb3268c7a1 yes Alt Sisyphus amd64 (20190710_01:17) x86_64 227.27MB "Jul 10 2019 at 12:00am (UTC)"
alt/Sisyphus/arm64 (1 more) 4d860461a016 yes Alt Sisyphus arm64 (20190710_01:17) aarch64 177.23MB "Jul 10 2019 at 12:00am (UTC)"
alt/Sisyphus/i386 (1 more) 62d0664ce372 yes Alt Sisyphus i386 (20190710_01:17) i686 183.37MB "Jul 10 2019 at 12:00am (UTC)"
alt/Sisyphus/ppc64el (1 more) 143672c92ab2 yes Alt Sisyphus ppc64el (20190710_01:17) ppc64le 183.72MB "Jul 10 2019 at 12:00am (UTC)"
alt/p8 (3 more) b6674565b63b yes Alt p8 amd64 (20190710_01:17) x86_64 231.58MB "Jul 10 2019 at 12:00am (UTC)"
alt/p8/i386 (1 more) 864957bdb260 yes Alt p8 i386 (20190710_01:17) i686 182.66MB "Jul 10 2019 at 12:00am (UTC)"
alt/p9 (3 more) 262a6ff9259c yes Alt p9 amd64 (20190710_01:17) x86_64 226.51MB "Jul 10 2019 at 12:00am (UTC)"
alt/p9/arm64 (1 more) 7643261d1273 yes Alt p9 arm64 (20190710_01:17) aarch64 176.94MB "Jul 10 2019 at 12:00am (UTC)"
alt/p9/i386 (1 more) 4faf887493d7 yes Alt p9 i386 (20190710_01:17) i686 183.38MB "Jul 10 2019 at 12:00am (UTC)"
alt/p9/ppc64el (1 more) df49ca8bf30a yes Alt p9 ppc64el (20190710_01:17) ppc64le 182.81MB "Jul 10 2019 at 12:00am (UTC)"

Образы доступены для следующих архитектур:

  • amd64
  • arm64
  • i386
  • ppc64el

Запустить контейнер.

$ lxc launch images:alt/p9 first

Убедится, что он есть.

$ lxc ls

Зайти в него.

$ lxc exec first bash

Остановить контейнер.

$ lxc stop first

И удалить его.

$ lxc rm first

Сборка образов

Сборка с использованием официального rootfs

Образы для lxd собираются с помощью distrobuilder.

# apt-get install distrobuilder
# distrobuilder build-lxd /usr/share/doc/distrobuilder-*/doc/ci/alt.yaml -o image.release=p9 -o image.architecture=amd64

Вместо /usr/share/doc/distrobuilder-*/doc/ci/alt.yaml можно передать свой конфиг для настройки будущего образа, а через image.release=Sisyphus можно собрать другой релиз (в данном случае Sisyphus).

Добавить полученый образ в lxd.

$ lxc image import lxd.tar.xz rootfs.squashfs --alias myimage

Сборка с использованием mkimage-profiles

Для официального образа используется профиль ve/systemd-networkd. Собрать его можно следующей командой.

$ make ve/systemd-networkd.tar.xz

Есть еще профили ve/systemd-etcnet и ve/sysvinit-etcnet.

Из полученого rootfs нужно сделать образ с помощью distrobuilder.

Допустим, что собирается образ для бранча p9 и архитектуры x86_64. Для этого нужно создать каталоги images/p9/cloud и скопировать туда rootfs c именем alt-p9-rootfs-systemd-x86_64.tar.xz. И раздавать каталог images по http. Например так:

$ cd images
$ python3 -m http.server

Теперь нужно будет от root создать каталог, где будут лежать образы и скоприровать в него файл /usr/share/doc/distrobuilder-*/doc/ci/alt.yaml. В скопированном файле alt.yaml в поле source заменить url на http://localhost:8000 и добавить skip_verification: true.

Затем собрать образ.

# distrobuilder build-lxd alt.yaml -o image.release=p9 -o image.architecture=amd64

И добавить полученый образ в lxd.

$ lxc image import lxd.tar.xz rootfs.squashfs --alias myimage