6.5. virt-who 구성
환경 변수를 사용하고 sysconfig 파일을 사용하여 virt-who를 구성하는 것은 더 이상 사용되지 않습니다. 다음 주요 릴리스에서 해당 사용은 무시됩니다.
지원되는 virt-who 구성은 각 가상화 플랫폼에 따라 다릅니다.
- Red Hat 제품의 virt-who를 구성하려면 Red Hat 하이퍼바이저에 virt-who 설치 및 구성 을 참조하십시오.
- VMware vCenter에 대한 virt-who를 구성하려면 VMware vCenter에 연결하도록 virt-who 구성 을 참조하십시오.
- Microsoft Hyper-V용 virt-who를 구성하려면 Microsoft-Hyper -V에 연결하도록 virt-who 구성 을 참조하십시오.
- OpenShift Virtualization용 virt-who를 구성하려면 OpenShift Virtualization에 연결하도록 virt-who 구성 을 참조하십시오.
6.5.1. Red Hat 하이퍼바이저에 virt-who 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 KVM(Red Hat Enterprise Linux Virtualization)(KVM), Red Hat Virtualization 또는 Red Hat OpenStack Platform의 각 하이퍼바이저에 virt-who를 설치하고 구성합니다.
사전 요구 사항
- 하이퍼바이저를 Red Hat 서브스크립션 관리에 등록합니다.
-
RHVH(Red Hat Virtualization Host)를 사용하는 경우 최소 virt-who 버전을 사용할 수 있도록 최신 버전으로 업데이트합니다. virt-who는 기본적으로 RHVH에서 사용할 수 있지만
rhel-7-server-rhvh-4-rpms
리포지토리에서 개별적으로 업데이트할 수 없습니다.
프로세스
하이퍼바이저에 virt-who를 설치합니다.
yum install virt-who
# yum install virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
/etc/virt-who.conf
파일을 편집하여 글로벌 설정을 변경하거나 추가합니다. virt-who가 로컬로 설치되므로 이러한 설정은 이 하이퍼바이저에만 적용됩니다.-
virt-who가 하이퍼바이저를 쿼리하는 빈도를 지정하도록
VIRT Cryostat_INTERVAL
의 값을 변경합니다. 가상 머신에 최대 7일 동안 임시 서브스크립션이 부여되므로 빈번한 쿼리가 필요하지 않으므로 환경 크기에 맞는 간격을 선택할 수 있습니다. 하루에 한 번 (1440
)은 대부분의 환경에 적합합니다. virt-who 통신에 HTTP 프록시를 사용하려면 프록시를 지정하는 행을 추가합니다.
http_proxy=https://proxy.example.com:443
http_proxy=https://proxy.example.com:443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 서버의 virt-who 통신에 HTTP 프록시를 사용하지 않으려면 다음 행을 추가합니다.
NO_PROXY=*
NO_PROXY=*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NO_PROXY=*
는/etc/sysconfig/virt-who
에서만 사용할 수 있습니다.NO_PROXY
는/etc/virt-who.conf
의 유효한 구성이 아닙니다.
-
virt-who가 하이퍼바이저를 쿼리하는 빈도를 지정하도록
템플릿 구성 파일을 새 개별 구성 파일에 복사합니다.
cp /etc/virt-who.d/template.conf /etc/virt-who.d/local.conf
# cp /etc/virt-who.d/template.conf /etc/virt-who.d/local.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 방금 생성한 구성 파일을 편집하여 예제 값을 구성과 관련된 값으로 변경합니다.
[local] type=libvirt owner=1234567 hypervisor_id=hostname
[local]
1 type=libvirt
2 owner=1234567
3 hypervisor_id=hostname
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 구성 파일은 virt-who의 이 인스턴스에서 관리하는 유일한 구성 파일이므로 이름은 고유할 필요가 없습니다.
- 2
- 이 virt-who 연결이 Red Hat 하이퍼바이저에 연결되도록 지정합니다.
- 3
- 하이퍼바이저가 속한 조직입니다. 하이퍼바이저에서
subscription-manager orgs
를 실행하여 조직을 찾을 수 있습니다. - 4
- 하이퍼바이저를 식별하는 방법을 지정합니다.
호스트 이름을
사용하여 서브스크립션 관리에 의미 있는 호스트 이름을 제공합니다. 또는 하이퍼바이저의 이름이 변경된 경우uuid
를 사용하여 중복을 방지할 수 있습니다. 개별 하이퍼바이저에는hwuuid
를 사용하지 마십시오.
virt-who 서비스를 시작하고 활성화합니다.
systemctl enable --now virt-who
# systemctl enable --now virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 하이퍼바이저에 대해 이 단계를 반복합니다.
6.5.2. VMware vCenter에 연결하도록 virt-who 구성 링크 복사링크가 클립보드에 복사되었습니다!
VMware vCenter Server에 연결하도록 virt-who를 구성하려면 다음 절차를 사용하십시오.
사전 요구 사항
- vCenter Server에 읽기 전용 virt-who 사용자를 생성합니다. virt-who 사용자는 vCenter Data Center의 모든 오브젝트에 대한 읽기 전용 액세스 권한이 필요합니다.
- Red Hat Enterprise Linux 서버에서 virt-who 호스트를 준비합니다.
프로세스
virt-who 호스트에서 virt-who-password 유틸리티를 사용하여
virt-who 사용자의 암호를
암호화합니다.virt-who-password
# virt-who-password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메시지가 표시되면 virt-who 사용자의 암호를 입력한 다음 암호화된 암호 형식을 기록합니다.
템플릿 구성 파일을 새 개별 구성 파일에 복사합니다.
cp /etc/virt-who.d/template.conf /etc/virt-who.d/vcenter1.conf
# cp /etc/virt-who.d/template.conf /etc/virt-who.d/vcenter1.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 문제 해결 시 구성 파일을 쉽게 식별할 수 있도록 VMware vCenter 호스트 이름을 새 파일의 이름으로 사용합니다. 이 예에서 호스트 이름은 vcenter1 입니다.
방금 생성한 구성 파일을 편집하여 구성과 관련된 예제 값을 변경합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이름은 개별 구성 파일에 대해 고유해야 합니다. vCenter Server 호스트 이름을 사용하여 각 하이퍼바이저의 구성 파일을 쉽게 식별할 수 있습니다.
- 2
- 이 virt-who 연결이 VMware vCenter Server에 연결되도록 지정합니다.
- 3
- vCenter 서버의 FQDN입니다.
- 4
- vCenter Server의 virt-who 사용자 이름입니다.
- 5
- virt-who 사용자의 암호화된 암호입니다.
- 6
- 하이퍼바이저가 속한 조직입니다. 하이퍼바이저에서
subscription-manager orgs
를 실행하여 조직을 찾을 수 있습니다. - 7
- 하이퍼바이저를 식별하는 방법을 지정합니다.
호스트 이름을
사용하여 서브스크립션 관리에 의미 있는 호스트 이름을 제공합니다. 또는uuid
또는hwuuid
를 사용하여 하이퍼바이저의 이름이 변경된 경우 중복을 방지할 수 있습니다. - 8
- 일부 하이퍼바이저에서 Red Hat Enterprise Linux 가상 머신을 실행하지 않는 경우 해당 하이퍼바이저를 virt-who에 보고할 필요가 없습니다. 다음 옵션 중 하나를 사용하여 하이퍼바이저를 필터링할 수 있습니다. 와일드카드 및 정규식이 지원됩니다. 이름에 특수 문자가 포함된 경우 따옴표로 묶습니다.
-
filter_hosts
또는exclude_hosts
: 지정된hypervisor_id
에 따라 쉼표로 구분된 하이퍼바이저 목록을 제공합니다. 예를 들어 하이퍼바이저가 호스트 이름으로 식별되는 경우 호스트 이름으로 포함되거나 제외되어야 합니다. -
filter_host_parents
또는exclude_host_parents
: 쉼표로 구분된 클러스터 목록을 제공합니다. 필터링된 클러스터의 하이퍼바이저는 virt-who에 의해 보고됩니다. 제외된 클러스터의 하이퍼바이저는 virt-who에 의해 보고되지 않습니다.
-
virt-who 서비스를 다시 시작하십시오.
systemctl restart virt-who
# systemctl restart virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 vCenter Server에 대해 이 단계를 반복합니다.
6.5.3. Microsoft Hyper-V에 연결하도록 virt-who 구성 링크 복사링크가 클립보드에 복사되었습니다!
Microsoft Hyper-V 하이퍼바이저에 연결하도록 virt-who를 구성하려면 다음 절차를 사용하십시오.
사전 요구 사항
- Red Hat Enterprise Linux 9 이상.
- Red Hat Enterprise Linux 서버에서 virt-who 호스트를 준비합니다.
- 하이퍼바이저의 기본 인증 모드를 활성화합니다.
- 하이퍼바이저에서 원격 관리를 활성화합니다.
- 하이퍼바이저에 읽기 전용 virt-who 사용자를 생성합니다.
프로세스
virt-who 호스트에서
virt-who-password
유틸리티를 사용하여 하이퍼바이저의 virt-whoho 사용자의 암호를 암호화합니다.virt-who-password
# virt-who-password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메시지가 표시되면 virt-who 사용자의 암호를 입력한 다음 암호화된 암호 형식을 기록합니다.
템플릿 구성 파일을 새 개별 구성 파일에 복사합니다.
cp /etc/virt-who.d/template.conf /etc/virt-who.d/hyperv1.conf
# cp /etc/virt-who.d/template.conf /etc/virt-who.d/hyperv1.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 문제 해결 시 구성 파일을 쉽게 식별할 수 있도록 하이퍼바이저의 호스트 이름을 새 파일의 이름으로 사용합니다. 이 예에서 호스트 이름은 hyperv1 입니다.
방금 생성한 구성 파일을 편집하여 구성과 관련된 예제 값을 변경합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이름은 개별 구성 파일에 대해 고유해야 합니다. 하이퍼바이저의 호스트 이름을 사용하여 각 하이퍼바이저의 구성 파일을 쉽게 식별할 수 있습니다.
- 2
- 이 virt-who 연결이 Microsoft Hyper-V 하이퍼바이저에 연결되도록 지정합니다.
- 3
- Hyper-V 하이퍼바이저의 FQDN입니다.
- 4
- 하이퍼바이저의 virt-who 사용자 이름입니다.
- 5
- virt-who 사용자의 암호화된 암호입니다.
- 6
- 하이퍼바이저가 속한 조직입니다. 하이퍼바이저에서
subscription-manager orgs
를 실행하여 조직을 찾을 수 있습니다. - 7
- 하이퍼바이저를 식별하는 방법을 지정합니다.
호스트 이름을
사용하여 서브스크립션 관리에 의미 있는 호스트 이름을 제공합니다. 또는 하이퍼바이저의 이름이 변경된 경우uuid
를 사용하여 중복을 방지할 수 있습니다. 개별 하이퍼바이저에는hwuuid
를 사용하지 마십시오.
virt-who 서비스를 다시 시작하십시오.
systemctl restart virt-who
# systemctl restart virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 하이퍼바이저에 대해 이 단계를 반복합니다.
6.5.4. OpenShift Virtualization에 연결하도록 virt-who 구성 링크 복사링크가 클립보드에 복사되었습니다!
지원되는 플랫폼
virt-who에서 OpenShift Virtualization 지원 상태:
- virt-who-0.28.x-1.el7 (RHEL 7.9)
- virt-who-0.29.x-1.el8 (RHEL 8.3)
프로세스
구독하려는 클러스터에서 virt-who라는 프로젝트 및 서비스 계정을 생성합니다.
oc new-project virt-who oc create serviceaccount virt-who
$ oc new-project virt-who $ oc create serviceaccount virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 역할을 생성하여 노드 및 가상 머신 인스턴스를 나열합니다.
oc create clusterrole lsnodes --verb=list --resource=nodes oc create clusterrole lsvmis --verb=list --resource=vmis
$ oc create clusterrole lsnodes --verb=list --resource=nodes $ oc create clusterrole lsvmis --verb=list --resource=vmis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 역할 바인딩을 생성합니다.
oc adm policy add-cluster-role-to-user lsnodes system:serviceaccount:virt-who:virt-who oc adm policy add-cluster-role-to-user lsvmis system:serviceaccount:virt-who:virt-who
$ oc adm policy add-cluster-role-to-user lsnodes system:serviceaccount:virt-who:virt-who $ oc adm policy add-cluster-role-to-user lsvmis system:serviceaccount:virt-who:virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-who 시스템 계정에 실행 중인 모든 VM을 나열할 수 있는 권한이 있는지 확인합니다.
oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
$ oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Virtualization 자체에서 실행되는 VM일 수 있는 호스트에 virt-who를 설치합니다.
yum install virt-who
[virtwho-host]$ yum install virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서브스크립션 호스트에서 소유자 번호를 찾습니다.
subscription-manager orgs
$ subscription-manager orgs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 템플릿 구성 파일을 새 개별 구성 파일에 복사합니다. 문제 해결 시 구성 파일을 쉽게 식별할 수 있도록 클러스터 API의 호스트 이름을 사용합니다. 이 예에서 호스트 이름은
openshift-cluster-1
입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-who 서비스 계정의 토큰을 가져옵니다.
oc serviceaccounts get-token virt-who
# oc serviceaccounts get-token virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/bin/oc
을 사용할 수 없는 경우/usr/bin/oc
을 설치하고 토큰을 사용하여 로그인하고 유효한 kubeconfig 파일을 생성합니다. url을 포함하여 클러스터 API를 지정해야 합니다. 예를 들면 다음과 같습니다.oc login https://api.testcluster-1.example.org:6443 --token=<token>
[virtwho-host]# oc login https://api.testcluster-1.example.org:6443 --token=<token>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig 파일에서 OpenShift Virtualization 인증서 인증 (CA) 인증서를 사용하려면 클러스터에서 추출하여 virt-who를 컨트롤러 데몬으로 실행하는 시스템의 파일에 저장합니다.
oc get secret -n openshift-kube-apiserver-operator loadbalancer-serving-signer -o jsonpath='{.data.tls\.crt}' | base64 -d > $cluster-ca.pem
oc get secret -n openshift-kube-apiserver-operator loadbalancer-serving-signer -o jsonpath='{.data.tls\.crt}' | base64 -d > $cluster-ca.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 추출된 CA 인증서를 포함하도록 kubeconfig 파일을 변경합니다. 예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서비스를 시작하기 전에 구성을 수동으로 테스트할 수 있습니다.
virt-who --print
[virtwho-host]# virt-who --print
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
jq
프로그램이 설치되어 있으면 출력을 더 쉽게 읽을 수 있습니다. # virt-who --print | jq
virt-who 서비스를 활성화합니다.
systemctl enable virt-who
[virtwho-host]# systemctl enable virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-who 서비스를 다시 시작하여 새 구성을 사용합니다.
systemctl restart virt-who
[virtwho-host]# systemctl restart virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
virt-who 로그는 /var/log/rhsm/rhsm.log
에서 사용할 수 있습니다. 이 파일에서 구성 또는 연결 오류를 볼 수 있습니다.