OS 템플릿 및 ISO
관리자 위치: Services › Virtual Machines › Template (
/vm/templates). Proxmox 템플릿은 Infrastructure › Cloud provider › Providers › (cluster) › Clusters에서 클러스터별로 나열됩니다.
작동 내용
템플릿은 새 VM이 시작되는 운영체제 이미지입니다. NexCMP는 이미지를 직접 저장하지 않고, CloudStack이 보고하는 내용(준비된 추천 템플릿)이나 Proxmox 클러스터에 나열된 내용을 읽어 고객용 이름, 아이콘, 로그인 사용자와 함께 판매할 항목을 선택할 수 있게 합니다. 이 페이지에서는 비밀번호 로그인, 실시간 CPU 및 RAM 확장, 스왑 파일, 플랜 크기로 확장되는 루트 디스크 등 NexCMP와 호환되는 이미지를 준비하는 방법을 설명합니다.
요구 사항
| 항목 | 요구 사항 |
|---|---|
| CloudStack 템플릿 빌더 | libguestfs-tools(virt-customize, virt-sparsify, guestfish), qemu-utils, curl 및 약 5 GB의 여유 디스크가 있는 Linux 머신. KVM 및 root 권한은 필요하지 않습니다. 패키지 설치를 위한 인터넷 접속이 필요합니다(또는 --offline(으)로 빌드). |
| 빌더 위치 | 패널 서버의 /opt/nexcmp/releases/<version>/share/templates/ 안에 모든 릴리스와 함께 제공됩니다. 해당 위치에서 실행할 필요는 없으며, 폴더를 임의의 Linux 머신으로 복사하면 됩니다. |
| 웹 서버 | 완성된 .qcow2 파일을 게시하기 위해 CloudStack의 보조 스토리지 VM이 도달할 수 있는 모든 HTTP(S) 서버. 인터넷에서 도달할 수 있을 필요는 없습니다. |
| CloudStack | 템플릿을 등록할 수 있는 계정, 그리고 영역 ID와 일치하는 OS 타입 ID. CloudStack을(를) 참조하세요. |
| Proxmox VE | QEMU 게스트 에이전트가 포함된 Cloud-init 템플릿 VM (OS 및 노드당 하나). Proxmox VE을(를) 참조하세요. |
| 종속성 | 먼저 연결된 CloudStack 또는 Proxmox VE. |
인프라 준비
CloudStack: 템플릿 빌드
지원되는 베이스 이미지 (공급업체 이미지를 다운로드하고 변경하기 전에 체크섬을 검증합니다):
| 이미지 | --distro | 로그인 사용자 |
|---|---|---|
| Ubuntu 22.04 | ubuntu-22.04 | ubuntu |
| Ubuntu 24.04 | ubuntu-24.04 | ubuntu |
| Debian 12 | debian-12 | debian |
| Rocky Linux 9 | rocky-9 | rocky |
추가 배포판: distros.conf에 한 줄을 추가합니다(이미지 URL, 체크섬 파일, 패밀리 deb 또는 rpm).
빌더를 빌드 머신에 복사하고 실행합니다:
bashcp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./out패널에 등록되는 선택적 첫 부팅 모니터링 에이전트를 포함하려면
--panel-url https://cloud.example.com을(를) 추가합니다(HTTPS 전용). 이 옵션이 없으면 에이전트가 추가되지 않습니다. 기타 옵션: 다운로드한 이미지를 사용하려면--base <file>, 패키지 설치를 건너뛰려면--offline.결과물은
out/ubuntu-24.04-v7.qcow2및 해당.sha256입니다. 빌드가 끝나면 읽기 전용으로 완성된 이미지를 검사하여 잘못된 이미지를 거부하는verify-image.sh을(를) 실행합니다(거부된 이미지는.unverified(으)로 유지됨). 언제든지 다시 실행할 수 있습니다:./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent.
빌더가 이미지에 포함하는 내용:
| 항목 | 이유 |
|---|---|
qemu-guest-agent | CloudStack은 VM에 CPU와 IP를 조회하고 스냅샷을 위해 일시 중단할 수 있습니다. |
CloudStack 데이터 소스를 사용하는 cloud-init, set_passwords 모든 부팅 시, SSH 비밀번호 로그인 | 생성된 비밀번호는 가상 라우터에서 가져오며 Reset password가 정상 작동합니다. |
| 핫애드된 CPU 및 RAM을 위한 udev 규칙 | 핫애드된 vCPU와 RAM이 자동으로 활성화되므로 실시간 스케일링과 Auto Scaling이 작동합니다. |
| 스왑 파일 서비스 | 디스크가 확장된 후 RAM의 50%와 4 GiB 중 작은 값으로 /swapfile를 생성합니다. touch /etc/cmp-swap.disabled는 이를 끕니다. |
cloud-init growpart 및 resizefs | 작은 루트 디스크는 첫 부팅 시 요금제의 디스크 크기로 커집니다. |
| 비어 있는 machine-id, SSH 호스트 키 없음 | 모든 VM은 고유한 아이덴티티를 가집니다. |
템플릿 이름 지정 <OS> <version> <vN>
NexCMP는 이름이 vN 또는 vN.M으로 끝나고 N of 6 or more(Ubuntu 24.04 v7, Rocky Linux 9 v7.1)인 템플릿에 대해 Auto Scaling을 켭니다. 빌더는 --version에 대해 이를 강제합니다. 정확히 인쇄된 이름으로 템플릿을 등록하세요.
파일을 게시하고 CloudStack에 등록하세요. 빌드가 출력한 SHA-256을 사용하고 파일이 완전히 기록된 후에만 등록하세요:
bashcmk list ostypes keyword="Ubuntu 24.04" filter=id,description cmk register template name="Ubuntu 24.04 v7" displaytext="Ubuntu 24.04 v7" \ url=https://files.example.com/ubuntu-24.04-v7.qcow2 zoneid=<zone-id> format=QCOW2 hypervisor=KVM \ ostypeid=<os-type-id> passwordenabled=true sshkeyenabled=true isdynamicallyscalable=true \ requireshvm=true isextractable=false ispublic=true isfeatured=true \ checksum="{SHA-256}<sha256 of the file>" \ details[0].guest.cpu.mode=host-passthrough details[0].rootDiskController=osdefaultpasswordenabled=true를 통해 CloudStack이 VM 비밀번호를 생성하도록 합니다.isdynamicallyscalable=true는 실시간 스케일링을 허용합니다.- 현재 Rocky 및 Alma 이미지가 부팅하려면
host-passthrough가 필요하며,osdefault는 디스크 컨트롤러를 이식 가능하게 유지합니다.
Download Complete / Ready 상태가 될 때까지 템플릿을 기다리세요.
공급업체 이미지는 작은 가상 크기를 유지합니다(Ubuntu 및 Debian은 약 3.5 GiB, Rocky는 10 GiB). 요금제의 디스크는 템플릿의 디스크보다 작을 수 없음을 기억하세요.
Proxmox VE: 템플릿 만들기
배포하는 모든 노드에 OS별 cloud-init VM 템플릿을 만드시고 게스트 에이전트 설치 및 루트 로그인을 활성화한 다음, os-key=vmid(으)로 등록하세요. 전체 명령어는 Proxmox VE에 있습니다. 위의 CloudStack 빌더는 Proxmox용이 아닙니다. CloudStack 데이터 소스용 cloud-init을 구성합니다.
ISO
고객은 Images 모듈(CloudStack) 또는 전용 서버 모듈을 통해 자신의 ISO를 마운트합니다. 이들은 이 페이지의 OS 템플릿과는 별개입니다. Modules 및 Dedicated servers를 참조하세요.
NexCMP에서 연결
Services › Virtual Machines › Template을 엽니다. Sync now를 클릭하거나 최대 15분간 기다립니다. 동기화가 진행되면 CloudStack에서 준비 완료 및 추천(featured) 상태인 템플릿이 추가됩니다.

