Установка сервера с помощью скрипта cloud-init?

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

Я только что установил (физический, “bare metal”) сервер с новым образом установки сервера 21.10 (чтобы протестировать и подготовиться к 22.04) на USB-накопитель.

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

Как мне сделать так, чтобы установка сервера 21.10/22.04 использовала заданный файл cloud-init с веб-сервера вместо интерактивного диалога (за исключением установки через pxe/maas)?

С уважением

Если вы будете использовать интерфейс Subiquity Terminal, опции cloud-init не будет. Однако, если вы посмотрите на autoinstall, в рамках этого вы можете предоставить раздел user-data и включить туда настройки cloud-init.

https://ubuntu.com/server/docs/install/autoinstall

https://ubuntu.com/server/docs/install/autoinstall-reference

Вам нужно будет изменить строку ядра grub на установочном носителе. Вам потребуется включить такие опции, как ‘autoinstall’, а также ‘datasource(ds)’ в строку ядра. Например:

autoinstall ds=nocloud-net;s=http://10.10.0.1:8000/

В дополнение к упомянутым выше ссылкам на autoinstall, вам следует обратиться к документации cloud-init, особенно по источнику Nocloud.

https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html

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

Установка сервера с использованием скрипта cloud-init может значительно упростить процесс, особенно если вы хотите развернуть несколько серверов с одинаковыми настройками. В версиях Ubuntu Server 21.10 и 22.04 вы можете использовать функцию autoinstall для автоматизации установки с использованием cloud-init.

Вот пошаговая инструкция, как настроить установку Ubuntu Server с использованием файла cloud-init из вашего веб-сервера:

1. Подготовка файла cloud-init

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

#cloud-config
users:
  - name: myuser
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: admin
    shell: /bin/bash

package_update: true
package_upgrade: true
packages:
  - vim
  - htop

Загрузите этот файл на ваш веб-сервер, чтобы он был доступен по URL (например, http://10.10.0.1:8000/user-data).

2. Подготовка установочного медиа

Вам необходимо будет изменить параметры загрузки ядра на установочном медиа. Вам нужно добавить опции autoinstall и datasource. Вот как это сделать:

  1. Загрузите установочное медиа (например, на USB-накопитель).

  2. Для доступа к меню GRUB в процессе загрузки, удерживайте клавишу Shift или Esc.

  3. Выберите пункт меню для загрузки установщика.

  4. Нажмите e для редактирования параметров загрузки.

  5. Найдите строку, которая начинается с linux /casper/vmlinuz…, и добавьте следующие параметры к её концу:

    autoinstall ds=nocloud-net;s=http://10.10.0.1:8000/

    В результате строка будет выглядеть примерно так:

    linux /casper/vmlinuz ... autoinstall ds=nocloud-net;s=http://10.10.0.1:8000/
  6. Нажмите F10, чтобы загрузить с изменёнными параметрами.

3. Начало установки

Теперь, когда сервер загружается с установочного медиа, он автоматически будет искать файл user-data по указанному URL и применять настройки, содержащиеся в нём. Убедитесь, что ваш веб-сервер доступен и файл доступен по указанному пути.

4. Дополнительные источники информации

Рекомендуется ознакомиться с официальной документацией по autoinstall и cloud-init для получения дополнительной информации:

Заключение

Следуя этим шагам, вы сможете настроить и использовать cloud-init для автоматической установки Ubuntu Server с вашего веб-сервера. Это позволит вам быстро и легко развернуть несколько серверов с одинаковыми настройками.

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

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