cloud-init для автоматического выбора самого маленького диска для установки

Вопрос или проблема

Я пытаюсь автоматизировать установки Ubuntu Desktop на разные ноутбуки. Это у меня получается делать с помощью файла autoinstall.yaml, и он настраивает систему с зашифрованным диском.

Проблема, с которой я сейчас столкнулся, заключается в том, что некоторые ноутбуки сконфигурированы с 2 SSD-дисками. К сожалению, cloud-init выполняет установку на больший диск, а мне нужно, чтобы он был зарезервирован для данных.

Существует ли способ заставить cloud-init всегда выбирать самый маленький диск? Или, в худшем случае, возможно, спросить пользователя выбрать диск для установки?

Я использую модуль хранения вот так для настройки дисков:

  storage:
    layout:
      name: lvm
      sizing-policy: all
      password: '?????'

Ответ или решение

Автоматизированная установка Ubuntu Desktop с использованием cloud-init: выбор наименьшего диска для установки

В процессе автоматизации установки операционной системы Ubuntu Desktop на различное оборудование, включая ноутбуки с несколькими SSD-дисками, может возникнуть задача выбора подходящего диска для инсталляции. В частности, важно избегать установки системы на более крупный диск, который может быть зарезервирован для хранения данных. Рассмотрим, как с помощью cloud-init можно автоматизировать процесс выбора наименьшего диска или предложить пользователю выбрать диск для установки.

Проблема установки на крупный диск

Для начала необходимо определить, почему ваш скрипт установки с использованием autoinstall.yaml по умолчанию выбирает больший диск. Это может быть связано с тем, как cloud-init обрабатывает доступные хранилища. По умолчанию система выбирает диск на основе ряда критериев, в том числе его размера. Таким образом, для решения этой проблемы нужно внести изменения в конфигурацию cloud-init.

Решение: Настройка cloud-init

  1. Настройка конфигурации хранения:
    Основной компонент в вашем случае — это модуль хранения (storage), который вы уже используете. Можно модифицировать базовую конфигурацию в файле autoinstall.yaml, добавив условия для выбора наименьшего диска.

    Пример:

    storage:
     layout:
       name: lvm
       sizing-policy: all
       password: '?????'
     disks:
       - device: /dev/sda
         size: auto      # Автоматически выбирает размер
       - device: /dev/sdb
         size: auto

    В данном примере указываются все доступные устройства, однако для выбора наименьшего диска потребуется более продвинутое решение.

  2. Создание скрипта для определения наименьшего диска:
    Можно использовать пользовательские скрипты для определения размера дисков в порядке их увеличения и выбирать наименьший. Это можно сделать, добавив bootcmd в вашу конфигурацию:

    bootcmd:
     - |
       smallest_disk=$(lsblk -b -o SIZE,NAME | sort -n | awk 'NR==2{print $2}')
       echo "Selected disk for installation: $smallest_disk"

    Этот скрипт отсортирует списки дисков по размеру и выборет наименьший.

  3. Интерактивный выбор диска:
    Если автоматизированный выбор не удовлетворяет требованиям, можно предложить интерактивный выбор диска пользователю. Это делается через пользовательские команды во время установки:

    user-data:
     autoinstall:
       version: 1
       later:
         - |
           echo "Выберите диск для установки:"
           lsblk
           read disk_choice
           echo "Вы выбрали: $disk_choice"

    Таким образом, пользователю будет предоставлена возможность выбрать диск для установки в интерактивном режиме.

Заключение

С помощью указанных решений вы сможете автоматизировать выбор наименьшего диска для установки операционной системы на различных ноутбуках. Анализ доступных дисков с помощью lsblk в сочетании с пользовательскими скриптами и взаимодействием с пользователем предоставляет гибкое решение данной задачи. Настройка cloud-init позволяет не только упростить установку, но и обеспечить соответствие требованиям пользователей по управлению дисковым пространством.

Для достижения наилучших результатов рекомендуется провести несколько тестов на различных моделях ноутбуков, чтобы увериться в корректности работы скриптов и настроек.

Оцените материал
Добавить комментарий

Капча загружается...