Butane#
Butane - это инструмент, который помогает генерировать из человекочитаемого файла Butane в формате YAML конфигурационный файл Ignition в формате JSON для развертывания ОС.
Функциональность#
Файлы Butane позволяют задать сценарии:
создания пользователей;
создания файлов систем;
настройки сетей;
установки системных устройств;
и др.
Butane может быть запущен из образа контейнера при помощи podman или docker, из репозитория пакетов или загружен как независимый двоичный файл, подробнее в подразделе «Конфигурация Ignition» раздела «Установка» Документа «Руководство по установке» продукта Platform V SberLinux OS Core (SLC).
Развертывание Butane#
Запустите Butane с помощью Docker:
docker run --rm -it <image_path>
Где:
--rm- автоматически удаляет контейнер после завершения работы;-it- запускает контейнер в интерактивном режиме с доступом к командной строке внутри него.
Или запустите Butane, используя файл в качестве входного и стандартного вывода.
podman run --interactive --rm --security-opt label=disable \
--volume ${PWD}:/pwd --workdir /pwd quay.io/coreos/butane:release \
--pretty --strict < your_config.bu > transpiled_config.ign
Где опции:
--interactive- позволяет взаимодействовать c контейнером через стандартный ввод;--security-opt label=disable- применяет к контейнеру настройки безопасности, отключающие разделение меток;--volume- управляет объемами данных;--workdir- позволяет установить другое значение по умолчанию для рабочего каталога.--pretty- форматирует файл в формат JSON;--strict- выдает ошибку и прерывает выполнение команды при любом предупреждении;<your_config.bu>- файлButaneв форматеYAML.
Сценарии использования#
Добавление псевдонима#
Для добавления псевдонима в конфигурацию оболочки используйте команду:
alias butane='podman run --rm --interactive \
--security-opt label=disable \
--volume "${PWD}":/pwd --workdir /pwd \
quay.io/coreos/butane:release'
Добавление скрипта оболочки#
Для добавления скрипта оболочки по адресу ~/.local/bin/butane используйте команду:
#!/bin/sh
exec podman run --rm --interactive \
--security-opt label=disable \
--volume "${PWD}":/pwd --workdir /pwd \
quay.io/coreos/butane:release \
"${@}"
Написание и использование конфигураций Butane#
Для того чтобы задать ssh-ключ у основного пользователя машины, используйте следующую настройку файла:
variant: <OS>
version: <version>
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc...
Где:
<OS>- наименование операционной системы;<version>- версия операционной системы.
Полученный файл передайте на машину с помощью команды:
$ ./bin/amd64/butane example.bu
{"ignition":{"config":{"replace":{"source":null,"verification":{}}},"security":{"tls":{}},"timeouts":{},"version":"3.0.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa ssh-rsa AAAAB3NzaC1yc..."]}]},"storage":{},"systemd":{}}
В результате выполнения команды сконфигурированный файл пересоздается в формате JSON. Утилита Ignition совершит обработку файла с последующей настройкой машины.
Пользователи и группы#
Создание пользователей#
Следующая конфигурация файла предоставляет пользователю core возможность встроить ключ key1:
variant: <OS>
version: <version>
passwd:
users:
- name: core
ssh_authorized_keys:
- key1
Добавление пользователей в группы#
Для добавления пользователя в группы используйте следующую конфигурацию файла:
variant: <OS>
version: <version>
passwd:
users:
- name: <user>
ssh_authorized_keys:
- key1
home_dir: /home/<user>
no_create_home: true
groups:
- <group1>
- <group2>
shell: /bin/bash
Где:
<user>- имя пользователя;<group1>,<group2>- наименования групп.
Использование аутентификации по паролю#
Следующая конфигурация позволяет установить хеш-пароль для одного или нескольких локальных пользователей, для генерации хеш-пароля используйте менеджер паролей:
variant: <OS>
version: <version>
passwd:
users:
- name: <user>
ssh_authorized_keys:
- key1
password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
home_dir: /home/<user>
no_create_home: true
groups:
- <group1>
- <group2>
shell: /bin/bash