5.5. 원격 가상화 호스트에 쉽게 액세스 설정

libvirt 유틸리티를 사용하여 원격 호스트 시스템의 VM을 관리할 때 -c qemu+ssh://root@hostname/system 구문을 사용하는 것이 좋습니다. 예를 들어 10.0.0.1 호스트에서 virsh list 명령을 root로 사용하려면 다음을 실행합니다.

# virsh -c qemu+ssh://root@10.0.0.1/system list

root@10.0.0.1's password:

Id   Name              State
---------------------------------
1    remote-guest      running

그러나 편의를 위해 SSH 및 libvirt 구성을 수정하여 연결 세부 정보를 전체적으로 지정할 필요가 없습니다. 예를 들어 다음을 수행할 수 있습니다.

# virsh -c remote-host list

root@10.0.0.1's password:

Id   Name              State
---------------------------------
1    remote-guest      running

이 개선 사항을 활성화하려면 아래 지침을 따르십시오.

절차

  1. ~/.ssh/config 파일을 편집하거나 생성하고 다음 내용을 추가합니다. 여기서 host-alias 는 특정 원격 호스트와 연결된 이름이 단축되고 hosturl 은 호스트의 URL 주소입니다.

    Host host-alias
            User                    root
            Hostname                hosturl

    예를 들어 다음에서는 root@10.0.0.1의 tyrannosaurus 별칭을 설정합니다.

    Host tyrannosaurus
            User                    root
            Hostname                10.0.0.1
  2. /etc/libvirt/libvirt.conf 파일을 편집하거나 생성하고 다음 내용을 추가합니다. 여기서 qemu-host-alias 는 QEMU 및 libvirt 유틸리티가 의도한 호스트와 연결할 호스트 별칭입니다.

    uri_aliases = [
      "qemu-host-alias=qemu+ssh://host-alias/system",
    ]

    예를 들어 다음에서는 이전 단계에서 구성한 tyrannosaurus 별칭을 사용하여 qemu+ssh://10.0.0.1/system 을 나타내는 t-rex 별칭을 설정합니다.

    uri_aliases = [
      "t-rex=qemu+ssh://tyrannosaurus/system",
    ]

검증

  1. 추가된 -c qemu-host-alias 매개변수가 있는 로컬 시스템에서 libvirt 기반 유틸리티를 사용하여 원격 VM을 관리할 수 있는지 확인합니다. 이 명령은 원격 호스트에서 SSH를 통해 자동으로 명령을 수행합니다.

    예를 들어 다음에 10.0.0.1 원격 호스트의 VM이 나열되는지 확인합니다. 이 연결은 이전 단계에서 t-rex 로 설정된 연결입니다.

    $ virsh -c t-rex list
    
    root@10.0.0.1's password:
    
    Id   Name              State
    ---------------------------------
    1    velociraptor      running
    참고

    virsh 외에 -c (또는 --connect) 옵션과 위에서 설명한 원격 호스트 액세스 구성은 다음 유틸리티에서 사용할 수 있습니다.

다음 단계

  • 단일 원격 호스트에서만 libvirt 유틸리티를 사용하려면 특정 연결을 libvirt 기반 유틸리티의 기본 대상으로 설정할 수도 있습니다. 이를 위해 /etc/libvirt/libvirt.conf 파일을 편집하고 uri_default 매개변수 값을 qemu-host-alias 로 설정합니다. 예를 들어 다음에서는 이전 단계에서 기본 libvirt 대상으로 설정된 t-rex 호스트 별칭을 사용합니다.

    # These can be used in cases when no URI is supplied by the application
    # (@uri_default also prevents probing of the hypervisor driver).
    #
    uri_default = "t-rex"

    결과적으로 모든 libvirt 기반 명령이 지정된 원격 호스트에서 자동으로 수행됩니다.

    $ virsh list
    root@10.0.0.1's password:
    
    Id   Name              State
    ---------------------------------
    1    velociraptor      running

    그러나 로컬 호스트 또는 다른 원격 호스트에서 VM을 관리하려면 이 방법은 권장되지 않습니다.

  • 원격 호스트에 연결할 때 원격 시스템에 루트 암호를 제공하지 않아도 됩니다. 이를 수행하려면 다음 방법 중 하나 이상을 사용합니다.

  • -c (또는 --connect) 옵션을 사용하여 원격 호스트에서 virt-install, virt-viewer, virsh 명령을 실행할 수 있습니다.