Поделиться через


Cloud-Init

CycleCloud поддерживает cloud-init как способ настройки виртуальной машины (VM) во время первой загрузки перед любой другой конфигурацией CycleCloud на виртуальной машине. Использование cloud-init — это эффективный способ настройки параметров виртуальной машины (например, сетевых соединений, зеркал yum/apt и многого другого) перед установкой любого программного обеспечения, управляемого CycleCloud (планировщики HPC).

В следующем примере показано, как указать скрипт Bash для запуска при загрузке с помощью атрибута CloudInit в шаблоне кластера:

[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''

Примечание.

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

Предупреждение

Не все образы ОС в Azure поддерживают cloud-init. Дополнительные сведения о том, какие образы поддерживают cloud-init и график более широкой поддержки, см. в статье о поддержке cloud-init для виртуальных машин в Azure.

Настройка cloud-init с помощью пользовательского интерфейса

Пользовательский интерфейс CycleCloud поддерживает редактирование cloud-init. При создании или изменении любого кластера можно использовать вкладку Cloud-Init для изменения скрипта cloud-init для каждого узла в кластере. Редактор в пользовательском интерфейсе CycleCloud принимает любые текстовые входные данные. Он предоставляет подсветку синтаксиса для Python, скриптов оболочки или YAML.

Редактирование cloud-init в пользовательском интерфейсе CycleCloud

Упорядочивание и обработка ошибок в Cloud-init

Для узлов CycleCloud с указанными параметрами CloudInit CycleCloud подготавливает виртуальную машину и ожидает завершения cloud-init перед началом любой другой конфигурации. Если вы указываете CloudInit на узле, но CycleCloud не обнаруживает поддержку cloud-init для ОС, узел переходит в состояние ошибки и сообщает CycleCloud причину. CloudInit Если скрипт не выполняется (например, из-за ошибки скрипта или синтаксической ошибки), узел переходит в состояние ошибки и передает ошибку, сообщаемую cloud-init в CycleCloud.

После выполнения cloud-init до завершения без ошибок, CycleCloud продолжает настраивать виртуальную машину в обычном режиме.

Это важно

CycleCloud не объединяет скрипты cloud-init автоматически. Если вы указываете скрипт cloud-init в [node defaults] и у вас имеется узел, наследующий от этих значений по умолчанию, скрипт cloud-init в [node defaults] перезаписывается. Чтобы предоставить общий доступ к коду, мы рекомендуем вручную объединить скрипты. В качестве альтернативы можно использовать формат данных пользователя файла include, чтобы добавить список URL-адресов для обработки с помощью cloud-init.