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&
gt;을 이전 단계에서 다운로드한 이미지 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&
gt;를 Nutanix 사용자 이름으로 바꿉니다.'<password>'
를 Nutanix 암호로 바꿉니다. <domain-or-ip
>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. <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&
gt;를 Nutanix 사용자 이름으로 바꿉니다.'<password>'
를 Nutanix 암호로 바꿉니다. <domain-or-ip
>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. <port
>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은9440
입니다. <nutanix_cluster_name&
gt;을 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&
gt;를 Nutanix 클러스터의 반환된 UUID로 바꿉니다.Nutanix 클러스터의 서브넷 UUID를 가져옵니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
;user&
gt;를 Nutanix 사용자 이름으로 바꿉니다.'<password>'
를 Nutanix 암호로 바꿉니다. <domain-or-ip
>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. <port
>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은9440
입니다. <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&
gt;를 클러스터 서브넷의 반환된 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&
gt;를 Nutanix 사용자 이름으로 바꿉니다.'<password>'
를 Nutanix 암호로 바꿉니다. <domain-or-ip
>를 Nutanix plaform의 도메인 이름 또는 IP 주소로 바꿉니다. <port
>를 Nutanix 서버의 포트로 바꿉니다. 포트 기본값은9440
입니다. <vm_config_file_name&
gt;을 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&
gt;를 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 - 설치 절차를 계속합니다.