Libvirt 및 dnsmasq를 사용하여 게스트가 호스트 이름으로 서로 통신하도록 허용

Libvirt 및 dnsmasq를 사용하여 게스트가 호스트 이름으로 서로 통신하도록 허용

저는 Ansible을 사용하여 가상 머신을 프로비저닝하는데 훌륭하게 작동합니다. Dnsmasq는 DHCP를 처리하여 자동으로 IP를 얻습니다. 그러나 DNS가 구성되지 않았기 때문에 가상 머신은 호스트 이름으로 서로 통신할 수 없으며 IP로만 통신할 수 있습니다.

virsh net-define새 도메인을 사용하고 만들어야 한다는 일부 가이드를 읽었습니다 virsh net-edit. 하지만 이 작업은 수동으로 수행해야 합니다.이 가이드제가 눈여겨 보고 있는 것 중 하나입니다.

어떻게든 자동으로 할 수 있는 건가요? 제가 제공한 가이드보다 낫지 않을까요?

단순화를 위해 호스트를 추가했지만 /etc/hosts더 나은 솔루션이 있어야 한다고 생각하시나요?

답변1

부가 지식:

많은 애플리케이션이 호출을 통해 FQDN을 확인합니다.호스트 이름 가져오기.

Linux에서 C 라이브러리는 다음을 읽습니다./etc/nsswitch.conf정보 소스를 구성합니다. 최소한 가지고 hosts: files있다면 /etc/hosts.

실제 답변

Vagrant와 함께 libvirt를 사용하여 사용할 수 있습니다.떠돌이 호스트 관리자.

/etc/hoststldr: 게스트에 항목을 추가하고 /etc/hosts호스트에 업데이트할 수 있습니다.

/etc/hostsAnsible을 사용하여 libvirt 또는 QEMU를 직접 호출할 수 있는 경우 다음 동작을 복제할 수 있습니다. Ansible은 IP 주소가 수집되었다는 사실을 알고 있으므로 각 게스트와 호스트에 대한 연결을 추가할 수 있습니다. hostvars변수의 값을 조회하고 전체 인벤토리를 기반으로 플레이북을 사용해야 할 수도 있습니다 (따라서 사실 수집 단계가 각 호스트에 적용되고 IP를 얻습니다). 고정 IP의 경우: 모든 게스트에서 동일한 콘텐츠를 덤프할 수 있습니다(그리고 IP 중복을 피하기 위해 템플릿을 사용할 수 있습니다).

내가 하나 찾았어유제이는 또 다른 답변을 제공합니다(프로젝트와 관련된 VM뿐만 아니라 모든 VM에 영향을 미칩니다).

관련 정보