Выпуск Bastille 0.14, системы управления контейнерами на основе FreeBSD Jail

Опубликован выпуск Bastille 0.14.20250420, системы для автоматизации развёртывания и управления приложениями, запускаемыми в контейнерах, изолированных при помощи механизма FreeBSD Jail. Код написан на Shell, не требует для работы внешних зависимостей и распространяется под лицензией BSD.

Для управления контейнерами предоставляется утилита командной строки bastille, позволяющая создавать и обновлять Jail-окружения на базе выбранной версии FreeBSD, а также выполнять типовые операции с контейнерами, такие как запуск/остановка, сборка, клонирование, импорт/экспорт, преобразование, изменение настроек, управление сетевым доступом и задание ограничений потребления ресурсов.

Допускается развёртывание в контейнере окружений c Linux (Ubuntu и Debian), выполняемых с использованием Linuxulator. Из расширенных возможностей поддерживается запуск типовых команд разом в нескольких контейнерах, вложенные шаблоны, снапшоты и резервное копирование. Корневой раздел в контейнере монтируется в режиме только для чтения. Окружение для запуска контейнеров может быть создано как на физических серверах или платах Raspberry Pi, так и в облачных сервисах AWS EC2, Vultr и DigitalOcean.

В репозитории предлагается около 80 шаблонов для быстрого запуска контейнеров типовых приложений, в которых представлены программы для серверов (nginx, mysql, wordpress, asterisk, redis, postfix, elasticsearch, salt и т.п.), разработчиков (gitea, gitlab, jenkins
jenkins, python, php, perl, ruby, rust, go, node.js, openjdk) и пользователей (firefox, сhromium). Поддерживается создание стеков контейнеров, позволяющих использовать один шаблон в другом.

В новом выпуске:

  • Добавлена опция “-c” (“–config”) и переменная окружения BASTILLE_CONFIG для задания пользовательского файла конфигурации. Данные будут храниться отдельно, в привязке к указанному файлу конфигурации.
  • Добавлен режим auto-mode (“-a”, “–auto”) для запуска и остановки jail-окружений при необходимости.
  • Добавлен режим debug-mode (“-x”, “–debug”) для отладки инфраструктуры.
  • Реализована возможность добавления задержки перед запуском другого Jain-окружения (например, когда в одном jail запускается СУБД, используемая в остальных jail).
  • Добавлена возможность указания нескольких целевых окружений в команде “console”.
  • В команду “create” добавлена поддержка указания параметров ZFS и настройки VLAN для Jail с виртуальным сетевым стеком VNET.
  • В команду “destroy” добавлена возможность удаления кэша и указания списка jail для выполнения операции.
  • В команду “limits” добавлены операции “clear”, “reset”, “stats”, “show”, “add” и “remove”.
  • В команду “list” добавлена возможность вывода в формате JSON.
  • В команду “network” добавлена поддержка добавления и удаления разом нескольких сетевых интерфейсов в jail.
  • На смену опции “rcorder” для управления порядком запуска реализованы опции “boot=on/off” и “priority=N”.

Release. Ссылка here.