13.2. API를 사용하여 Nutanix에 호스트 추가
API를 사용하여 Nutanix에 호스트를 추가하려면 지원 설치 프로그램에서 검색 이미지 ISO를 생성합니다. 최소 검색 이미지 ISO를 사용합니다. 이 설정은 기본 설정입니다. 이미지에는 네트워킹을 사용하여 호스트를 부팅하는 데 필요한 항목만 포함됩니다. 대부분의 콘텐츠는 부팅 시 다운로드됩니다. ISO 이미지는 약 100MB 크기입니다.
이 작업이 완료되면 Nutanix 플랫폼의 이미지를 생성하고 Nutanix 가상 머신을 생성해야 합니다.
사전 요구 사항
- 지원 설치 관리자 API 인증을 설정했습니다.
- 지원 설치 관리자 클러스터 프로필을 생성했습니다.
- 지원 설치 관리자 인프라 환경을 생성했습니다.
- 
						쉘에서 인프라 환경 ID를 $INFRA_ENV_ID로 내보내야 합니다.
- 지원 설치 관리자 클러스터 구성을 완료했습니다.
- Nutanix 클러스터 환경이 설정되어 클러스터 이름과 서브넷 이름을 기록했습니다.
프로세스
- Ignition 파일로 부팅하려면 검색 이미지를 구성합니다.
- 환경 변수를 저장할 Nutanix 클러스터 구성 파일을 생성합니다. - touch ~/nutanix-cluster-env.sh - $ touch ~/nutanix-cluster-env.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - chmod +x ~/nutanix-cluster-env.sh - $ chmod +x ~/nutanix-cluster-env.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 새 터미널 세션을 시작해야 하는 경우 환경 변수를 쉽게 다시 로드할 수 있습니다. 예를 들면 다음과 같습니다. - source ~/nutanix-cluster-env.sh - $ source ~/nutanix-cluster-env.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 구성 파일의 Nutanix 클러스터 이름을 - NTX_CLUSTER_NAME환경 변수에 할당합니다.- cat << EOF >> ~/nutanix-cluster-env.sh export NTX_CLUSTER_NAME=<cluster_name> EOF - $ cat << EOF >> ~/nutanix-cluster-env.sh export NTX_CLUSTER_NAME=<cluster_name> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;cluster_name>을 Nutanix 클러스터 이름으로 바꿉니다.
- 구성 파일의 - NTX_SUBNET_NAME환경 변수에 Nutanix 클러스터의 서브넷 이름을 할당합니다.- cat << EOF >> ~/nutanix-cluster-env.sh export NTX_SUBNET_NAME=<subnet_name> EOF - $ cat << EOF >> ~/nutanix-cluster-env.sh export NTX_SUBNET_NAME=<subnet_name> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;subnet_name>을 Nutanix 클러스터 서브넷의 이름으로 바꿉니다.
- API 토큰을 새로 고칩니다. - source refresh-token - $ source refresh-token- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 다운로드 URL을 가져옵니다. - curl -H "Authorization: Bearer ${API_TOKEN}" \ https://api.openshift.com/api/assisted-install/v2/infra-envs/${INFRA_ENV_ID}/downloads/image-url- $ curl -H "Authorization: Bearer ${API_TOKEN}" \ https://api.openshift.com/api/assisted-install/v2/infra-envs/${INFRA_ENV_ID}/downloads/image-url- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Nutanix 이미지 구성 파일을 생성합니다. - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;image_url>을 이전 단계에서 다운로드한 이미지 URL로 바꿉니다.
- Nutanix 이미지를 생성합니다. - curl -k -u <user>:'<password>' -X 'POST' \ 'https://<domain-or-ip>:<port>/api/nutanix/v3/images \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d @./create-image.json | jq '.metadata.uuid' - $ curl -k -u <user>:'<password>' -X 'POST' \ 'https://<domain-or-ip>:<port>/api/nutanix/v3/images \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d @./create-image.json | jq '.metadata.uuid'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - < - ;user>를 Nutanix 사용자 이름으로 바꿉니다.- '<password>'를 Nutanix 암호로 바꿉니다. &- lt;domain-or-ip>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. &- lt;port>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은- 9440입니다.
- 반환된 UUID를 구성 파일의 - NTX_IMAGE_UUID환경 변수에 할당합니다.- cat << EOF >> ~/nutanix-cluster-env.sh export NTX_IMAGE_UUID=<uuid> EOF - $ cat << EOF >> ~/nutanix-cluster-env.sh export NTX_IMAGE_UUID=<uuid> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Nutanix 클러스터 UUID를 가져옵니다. - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - < - ;user>를 Nutanix 사용자 이름으로 바꿉니다.- '<password>'를 Nutanix 암호로 바꿉니다. &- lt;domain-or-ip>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. &- lt;port>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은- 9440입니다. &- lt;nutanix_cluster_name>을 Nutanix 클러스터 이름으로 바꿉니다.
- 반환된 Nutanix 클러스터 UUID를 구성 파일의 - NTX_CLUSTER_UUID환경 변수에 할당합니다.- cat << EOF >> ~/nutanix-cluster-env.sh export NTX_CLUSTER_UUID=<uuid> EOF - $ cat << EOF >> ~/nutanix-cluster-env.sh export NTX_CLUSTER_UUID=<uuid> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;uuid>를 Nutanix 클러스터의 반환된 UUID로 바꿉니다.
- Nutanix 클러스터의 서브넷 UUID를 가져옵니다. - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - < - ;user>를 Nutanix 사용자 이름으로 바꿉니다.- '<password>'를 Nutanix 암호로 바꿉니다. &- lt;domain-or-ip>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. &- lt;port>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은- 9440입니다. &- lt;subnet_name>을 클러스터 서브넷 이름으로 바꿉니다.
- 반환된 Nutanix 서브넷 UUID를 구성 파일의 - NTX_CLUSTER_UUID환경 변수에 할당합니다.- cat << EOF >> ~/nutanix-cluster-env.sh export NTX_SUBNET_UUID=<uuid> EOF - $ cat << EOF >> ~/nutanix-cluster-env.sh export NTX_SUBNET_UUID=<uuid> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;uuid>를 클러스터 서브넷의 반환된 UUID로 바꿉니다.
- Nutanix 환경 변수가 설정되었는지 확인합니다. - source ~/nutanix-cluster-env.sh - $ source ~/nutanix-cluster-env.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 각 Nutanix 호스트에 대한 VM 구성 파일을 생성합니다. 컨트롤 플레인(마스터) VM 3개와 작업자 VM 2개를 생성합니다. 예를 들면 다음과 같습니다. - touch create-master-0.json - $ touch create-master-0.json- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;host_name>을 호스트 이름으로 바꿉니다.
- 각 Nutanix 가상 머신을 부팅합니다. - curl -k -u <user>:'<password>' -X 'POST' \ 'https://<domain-or-ip>:<port>/api/nutanix/v3/vms' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d @./<vm_config_file_name> | jq '.metadata.uuid' - $ curl -k -u <user>:'<password>' -X 'POST' \ 'https://<domain-or-ip>:<port>/api/nutanix/v3/vms' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d @./<vm_config_file_name> | jq '.metadata.uuid'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - < - ;user>를 Nutanix 사용자 이름으로 바꿉니다.- '<password>'를 Nutanix 암호로 바꿉니다. &- lt;domain-or-ip>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. &- lt;port>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은- 9440입니다. &- lt;vm_config_file_name>을 VM 구성 파일의 이름으로 바꿉니다.
- 반환된 VM UUID를 구성 파일의 고유한 환경 변수에 할당합니다. - cat << EOF >> ~/nutanix-cluster-env.sh export NTX_MASTER_0_UUID=<uuid> EOF - $ cat << EOF >> ~/nutanix-cluster-env.sh export NTX_MASTER_0_UUID=<uuid> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - & - lt;uuid>를 VM의 반환된 UUID로 바꿉니다.참고- 환경 변수에는 각 VM에 고유한 이름이 있어야 합니다. 
- Assisted Installer가 각 VM을 검색하고 검증을 통과할 때까지 기다립니다. - curl -s -X GET "https://api.openshift.com/api/assisted-install/v2/clusters/$CLUSTER_ID" - $ curl -s -X GET "https://api.openshift.com/api/assisted-install/v2/clusters/$CLUSTER_ID" --header "Content-Type: application/json" -H "Authorization: Bearer $API_TOKEN" | jq '.enabled_host_count'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 클러스터 정의를 수정하여 Nutanix와의 통합을 활성화합니다. - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 설치 절차를 계속합니다.