Set hostname of guest during installation time

Michal Prívozník mprivozn at redhat.com
Mon Mar 30 14:10:29 UTC 2020


On 30. 3. 2020 15:26, john doe wrote:
> On 3/30/2020 1:20 PM, Andrea Bolognani wrote:
>> On Mon, 2020-03-30 at 12:04 +0200, Michal Prívozník wrote:
>>> On 27. 3. 2020 20:49, john doe wrote:
>>>> If my understanding is correct, using 'try06' or 'debian' should do the
>>>> same thing?
>>>
>>> Yes, that is the idea. However, these plugins were not introduced at the
>>> same time. I think that especially Debian has delayed libvirt_guest
>>> plugin. You can check if both plugins exist:
>>>
>>> ls /usr/lib64/libnss_libvirt*
>>>
>>> /usr/lib64/libnss_libvirt_guest.so.2
>>> /usr/lib64/libnss_libvirt.so.2
>>
>> Note that paths are different in Debian-based distros, so the correct
>> ones in this case are actually
>>
>>   /lib/x86_64-linux-gnu/libnss_libvirt.so.2
>>   /lib/x86_64-linux-gnu/libnss_libvirt_guest.so.2
>>
> 
> I have upgraded that Buster host to Bullseye, so I have now a 6... version.
> I have also the above two modules.
> 
> I'm still not able to use 'libvirt_guest' though:
> 
> --- Guest output (try06):
> 
> root at try06:~# cat /etc/hostname
> try06
> 
> --- Host output (host):
> 
> root at host:# grep hosts: /etc/ns*
> hosts: libvirt_guest
> root at host:# virsh net-dhcp-leases default
>  Expiry Time           MAC address         Protocol   IP address
>    Hostname   Client ID or DUID
> ---------------------------------------------------------------------------------------------------------
>  2020-03-30 16:03:41   52:54:00:d4:e6:f0   ipv4       192.168.122.137/24
>   -          -
> 
> 
> root at host:# getent hosts try06; echo $?
> 2
> 
> 
> What am I missing?

Hold on. 'libvirt_guest' NSS plugin is supposed to translate libvirt
names to IP addresses. For instance:

  virsh start myDomain; ssh myDomain

The 'libvirt' NSS plugin is supposed to translate hostnames as sent by
guests to IP addresses. These two can be viewed as the following:

libvirt_guest: virsh domifaddr --source lease $dom
      libvirt: virsh net-dhcp-leases $net | grep $hostname

And this is where it gets interesting. In your previous e-mails,
net-dhcp-leases (aka 'libvirt' plugin) worked because the guest did send
hostname when doing DHCP. Now it doesn't (see '-' under 'Hostname' in
the output). Therefore, the 'libvirt' NSS plugin won't work.

And 'libvirt_guest' translates names of guests as seen by libvirt, i.e.
names you pass to virsh commands. These are unrelated to '/etc/hostname'
within guest. But hopefully, you haven't renamed your guest since then
and it is still named 'try06', that is virsh list --all produces 'try06'
in the list. If this is all true, can you share the output of:

  strace $(which getent) hosts try06


Michal




More information about the libvirt-users mailing list