새 템플릿에서 Edit을 클릭하고 고객에게 표시될 내용을 설정하세요:
필드 Example value 고객용 표시 이름 Ubuntu 24.04 LTSOS 패밀리 ubuntu(아이콘 및 기본 사용자)버전 24.04로그인 사용자 이름 ubuntu(Windows:Administrator; 기타:root)아이콘 이미지 URL, 경로 또는 이름 순서 10활성 On vCPU/RAM 핫플러그(실시간 스케일) Auto by name (v6 or later), Yes 또는 No (needs a restart) 
템플릿을 켭니다. 더 이상 CloudStack에 나열되지 않는 템플릿은 자동으로 숨겨지며(구성이 되어 있는 경우 텔레그램으로 알림을 받음), NexCMP에서 삭제되지는 않습니다.
새 빌드로 템플릿 교체
판매된 템플릿에서 More › Replace with new version을 사용합니다. 새롭고 준비되었으며 현재 비활성화된 템플릿을 선택합니다. 그러면 판매된 항목이 새 빌드를 가리키며 이름, 순서 및 아이콘을 유지합니다. 이전 항목은 돌아가는 방법으로 비활성화됩니다(돌아가려면 새 항목에서 Replace 사용). 실행 중인 VM은 변경되지 않습니다. 새 빌드가 다른 OS 제품군인 경우 먼저 확인란을 선택하세요.
확인
- 행에 ready가 표시되고, N이 6 이상인
vN명명된 빌드의 경우 CPU hot-plug: supported가 표시됩니다. - 템플릿에서 테스트 VM을 하나 배포하고 VM 내부를 확인합니다:
- 포털에 표시된 비밀번호로 로그인할 수 있습니다;
df -h /에 요금제의 디스크 크기가 표시됩니다;- 라이브 스케일(재부팅 없는 Change plan) 후
nproc및free -m가 증가합니다; swapon --show에/swapfile이(가) 나열됩니다(스왑과 2 GiB를 더한 것보다 여유 공간이 적은 디스크는 건너뜀);systemctl is-active qemu-guest-agent실행 시active이 출력됩니다.
- 에이전트를 사전 포함하여 빌드한 경우 첫 번째 부팅 후 1분 이내에 패널의 모니터링 대상 호스트 목록에 VM이 표시됩니다. 패널은 공용 소스 IP로 VM을 식별하므로 VM 자체의 공용 IP가 필요합니다.
제한 사항 및 참고 사항
- 빌더는 Linux 전용이며 Linux 이미지만 빌드합니다. 다른 이미지(예: Windows)는 다른 방법으로 CloudStack에 등록할 수 있으며, NexCMP는 CloudStack이 보고한 항목을 나열합니다.
- amd64 에이전트만 제공되며, 다른 아키텍처에서는 에이전트 설치를 건너뜁니다.
- 이미지는
guestfish으로 검사되지만 빌더에 의해 실제로 부팅되지는 않습니다. 새 이미지를 판매하기 전에 항상 테스트 VM을 하나 배포해 보십시오. - 첫 부팅 전
touch /etc/cmp-agent.disabled을 실행하여 특정 VM에서 에이전트를 건너뛸 수 있습니다. 나중에systemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent로 제거한 다음 관리 콘솔에서 해당 에이전트를 삭제하십시오.
Troubleshooting
| 증상 | 원인 | 해결 방법 |
|---|---|---|
virt-customize 패키지 다운로드 실패 | 빌드 머신에 아웃바운드 네트워크가 없음 | 해당 머신의 DNS 또는 프록시를 수정하거나, 패키지가 이미 포함된 베이스 이미지에서 --offline 옵션으로 빌드하십시오. |
libguestfs: error: /usr/bin/supermin exited with error status 1 | 현재 사용자(Ubuntu)가 호스트 커널을 읽을 수 없음 | sudo chmod +r /boot/vmlinuz*을 실행하거나 root 권한으로 빌드를 실행하십시오. |
| 체크섬 불일치 또는 벤더 이미지가 더 이상 존재하지 않음 | 벤더가 "최신(latest)" 파일 경로를 변경함 | 이미지를 직접 다운로드하여 벤더의 체크섬 파일과 대조한 후 --base 옵션으로 전달하십시오. |
| Rocky: 최신 XFS를 마운트할 수 없음 | 호스트 커널이 너무 오래되었습니다 | 최신 커널이 설치된 머신에서 빌드하십시오. |
--version must be v6 or higher | 이름은 N이 6 이상인 vN 형식이어야 합니다 | --version v7을 사용하십시오. |
--panel-url must be a plain https:// URL | 에이전트가 다운로드되어 root 권한으로 실행되므로 일반 HTTP는 거부됩니다 | 공백, 따옴표 또는 쿼리 스트링이 없는 https:// URL을 사용하십시오. |
| 템플릿이 not ready 상태로 유지됩니다 | CloudStack에서 다운로드가 완료되지 않았습니다 | Download Complete 상태가 될 때까지 기다리고, 보조 스토리지 VM이 해당 URL에 접근할 수 있는지 확인하십시오. |
| 행에 no-pass가 표시됩니다 | 템플릿이 passwordenabled=true 없이 등록되었습니다 | 해당 플래그를 포함하여 다시 등록하십시오. |
| CPU 핫플러그가 unsupported로 표시됩니다 | 이름이 vN(N은 6 이상)으로 끝나지 않습니다 | 템플릿 이름을 바꾸거나, 이미지에 udev 규칙이 있는 경우 Edit에서 vCPU/RAM hot-plug를 Yes로 설정하십시오. |
| 최초 연결 후 "Empty template list"가 표시됩니다 | 동기화가 실행되지 않았습니다 | Sync now를 클릭하거나(워커가 실행 중이어야 함) 15분 주기를 기다리십시오. |