Terraform을 사용한 XenServer 자동화
XenServer Terraform Provider를 사용하면 IT 관리자가 XenServer 환경에 대한 구성 및 관리 작업을 자동화할 수 있습니다. 이는 자동화를 통해 일관성을 보장하고 수동 오류를 줄이며 시간을 절약하는 대규모 설정에서 특히 유용합니다. Terraform 공급자를 사용하여 다음을 수행할 수 있습니다.
- VM(가상 머신) 만들기
- 스냅샷 관리(생성 및 제거)
- 스토리지 구성(로컬 및 NFS 유형 추가 또는 제거)
- 네트워크 설정 및 관리
- XenServer 호스트에 대한 정보 검색
XenServer Terraform 공급자의 주요 이점:
- 자동화: IaC(Infrastructure-as-Code) 방식을 통해 XenServer 환경의 배포 및 관리를 간소화합니다.
- 효율성: VM 생성, 스냅샷 관리, 스토리지 또는 네트워크 구성과 같은 작업을 자동화하여 수동 개입을 최소화합니다.
- 일관성: 대규모 환경에서 균일한 구성을 보장하여 오류를 최소화합니다.
- 확장성: QA 설정과 같은 환경의 생성 및 재구축을 간소화하여 신속한 인프라 성장을 지원합니다.
사전 요구 사항
XenServer Terraform Provider를 사용하기 전에 다음 사항을 확인하십시오.
-
Terraform 버전 1.8 이상
공식에서 Terraform 다운로드 Terraform 설치 가이드.
Windows 사용자는 다음 명령을 실행하여 Chocolatey를 사용하여 Terraform을 설치할 수 있습니다.
choco install terraform <!--NeedCopy-->
-
관리 액세스 권한이 있는 XenServer 인스턴스
-
XenServer API 자격 증명
여기에는 사용자 이름, 암호 및 XenServer의 IP 주소가 포함됩니다.
시작
-
Terraform 구성을 준비합니다.
시작하려면 XenServer Terraform Provider를 Terraform 구성 파일
main.tf
에 추가합니다.terraform { required_providers { xenserver = { source = "xenserver/xenserver" } } } provider "xenserver" { host = "https://<ip address of XenServer>" username = "root" password = <root password> } <!--NeedCopy-->
-
리소스를 정의합니다.
예를 들어 VM을 만들려면 구성 파일에서 리소스를 정의합니다.
data "xenserver_sr" "sr" { name_label = "Local storage" } resource "xenserver_vdi" "vdi1" { name_label = "local-storage-vdi-1" sr_uuid = data.xenserver_sr.sr.data_items[0].uuid virtual_size = 100 * 1024 * 1024 * 1024 } data "xenserver_network" "network" {} resource "xenserver_vm" "windows_vm" { name_label = "Windows VM" template_name = "Windows 11" static_mem_max = 4 * 1024 * 1024 * 1024 vcpus = 4 cores_per_socket = 2 cdrom = "win11-x64_uefi.iso" boot_mode = "uefi_security" boot_order = "cdn" hard_drive = [ { vdi_uuid = xenserver_vdi.vdi1.uuid, bootable = true, mode = "RW" } ] network_interface = [ { device = "0" network_uuid = data.xenserver_network.network.data_items[0].uuid, } ] other_config = { "tf_created" = "true" } } <!--NeedCopy-->
또는 NFS SR(스토리지 저장소)을 만들려면 다음을 수행합니다.
resource "xenserver_sr" "nfs" { name_label = "Test NFS SR" type = "nfs" content_type = "" shared = true device_config = { server = "192.0.2.1" serverpath = "/server/path" nfsversion = "3" } sm_config = { shared = "true" } } <!--NeedCopy-->
-
구성을 초기화하고 적용합니다.
XenServer Terraform Provider를 설치하려면 다음을 실행하세요.
terraform init <!--NeedCopy-->
그런 다음, 정의된 리소스를 프로비전하려면 다음을 실행합니다.
terraform apply <!--NeedCopy-->
고급 구성 및 추가 리소스에 대해서는 다음을 참조하십시오. XenServer Terraform 공급자 설명서. 문제가 발생하면 지원팀에 문의하거나 GitHub 문제 티켓을 제출하세요.
새로운 항목
XenServer Terraform Provider는 새로운 자동화 기능과 수정 사항을 도입하고 지속적인 호환성을 보장하기 위해 XenServer 버전과 별도로 업데이트됩니다.
XenServer Terraform 공급자 0.2.1
2025년 1월 20일 출시
이 릴리스에서는 다음과 같은 새로운 자동화 기능이 도입되었습니다.
- 전체 디스크 사본으로 템플릿에서 VM을 만듭니다.
이 릴리스에는 다음과 같은 개선 사항이 포함되어 있습니다.
- 사용성을 개선하려면 내부 참조 대신 UUID를 반환합니다.
이 릴리스에는 다음 문제에 대한 수정 사항이 포함되어 있습니다.
- 풀을 생성, 수정 또는 삭제하는 작업이 실패하고 SSH 명령이 오류와 함께 종료되는 경우가 있습니다.
이전 릴리스
0.2.0
2024년 11월 11일 출시
이 릴리스에서는 다음과 같은 새로운 자동화 기능이 도입되었습니다.
- 풀에 호스트를 쉽게 추가하고 제거하여 확장성을 높이고 유지 관리를 간소화합니다.
- 기본 SR 및 관리 네트워크를 업데이트합니다.
- SMB/CIFS 스토리지를 생성하고 삭제하여 스토리지 구성에 있어 더욱 큰 유연성을 제공합니다.
이 릴리스에는 다음과 같은 개선 사항이 포함되어 있습니다.
- VM을 생성할 때 디스크 개수 제한을 없애서 하드웨어 종속성을 줄이고 스토리지를 최적화합니다.
- VM을 스냅샷으로 되돌릴 수 있으므로 복구와 롤백이 더 간단해집니다.
- 환경 변수에서 자격 증명을 읽을 수 있도록 하여 구성 관리를 간소화합니다.
0.1.2
2024년 10월 31일 출시
이 릴리스에는 다음 문제에 대한 수정 사항이 포함되어 있습니다.
- XenServer Terraform Provider 버전 0.1.1을 사용하고 있다면 2024년 9월 25일에 Early Access로, 2024년 10월 2일에 Normal로 출시된 XenServer 8 업데이트를 적용한 후 호환성 문제가 발생할 수 있습니다. 버전 0.1.2에서는 이러한 호환성 문제가 해결되었습니다.