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


Cloud-Init

CycleCloud поддерживает cloud-init как способ настройки виртуальной машины при первой загрузке перед любой другой конфигурацией 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. [node defaults] Если указывает cloud-init, а также узел, наследующий от значений по умолчанию, скрипт cloud-init в [node defaults] будет перезаписан. Объединение скриптов вручную рекомендуется, когда необходимо предоставить общий доступ к коду. Кроме того, формат пользовательских данных в файле включения можно использовать для включения списка URL-адресов, обрабатываемых cloud-init.