Как использовать Cloud-init для создания сервера Ubuntu 20 с определенным диском size?

Как установить начальный размер диска для виртуальных серверов Ubuntu 20, предоставленных Cloud-init, при самостоятельном хостинге?

Я изучал cloudinit docs , но я не вижу возможности установить размер диска. Свойство Cloud-init disk size выглядит неудачно названным, поскольку в документах это свойство описывается как процент от общего дискового пространства , которое будет занимать раздел. Таким образом, размер 30 сделает раздел 30% всего диска.

Также в некоторых местах в документации упоминается об изменении размера файловой системы до 100% диска при первой загрузке, но я не вижу, как указать этот начальный размер диска для размер этого раздела необходимо изменить.

Является ли Cloud-init предназначенной ролью только после того, как какой-то другой процесс создал начальные диски?

Мой вариант использования - автоматизировать создание виртуальных серверов Ubuntu 20, которые я размещаю самостоятельно. То, что я успешно делал в течение многих лет с помощью комбинации Virtualbox и пользовательских сценариев оболочки. IMHO Cloud-init framework добавляет сложности без явных преимуществ для простых домашних установок. По логике, должна существовать точка масштабирования, когда затраты времени и усилий на использование Cloud-init начинают окупать этот долг. Поэтому я пытаюсь использовать фреймворк подготовки системы, который входит в комплект Ubuntu. Кажется, есть много интересных функций, таких как создание пользователей, изменение размера дисков при первой загрузке. Система просто должна быть увеличена в начале. Конечно, я мог бы добавить в систему дополнительный диск, но это добавляет дополнительное управление для резервного копирования и т. Д.

0
задан 26 November 2020 в 15:01

1 ответ

Предполагаемая роль Cloud-init только после того, как какой-либо другой процесс создал начальные диски?

да - это так. Cloud init работает « внутри » гостя, он не может изменить фактический размер предоставленного диска. Это может повлиять только на то, какой объем файловой системы на нем будет потреблять диск.

Порядок рабочего процесса:

  1. На хосте инструмент создает файл изображения qcow определенного размера. (обычно у вас будет облачный образ, и вы сделаете новый файл COW-клоном, для начальная скорость развертывания; в зависимости от уровня Pro вы можете пойти более сложным по мере необходимости, но это решение работает нормально)
  2. Когда гость запускает cloud-init, помогает настроить это, чтобы различать это из других тысяч раз, когда вы создаете экземпляр из одного и того же изображения. В виде часть этого (по умолчанию) расширяет ФС на диске до 100% диска размер, поскольку это то, что требуется в большинстве случаев (или до установленного вами процента, если 100% - это не то, что вам нужно)..

Чтобы изменить размер диска для различных созданных гостей, вам нужно создать разные размеры на шаге №1 на хосте.

Если вы хотите, вы можете взглянуть на uvtool, который выполняет оба вышеуказанных шага, чтобы узнать больше об этом.

P.S. Если вы думаете, что cloud-init больше похож на установщик... то это curtin. Но чтобы было ясно — в виртуальной среде, которая все еще не может изменить размер фактического диска — это всегда будет на уровне гипервизора, предоставляющего указанный диск.

1
ответ дан 27 November 2020 в 06:51

Другие вопросы по тегам:

Похожие вопросы: