Компания Collabora представила (https://www.collabora.com/news-and-blog/blog/2018/06/27/intr.../) проект debos (https://github.com/go-debos/debos), в рамках которого подготовлен инструментарий для создания произвольных системных образов для Debian и производных от него дистрибутивов. Код проекта написан на языке Go и распространяется (https://github.com/go-debos/debos) под лицензией Apache 2.0.В отличие от штатного debootstrap, debos позволяет не только загрузить и установить компоненты образа, но и провести кастомизацию, установить дополнительные файлы, запустить скрипты, внести изменения в настройки. Кроме того, в процессе работы debos не требует привилегий root для выполнения привилегированных операций в сформированном системном окружении. В debos применяется библиотека fakemachine (https://github.com/go-debos/fakemachine), которая при помощи QEMU настраивает виртуальную машину, позволяющую выполнять привилегированные операции внутри образов и создавать образы для любых архитектур, поддерживаемых в QEMU.
Debos не привязывается к каким-то конкретным областям применения, таким как создание образов контейнеров, виртуальных машин или загрузочных сборок, а предоставляет универсальный, понятный и гибкий механизм для кастомизации. Начинка образов определяется в файлах конфигурации, оформленных в формате YAML. В файле конфигурации определяется набор не зависящих друг от друга действий. Среди предлагаемых действий (https://godoc.org/github.com/go-debos/debos/actions):
- apt: установка пакетов и связанных с ними зависимостей при помощи команды apt;
- debootstrap: подготовка rootfs с использованием debootstrap;
- download: загрузка файла по сети;
- filesystem-deploy: развёртывание корневой ФС в уже ранее созданном образе;
- image-partition: создание файла с образом с разбивкой на разделы и форматированием;- ostree-commit: создание коммита OSTree из rootfs;- ostree-deploy: развёртывание ветки OSTree в заданный образ;- overlay: рекурсивное копирование каталогов или файлов в целевую ФС;- pack: создание сжатого архива целевой ФС;
- raw: прямая запись файла в образ по заданному смещению;
- run: выполнение команды или скрипта в контексте создаваемой ФС;
- unpack: распаковка файлов из архиве в создаваемую ФС.Например (https://github.com/ana/debos-example), для создания образа для архитектуры ARM64, установки в него определённого набора пакетов, изменения имени хоста в /etc/hostname и упаковки образа в сжатый архив, можно запустить команду "debos example.yaml" со следующими настройками (более подробный пример подготовлен (https://github.com/go-debos/debos-recipes/tree/master/debian...) для создания сборки Debian для Raspberry PI 3):
{{- $image := or .image "debian.tgz" -}}
architecture: arm64
actions:
- action: debootstrap
suite: "buster"
components:
- main
- non-free
mirror: https://deb.debian.org/debian
variant: minbase- action: apt
packages: [ sudo, openssh-server, adduser, systemd-sysv, firmware-linux ]- action: run
chroot: true
command: echo debian > /etc/hostname- action: pack
file: {{ $image }}
compression: gz
URL: https://www.collabora.com/news-and-blog/blog/2018/06/27/intr.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=48860
Collabora Online бомбезная вещь! 2 года юзаем.
>Collabora Onlineзвучит как название мморпг
А debos можно назвать "дебош" :)
Может эта "мморпг" создавать live-iso Devuan, минималистично, с LXDE, и с упаковкой в squashfs, и с автомонтированием пользовательского файла как /home/user (короче, как Пуппилинукс)?
LTSP умеет, только оно для pxe
Collabora решила переписать элементарные девопс практики на Го? Слабовато я считаю, нужно сразу выкатывать систему управления конфигурациями на Го, потому что на существующих всё вышеописанное даже без опыта можно на неделю заролять.
исправление:
- без опыта с нуля за неделю -
АйТи стремительно тупеет.
Ну так если они ничего делать не умеют, кроме каждые три месяца начинать (и не завершать) «универсальный, понятный и гибкий механизм для кастомизации»? Дети подземелий^W городских агломераций ничего не знают о реальной жизни, откуда что берётся и как делается, поэтому всегда строят какую-то абстрактную машину репродукции виртуальной реальности с красочной игрушкой внутри. Что-то мне подсказывает, что любой старый учебник для технического училища ввергнет этих существ в страшную панику.
Задолбал уже дауншифтить, то игры компьютерные ему не нужны, то компы чересчур быстрые и мощные, то учебники для ПТУшников пропагандируешь: свалил бы в тайгу и отстроил лично себе персональный рай с натуральным хозяйством и БЭСМ-6 - потому что никому, кроме тебя он нафиг не сдался.
> Задолбал уже дауншифтить, то игры компьютерные ему не нужны, то компы чересчур
> быстрые и мощные, то учебники для ПТУшников пропагандируешь: свалил бы в
> тайгу и отстроил лично себе персональный рай с натуральным хозяйством и
> БЭСМ-6 - потому что никому, кроме тебя он нафиг не сдался.Ну тогда ответь мне на простой вопрос: что именно считает твой 4-ядерный 8-потоковый Core i7 (при 32 ГБ ОЗУ) в программе Excel 2016 и что считает i486 (при 16 МБ ОЗУ) в программе Excel 5, если обе программы отрисовывают табличку и считают её данные по твоим формулам за одно и то же время.
Казалось бы, при чём здесь Ansible...
mkosi
Оставь это Лёне, нам не надо.
Всё это умеет Packer, для 20+ форматов (образы AMI, OVF, BOX) и для любой совместимой ОС.При этом для провижининга используется что угодно - хоть Ansible, хоть Puppet, хоть голый Shell.
NIH-синдром в классическом исполнении.
Такое ощущение что разработчики выбрали Go только из-за гошного шаблонизатора в конфигах.
device tree туда с u-boot фпихивается ?
Выглядит годно, пляски с debootstrap иногда подзадалбывают. Пока, конечно, возможностей маловато, но наверняка доведут до ума. В Collabora ребята грамотные.
Могули я с помощью этой вещи сделать установочный образ Дебиан с программами с гитхаб и убрать стандартные?
Эй, как там на счет поддержки LSB в Дебиан, все так же криво!
Нужно будет попробовать, а то глюки di уже достали.