다음을 통해 공유


Cloud-Init

CycleCloud는 VM에서 다른 CycleCloud 특정 구성이 발생하기 전에 첫 번째 부팅 시 VM(가상 머신)을 구성하는 방법으로 cloud-init를 지원합니다. cloud-init를 사용하는 것은 CycleCloud(HPC 스케줄러)가 관리하는 소프트웨어가 설치되기 전에 VM의 측면(예: 네트워킹, yum/apt 미러 등)을 구성하는 효과적인 방법입니다.

다음은 클러스터 템플릿의 특성을 사용하여 부팅할 bash 스크립트를 CloudInit 지정하는 간단한 예입니다.

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

참고

클러스터 템플릿에서 3개의 따옴표가 붙은 문자열을 사용하여 bash 또는 YAML 스크립트와 같은 여러 줄 문자열을 지정할 수 있습니다.

경고

Azure 지원 cloud-init의 모든 OS 이미지가 아닙니다. Cloud-init를 지원하는 이미지에 대한 자세한 내용은 Azure의 가상 머신에 대한 cloud-init 지원 및 광범위한 지원을 사용할 수 있는 시기에 대한 타임라인 참조하세요.

UI를 사용하여 Cloud-Init 설정

CycleCloud UI는 cloud-init 편집을 지원합니다. 클러스터를 만들거나 편집할 때 "Cloud-Init"라는 새 탭을 사용하면 클러스터의 각 노드에 대한 cloud-init 스크립트를 편집할 수 있습니다. CycleCloud UI의 편집기에서 텍스트 입력을 허용합니다. Python, Shell 스크립트 또는 YAML에 대해 구문 강조 표시를 사용할 수 있습니다.

CycleCloud UI에서 cloud-init 편집

Cloud-Init 순서 지정 및 오류 처리

지정된 CycleCloud 노드의 CloudInit 경우 CycleCloud는 VM을 프로비전하고 cloud-init 가 완료될 때까지 기다렸다가 다른 구성이 발생합니다. 가 노드에 지정되고 CycleCloud가 OS에 대한 cloud-init 지원을 검색하지 않는 경우 CloudInit 노드는 오류 상태로 전환되고 그 이유는 CycleCloud로 릴레이됩니다. 스크립트가 CloudInit 실행되지 않는 경우(예: 스크립팅 오류 또는 구문 오류로 인해) 노드가 오류 상태로 전환되고 cloud-init에서 보고한 오류가 CycleCloud로 릴레이됩니다.

cloud-init가 오류 없이 완료될 때 CycleCloud는 평소와 같이 VM을 계속 구성합니다.

중요

CycleCloud는 cloud-init 스크립트를 자동으로 병합 하지 않습니다 . 가 [node defaults] 기본값에서 상속하는 노드뿐만 아니라 cloud-init를 지정하는 경우 의 cloud-init 스크립트 [node defaults] 를 덮어씁니다. 코드를 공유해야 하는 경우 스크립트를 수동으로 병합하는 것이 좋습니다. 또는 포함 파일 사용자 데이터 형식을 사용하여 cloud-init 에서 처리할 URL 목록을 포함할 수 있습니다.