astra-elafris - пакет с основными программными модулямиastra-elafris-presets-docker - шаблоны для сборки ОС с инструментом dockerПри необходимости сборки иммутабельной ОС для развёртывания кластера kubernetes выполните дополнительные действия:
astra-elafris-presets-kubernetes - шаблоны для сборки ОС с компонентами kubernetesastra-elafris-boot - инструменты для подготовки инфраструктуры для сетевой загрузкиКоманда astra-elafris [GLOBAL_OPTIONS] COMMAND
astra-elafris [GLOBAL_OPTIONS] COMMAND
Утилита для создания образов на базе Astra Linux
Global options:
-h, --help Показать это сообщение справки и выйти
-c, --config-file CONFIG_FILE Основной конфигурационный файл (по умолчанию: ./elafris.yaml)
--log-file LOG_FILE Путь к файлу журналов (по умолчанию: /var/log/astra-elafris.log)
--log-level LOG_LEVEL Детализированность журналирования (info, debug) (по умолчанию: info)
-v, --version Версия
-u, --umount Отмонтировать временные диски, остановить сборочную ВМ
--preset-list Вывести список преднастроенных проектов (шаблонов)
Commands:
genproject - сгенерировать проект из готовых преднастроенных проектов
build - создать образ |
Команда astra-elafris genproject -p PROJECT [OPTIONS]
astra-elafris genproject -p PROJECT [OPTIONS]
Options:
-h, --help Показать это сообщение справки и выйти
-p, --project PROJECT Путь/имя создаваемого проекта
-f, --force Перезаписать существующий проект
--servers SERVERS Сгенерировать в проекте файл servers.yaml. Формат - MAC[:hostname[:ip]][, MAC[:hostname[:ip]]]
--servers-file SERVERS_FILE Путь к файлу с настройками для серверов
--preset PRESET Название шаблона (из списка preset-list)
-d, --download Скачать заново файлы для проекта из файла download.yaml |
--servers и --servers-file явдяются взаимоисключающими. Проект создаётся либо из данных командной строки, либо из данных в файлеКоманда astra-elafris build -p PROJECT -o OUTPUT [OPTIONS]
astra-elafris build -p PROJECT -o OUTPUT [OPTIONS] options: -h, --help Показать это сообщение справки и выйти -p, --project PROJECT Путь/имя к проекту, из которого будет создан образ --force Принудительно перезаписать файлы -o, --output OUTPUT Формат выходных данных (sqsh, qcow_sqsh); sqsh - генерация squashfs файлов, qcow_sqsh - генерация qcow2 файла. --servers Создать образы для серверов |
По умолчанию структура каталогов, используемая утилитой выглядит следующим образом:
opt ├── elafris | ├── astra-elafris.py Основной модуль elafris | ├── elafris Каталог с программными модулями | │ └── ... | ├── elafris.yaml Конфигурационный файл | ├── my_build_1 Каталог собираемого проекта "my_build_1" | │ ├── output Каталог с результатами сборки проекта | │ │ └── ... | │ └── settings Каталог с конфигурацией проекта | │ └── ... | ├── my_build_2 Каталог собираемого проекта "my_build_2" | │ ├── output | │ └── settings | └── registry Каталог для загрузки файлов, используемых при сборке проекта | └── ... └── elafris-presets Предустановленные шаблоны └── presets ├── os └── projects |
registry служит для загрузки необходимых бинарных файлов и используется всеми проектами с целью оптимизации занимаемого объема диска. Создаётся в момент создания первого проекта.genproject в соответствии с параметрами, указанными пользователем./elafris/project_name/output выкладывается результат сборки проектаastra-elafris-bootКоманда astra-elafris-boot [OPTIONS]
astra-elafris-boot [OPTIONS]
options:
-h, --help Показать это сообщение справки и выйти
-c, --boot-config BOOT_CONFIG Основной конфигурационный файл (по умолчанию: ./elafris-boot.yaml)
-p, --project PROJECT Путь/имя проекта
--log-file LOG_FILE Путь к файлу журналов (по умолчанию: /var/log/astra-elafris-boot.log)
--log-level LOG_LEVEL Детализированность журналирования (info, debug) (по умолчанию: info)
-v, --version Версия
-l, --links Создать или пересоздать ссылки и меню для загрузки. Совместно с -p.
-b, --boot Настройка компонентов загрузки dnsmasq,samba
-d, --dhcp Настройка фиксированных адресов для DHCP. Совместно с -p.
-A, --all Комплексная настройка boot+links+dhcp. Требует проект -p |
boot_srv: # адрес dhcp,dns,haproxy и tftp сервера, будет использоваться для всех настроек ip: 192.168.0.1 # диапазон выдаваемых адресов dhcp_range: 192.168.0.10,192.168.0.100,255.255.255.0,6h # дополнительные настройки dhcp, и dns. Если не заданы, то будут взяты из /etc/resolv.conf # dhcp_options: # - option:domain-name,mydomain.local # server: # - 1.2.3.4 # - 5.6.7.8 # тип файлов для чтения из конфигурации dhcp # conf_dir_files: str = ',*.conf', # неизменяемый префикс, который должен быть добавлен к файлам меню загрузки. # pxe_prefix: str = '01' pathes: # boot_root_path: '/opt/elafris/boot' # root_path: '/opt/elafris' |
Обязательно проверить и переназначить, если требуется, параметры DHCP сервера:
boot_srv.ip - используется для указания утилите IP-адреса, который будет использоваться всеми сервисами сетевой загрузки. Указанный IP-адрес должен быть назначен на один из сетевых интерфейсов до начала работы с утилитой astra-elafris-bootboot_srv.dhcp_range - диапазон IP-адресов, которые будет назначать dhcp-серверОстальные параметры можно оставить по умолчанию, если не планируется тонкая настройка алгоритма.
В процессе работы утилиты astra-elafris-boot формируется каталог boot
boot
├── pxe каталог с файлами для обеспечения pxe-загрузки
│ ├── pxelinux.cfg конфигурации сетевой загрузки в формате pxe
│ │ ├── 01-08-00-27-30-0a-c9 конфигурации сетевой загрузки сервера с указанным MAC
│ │ └── default
│ ├── kernels каталог для хранения ядра и initramfs загружаемой системы
│ │ └── my_build_1 ядро linux для проекта my_build_1
│ │ ├── initrd.img-6.1.152-1-generic
│ │ └── vmlinuz-6.1.152-1-generic
│ ├── chain.c32
│ ├── ldlinux.c32
│ ├── libcom32.c32
│ ├── libutil.c32
│ ├── menu.c32
│ ├── pxelinux.0
│ └── vesamenu.c32
└── sqsh образы файловой системы загружаемой ОС
└── my_build_1 образы файловой системы загружаемой ОС проекта my_build_1
├── 08-00-27-30-0a-c9 образы (или ссылки) для загрузки на сервер с указанным MAC
│ ├── debug каталог для образов, загружаемых в конфигурации debug
│ │ ├── 10_filesystem.squashfs
│ │ ├── 50_settings.squashfs
│ │ └── 99_administrator.squashfs
│ └── regular каталог для образов, загружаемых в конфигурации regular
│ ├── 10_filesystem.squashfs
│ └── 50_settings.squashfs
├── debug
│ ├── 10_filesystem.squashfs
│ └── 99_administrator.squashfs
└── regular
└── 10_filesystem.squashfs
|