Настройка установки программного обеспечения

Завершено

Шаблоны Azure CycleCloud упрощают настройку кластеров HPC путем абстрагирования сведений о реализации базовой инфраструктуры, что позволяет сосредоточиться на управлении рабочими нагрузками. Однако эта рабочая нагрузка обычно имеет несколько зависимостей, связанных с программным обеспечением, которые требуют дополнительных шагов настройки. К счастью, Azure CycleCloud также предоставляет платформу для реализации этих шагов с помощью поддержки задач подготовки и управления конфигурацией, применяемых непосредственно к узлам кластера.

К вашим целям относятся необходимость развертывания пользовательских образов и использования встроенных сценариев конфигурации, которые вы использовали в локальной среде HPC. Вы хотите определить, как использовать возможности Azure CycleCloud для выполнения этих целей.

Как реализовать управление конфигурацией с помощью Azure CycleCloud?

Azure CycleCloud предлагает три основных метода, которые можно объединить произвольно для настройки операционной системы и программного обеспечения на узлах кластера в соответствии с собственными требованиями или предпочтениями.

  • Пользовательские образы
  • Проекты
  • Cloud-init

Как использовать пользовательские изображения в Azure CycleCloud?

Azure CycleCloud поддерживает узлы кластера под управлением наиболее распространенных дистрибутивов Linux и в зависимости от планировщика Windows Server. Встроенные шаблоны предварительно настроены с рекомендуемыми значениями по умолчанию, но вы можете выбрать образы Azure Marketplace или подготовить узлы на основе пользовательских образов. Последний вариант может быть предпочтительнее, если вы хотите свести к минимуму задержку, связанную с установкой операционной системы после развертывания и любыми дополнительными зависимостями рабочих нагрузок HPC. Это также может потребоваться для удовлетворения потребностей бизнеса, безопасности или соответствия требованиям.

Пользовательские образы позволяют полностью контролировать предварительно установленное программное обеспечение и начальную конфигурацию операционной системы. Их основной недостаток — это издержки, связанные с обслуживанием нескольких образов для размещения различных сочетаний приложений и их версий, особенно в сценариях разработки.

Как использовать проекты Azure CycleCloud для установки программного обеспечения?

Проект Azure CycleCloud — это коллекция файлов, на которые вы ссылаетесь при определении конфигураций узлов кластера с помощью шаблонов. Проекты имеют следующую структуру каталогов:

\project
      |- project.ini
      |- blobs
      |- templates
      |- specs
      |      | 
      |    default
      |      |- cluster-init
      |            |- scripts
      |            |- files
      |            |- tests
      |      | - chef
      |            |- site-cookbooks
      |            |- data_bag
      |            |- roles

Файл project.ini содержит метаданные проекта, включая его имя, метку, версию и тип проекта. Поддерживаемые типы включают планировщик и приложение. Первый используется для установки и инициализации управляющей программы планировщика на головных узлах и вычислительных узлах, а последний определяет рабочие нагрузки кластера.

Каталог BLOB-объектов содержит двоичные файлы проекта, такие как исполняемые файлы для проекта с открытым исходным кодом, который можно свободно распространять, и пользовательские BLOB-объекты, которые не подлежат распространению из-за лицензионных ограничений.

Каталог шаблонов содержит шаблоны, а каталог спецификаций содержит спецификации, определяющие конфигурации, применяемые к целевым узлам кластера.

Заметка

Например, проект Slurm содержит как минимум две спецификации: одну для головных узлов планировщика и другую для вычислительных узлов.

В каталоге спецификаций есть два подкаталога с именами cluster-init и настраиваемый Chef. Cluster-init содержит скрипты, которые выполняются автоматически на целевом узле. Необработанные файлы данных, скопированные на целевой узел, и тесты, которые будут выполняться при запуске кластера в режиме тестирования. Настраиваемый подкаталог Chef содержит файлы, специфические для Chef, включая файлы рецептов, базы данных и определения ролей. Для настройки узлов можно использовать книги и рецепты шеф-повара. Спецификации Cluster-init сопоставляют роли и книги повара.

Заметка

Azure CycleCloud использует Chef в качестве средства управления конфигурацией для подготовки и настройки каждого узла. CycleCloud использует Chef в автономном режиме, который не зависит от централизованного сервера Chef. Вместо этого все рецепты, предназначенные для узлов управляемого кластера, загружаются из хранилища во время этапа загрузки операционной системы. На этом этапе Chef обрабатывает список рецептов, определенных в спецификациях кластера узла, эффективно преобразуя базовую виртуальную машину в рабочий узел HPC.

Чтобы подготовить кластер на основе проекта, необходимо передать содержимое проекта в хранилище Azure CycleCloud. Затем каждый раз, когда запускается целевой узел, он автоматически загружает необходимые файлы проекта из locker и обрабатывает необходимые спецификации.

Как использовать cloud-init с Azure CycleCloud?

Azure CycleCloud поддерживает cloud-init в качестве способа настройки узлов кластера на этапе загрузки перед применением спецификаций, связанных с проектом. Это удобный способ решения любых зависимостей инфраструктуры или программного обеспечения, таких как настройка параметров сети или применение обновлений пакета операционной системы.

Хотя вы можете определить конфигурацию cloud-init с помощью шаблона, вы также можете выполнить это непосредственно из графического интерфейса Azure CycleCloud. При создании или редактировании кластера вы найдете соответствующие параметры на вкладке, помеченной Cloud-Init, где можно ввести скрипты для каждого типа узла.

Заметка

Так как cloud-init выполняется до любых спецификаций проекта CycleCloud, планировщик и конфигурация, которую Azure CycleCloud применяет к узлу, может перезаписать изменения, внесенные через cloud-init. Если вам нужно убедиться, что команды выполняются после установки планировщика, вместо этого следует использовать спецификации проекта Azure CycleCloud.