[libvirt] [PATCH 0/6] NSS module for libvirt

Guido Günther agx at sigxcpu.org
Tue Feb 16 16:48:39 UTC 2016

On Mon, Feb 15, 2016 at 05:38:37PM +0100, Michal Privoznik wrote:
> Are you tired of remembering IP addresses for your domains?  Do
> you have enough of configuring static IPs so that you can add
> them to your hosts file? Then libvirt NSS module is exactly what
> you need!
> NSS does a lot in a Linux host. These patches aim at translating
> domain names into IP addresses. All you need to do, is install
> libnss_libvirt.so.2 (e.g. via 'make install' ran from source
> dir), enable the module in nsswitch.conf:
>     $ grep libvirt /etc/nsswitch.conf
>     hosts:       files dns libvirt
> and you're all set. Now you can just:
>     $ ping $mydomain
>     $ ssh user@$mydomain
> or anything you'd like. The only limitation is that it has to be
> libvirt who has assigned the domain IP address. The limitation
> comes from implementation in which
> '/var/lib/libvirt/dnsmasq/*.status' files are parsed when looking
> up a hostname.
> What's beautiful on this feature is that it helps any users
> regardless of their systemd attitude. On systemd hosts there
> already exists a similar module 'mymachines' which takes its data
> from machined. And libvirt does communicate with machined when
> creating a domain. But unfortunately at that time we know nothing
> about guest's IPs and therefore do not tell them to machined,
> which in turn can't tell anything to mymachines module. To make
> things worse, machined seems to be lacking an API to tell it the
> addresses later on when libvirt finds out. Therefore even systemd
> distros will benefit from this feature.

Nice. For a similar purpose I hacked up simplec a while ago:


it works by fetching domain IPs using our APIs and stores them in a file
for a dnsmasq instance to read. This allows to even collect IPs from
remote URIs.

 -- Guido

More information about the libvir-list mailing list