Создание конфигурации Ignition
Обзор Ignition
Ignition — это утилита провизионирования, которая читает конфигурационный файл (в формате JSON) и провизионирует систему Fedora CoreOS на основе этой конфигурации. Настраиваемые компоненты включают хранилище и файловые системы, юниты systemd и пользователей.
Ignition запускается только один раз во время первой загрузки системы (пока находится в initramfs). Поскольку Ignition запускается так рано в процессе загрузки, он может переразбивать диски, форматировать файловые системы, создавать пользователей и записывать файлы до того, как начнёт загружаться пространство пользователя. В результате службы systemd уже записаны на диск, когда запускается systemd, что ускоряет время загрузки.
Процесс настройки
Конфигурации Ignition имеют формат JSON, который быстро и легко читается машиной. Однако эти файлы неудобны для чтения или записи человеком. Решение — двухэтапный процесс настройки, удобный как для людей, так и для машин:
-
Создайте конфигурацию Butane в формате YAML.
-
Запустите Butane, чтобы преобразовать файл YAML в конфигурацию Ignition в формате JSON.
Во время процесса транспиляции Butane проверяет синтаксис файла YAML, что позволяет выявить ошибки до того, как вы используете его для запуска системы FCOS.
Как только у вас есть файл Ignition (.ign), вы можете использовать его для загрузки системы FCOS в виртуальной машине или её установки на «голое железо».
| Постарайтесь спланировать конфигурацию с полным набором деталей настройки до провизионирования экземпляра Fedora CoreOS. Но не волнуйтесь, если вы что-то забыли, так как вы можете исправить конфигурацию и повторно развернуть экземпляр из свежего образа. |
Получение Butane
Вы можете запускать Butane как контейнер с помощью docker или podman или загрузить его как отдельный бинарный файл.
| Если не указано иное, новые выпуски Butane обратно совместимы со старыми выпусками. |
Через контейнер с podman или docker
Вы можете получить Butane из контейнера, размещённого на quay.io:
podman pull quay.io/coreos/butane:release
Тег release отслеживает самый последний выпуск, а тег latest отслеживает ветку разработки Git.
|
Запускайте Butane либо используя стандартный ввод и стандартный вывод, либо используя файлы:
podman run --interactive --rm quay.io/coreos/butane:release \
--pretty --strict < your_config.bu > transpiled_config.ign
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
Чтобы упростить ввод, вы также можете добавить следующий псевдоним в конфигурацию вашей оболочки:
alias butane='podman run --rm --interactive \
--security-opt label=disable \
--volume "${PWD}:/pwd" --workdir /pwd \
quay.io/coreos/butane:release'
| В этих примерах используется podman, но вы можете аналогичным образом использовать docker. |
Установка через пакеты дистрибутива
Установка через клиент Windows Package Manager (winget)
Butane доступен как пакет winget:
winget install --id Fedora.CoreOS.butane
Отдельный бинарный файл
Linux
Чтобы использовать бинарный файл Butane в Linux, выполните следующие шаги:
-
Если вы ещё этого не сделали, загрузите ключи подписи Fedora и импортируйте их:
curl https://fedoraproject.org/fedora.gpg | gpg --import -
Загрузите последнюю версию Butane и отсоединённую подпись со страницы выпусков.
-
Проверьте её с помощью gpg:
gpg --verify butane-x86_64-unknown-linux-gnu.asc
macOS
Чтобы использовать бинарный файл Butane в macOS, выполните следующие шаги:
-
Если вы ещё этого не сделали, загрузите ключи подписи Fedora и импортируйте их:
curl https://fedoraproject.org/fedora.gpg | gpg --import -
Загрузите последнюю версию Butane и отсоединённую подпись со страницы выпусков.
-
Проверьте её с помощью gpg:
gpg --verify butane-x86_64-apple-darwin.asc
Windows
Чтобы использовать бинарный файл Butane в Windows, выполните следующие шаги:
-
Если вы ещё этого не сделали, загрузите ключи подписи Fedora и импортируйте их:
Invoke-RestMethod -Uri https://fedoraproject.org/fedora.gpg | gpg --import -
Загрузите последнюю версию Butane и отсоединённую подпись со страницы выпусков.
-
Проверьте её с помощью gpg:
gpg --verify butane-x86_64-pc-windows-gnu.exe.asc
Пример
Создайте базовую конфигурацию Ignition, которая изменяет пользователя Fedora CoreOS по умолчанию core, чтобы позволить этому пользователю входить в систему с помощью SSH-ключа.
Общие шаги следующие:
-
Напишите конфигурацию Butane в формате YAML.
-
Используйте Butane, чтобы преобразовать конфигурацию Butane в конфигурацию Ignition (JSON).
-
Загрузите свежий образ Fedora CoreOS с полученной конфигурацией Ignition.
Предварительное требование
В этом примере используется пара открытого и закрытого SSH-ключей. Если у вас её ещё нет, вы можете сгенерировать пару SSH-ключей.
Открытый SSH-ключ будет провизионирован на машину Fedora CoreOS (через Ignition). Закрытый SSH-ключ должен быть доступен вашему пользователю на локальной рабочей станции, чтобы вы могли удалённо аутентифицироваться по SSH.
Написание конфигурации Butane
-
Скопируйте следующий пример в текстовый редактор:
variant: fcos version: 1.7.0 passwd: users: - name: core ssh_authorized_keys: - ssh-rsa AAAA... -
Замените приведённую выше строку, начинающуюся с
ssh-rsa, содержимым вашего файла открытого SSH-ключа. -
Сохраните файл под именем
example.bu.
| Файлы YAML должны иметь согласованные отступы. Хотя Butane проверяет синтаксические ошибки, убедитесь, что отступы соответствуют приведённому выше примеру. В целом конфигурации Butane должны соответствовать формату спецификации конфигурации Butane. |
Если вы используете VS Code с расширением Red Hat Yaml, вы можете связать файлы *.bu с yaml в настройке files.associations и получить справку/автодополнение.
|
| Вы также можете установить пароль для входа в консоль (аутентификация по паролю через SSH отключена). См. Использование аутентификации по паролю. |
Использование Butane
-
Запустите Butane для конфигурации Butane:
butane --pretty --strict example.bu > example.ign -
Используйте файл
example.ignдля загрузки Fedora CoreOS.
При использовании Butane в Windows > example.ign создаст файл Ignition в кодировке UTF-16. Это может помешать правильной загрузке Fedora CoreOS. Используйте вместо этого --output example.ign.
|
Want to help? Learn how to contribute to Fedora Docs ›