Развёртывание Fedora CoreOS в DigitalOcean

В этом руководстве показано, как развернуть новые узлы Fedora CoreOS (FCOS) в DigitalOcean. Образы Fedora CoreOS в настоящее время не публикуются напрямую в DigitalOcean, поэтому вам необходимо загрузить образ Fedora CoreOS для DigitalOcean и загрузить его в вашу учётную запись DigitalOcean как пользовательский образ.

Предварительные требования

Fedora CoreOS поддерживает настройку доступа по SSH-ключам с помощью Afterburn на этой платформе. После того как вы настроите свой SSH-ключ в конфигурации платформы, вы сможете провизионировать и получать доступ к экземплярам Fedora CoreOS с пользователем по умолчанию core, без использования конфигурации Ignition.

Мы рекомендуем использовать конфигурацию Ignition, как только вы лучше ознакомитесь с Fedora CoreOS и захотите автоматизировать развёртывание систем.

Вам нужен доступ к учётной записи DigitalOcean. В приведённых ниже примерах используется инструмент командной строки doctl и jq в качестве обработчика JSON в командной строке.

Создание пользовательского образа DigitalOcean

Fedora CoreOS разработана для автоматического обновления с разными расписаниями для каждого потока.

  1. Выбрав соответствующий поток, найдите соответствующий образ DigitalOcean на странице загрузки и скопируйте URL ссылки для загрузки.

  2. Создайте пользовательский образ:

    Пример загрузки FCOS в пользовательский образ DigitalOcean
    doctl compute image create my-fcos-image --region sfo2 --image-url <download-url>
    # Wait for image creation to finish
    while ! doctl compute image list-user --output json | jq -c '.[] | select(.name=="my-fcos-image")' | grep available; do sleep 5; done

Приведённая выше команда загружает образ и ждёт, пока он будет готов к использованию. Этот процесс может занять много времени; в наших тестах он занимал до 15 минут. Время ожидания зависит от скорости загрузки и нагрузки на платформу.

Запуск дроплета

  1. Если у вас ещё нет загруженного SSH-ключа в DigitalOcean, загрузите его:

    Пример загрузки SSH-ключа в DigitalOcean
    doctl compute ssh-key create my-key --public-key "$(cat ~/.ssh/id_rsa.pub)"
  2. Запустите дроплет. Ваша конфигурация Ignition может быть передана виртуальной машине в качестве её пользовательских данных, или вы можете пропустить передачу пользовательских данных, если вам нужен только доступ по SSH. Это обеспечивает простой способ протестировать FCOS без предварительного создания конфигурации Ignition.

    При создании дроплета FCOS в DigitalOcean вы должны указать SSH-ключ для дроплета, даже если планируете внедрить SSH-ключи через Ignition.

    Пример запуска FCOS в DigitalOcean с использованием файла конфигурации Ignition
    image_id=$(doctl compute image list-user | grep my-fcos-image | cut -f1 -d ' ')
    key_id=$(doctl compute ssh-key list | grep my-key | cut -f1 -d ' ')
    doctl compute droplet create my-fcos-droplet --image "${image_id}" --region sfo2 --size s-2vcpu-2gb --user-data-file <ignition-config-path> --ssh-keys "${key_id}" --wait
    Хотя документация DigitalOcean упоминает cloud-init и сценарии, FCOS не поддерживает cloud-init или возможность запускать сценарии из пользовательских данных. Она принимает только файлы конфигурации Ignition.
  3. Теперь вы должны иметь возможность подключиться к экземпляру по SSH, используя связанный IP-адрес.

    Пример подключения
    ssh core@<ip address>