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 с 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.