[libvirt-users] ESX access using libvirt

Matthias Bolte matthias.bolte at googlemail.com
Thu Mar 4 19:31:07 UTC 2010


2010/3/4 Jonathan Kelley <jkelley at vm-labs.com>:
> I must be missing something here so I don't need to install anything but
> using esx requires what looks like TLS configured along with libvirtd
> running on ESX.
> When I do esx:// I get the following:
> 14:07:44.736: debug : virConnectOpenAuth:1355 : name=esx://test?no_verify=1,
> auth=0x7f4512a6e5a0, flags=0
> 14:07:44.736: debug : do_open:1110 : name "esx://test?no_verify=1" to URI
> components:
>   scheme esx
>   opaque (null)
>   authority (null)
>   server test
>   user (null)
>   port 0
>   path ?no_verify=1

Your libxml2 version expects a / before the query parameters. you
should use esx://test/?no_verify=1 as URI.

> 14:07:44.736: debug : do_open:1120 : trying driver 0 (Test) ...
> 14:07:44.736: debug : do_open:1126 : driver 0 Test returned DECLINED
> 14:07:44.736: debug : do_open:1120 : trying driver 1 (OPENVZ) ...
> 14:07:44.736: debug : do_open:1126 : driver 1 OPENVZ returned DECLINED
> 14:07:44.736: debug : do_open:1120 : trying driver 2 (VBOX) ...
> 14:07:44.736: debug : do_open:1126 : driver 2 VBOX returned DECLINED

Here libvirt should probe the ESX driver, but it doesn't, and because
no driver accepted the URI until here libvirt probes the remote
driver. The remote driver then tries to connect to a libvirtd on the
ESX server but fails.

Sorry, I should have spotted this problem in your previous mail.

> 14:07:44.736: debug : do_open:1120 : trying driver 3 (remote) ...
> 14:07:44.736: debug : doRemoteOpen:564 : proceeding with name =
> esx://%3Fno_verify=1
> 14:07:44.737: debug : initialise_gnutls:1143 : loading CA file
> /apps/etc/pki/CA/cacert.pem
> 14:07:44.737: debug : initialise_gnutls:1156 : loading client cert and key
> from files /apps/etc/pki/libvirt/clientcert.pem and
> /apps/etc/pki/libvirt/private/clientkey.pem
> 14:07:44.739: error : doRemoteOpen:644 : unable to connect to libvirtd at
> 'test': Connection refused
> 14:07:44.739: debug : do_open:1126 : driver 3 remote returned ERROR
> 14:07:44.739: debug : virUnrefConnect:259 : unref connection 0x1f3bd10 1
> 14:07:44.739: debug : virReleaseConnect:216 : release connection 0x1f3bd10
> -Jon

The problems here is that your libvirt doesn't have ESX support
enabled. The ESX driver requires libcurl 7.18.0 or newer. The
configure script tests if libcurl is available and disables ESX
support if it's missing. Check the summary at the end of the configure
script output and make sure it says 'ESX: yes'.

The libvirt error reporting in the case of known but disabled drivers
is not so useful. You're not the first one that struggles with this
problem. I've a half finished patch lying around that addresses this
problem and improves the error reporting in this situation.

Matthias

> On Thu, Mar 4, 2010 at 1:54 PM, Matthias Bolte
> <matthias.bolte at googlemail.com> wrote:
>>
>> Ah, don't use esx+ssh://, just use esx://
>>
>> The scheme format <driver>+<transport>:// implies that you want to use
>> the libvirt remote mechanisms via the libvirt daemon (libvirtd) or the
>> server side, but the ESX driver doesn't use this. It directly connects
>> to the ESX server using HTTPS.
>>
>> You do not need to have or install netcat on the ESX server, as said
>> before an out-of-the-box ESX installation is sufficient.
>>
>> Matthias
>>
>> 2010/3/4 Jonathan Kelley <jkelley at vm-labs.com>:
>> > I built it from the 0.7.6 sources but it still shows me that it is
>> > running
>> > the 'nc' command on the ESX server (which does not exist). Is netcat
>> > required to be on ESX?
>> >
>> > 13:24:26.765: debug : do_open:1110 : name "esx+ssh://test" to URI
>> > components:
>> >  scheme esx+ssh
>> >  opaque (null)
>> >  authority (null)
>> >  server test
>> >  user (null)
>> >  port 0
>> >  path
>> >
>> > 13:24:26.765: debug : do_open:1120 : trying driver 0 (Test) ...
>> > 13:24:26.765: debug : do_open:1126 : driver 0 Test returned DECLINED
>> > 13:24:26.765: debug : do_open:1120 : trying driver 1 (OPENVZ) ...
>> > 13:24:26.765: debug : do_open:1126 : driver 1 OPENVZ returned DECLINED
>> > 13:24:26.765: debug : do_open:1120 : trying driver 2 (VBOX) ...
>> > 13:24:26.765: debug : do_open:1126 : driver 2 VBOX returned DECLINED
>> > 13:24:26.765: debug : do_open:1120 : trying driver 3 (remote) ...
>> > 13:24:26.765: debug : doRemoteOpen:564 : proceeding with name = esx://
>> > 13:24:26.765: debug : virExecWithHook:640 : ssh test nc -U
>> > /apps/var/run/libvirt/libvirt-sock
>> > 13:24:26.769: debug : remoteIO:8429 : Do proc=66 serial=0 length=28
>> > wait=(nil)
>> > 13:24:26.769: debug : remoteIO:8491 : We have the buck 66 0x7fc565c4b010
>> > 0x7fc565c4b010
>> > 13:24:31.384: error : remoteIOReadBuffer:7707 : server closed connection
>> > 13:24:31.384: debug : remoteIOEventLoop:8376 : Giving up the buck due to
>> > I/O
>> > error 66 0x7fc565c4b010 (nil)
>> > 13:24:31.384: debug : do_open:1126 : driver 3 remote returned ERROR
>> > 13:24:31.384: debug : virUnrefConnect:259 : unref connection 0x1146d20 1
>> > 13:24:31.384: debug : virReleaseConnect:216 : release connection
>> > 0x1146d20
>> >
>> >
>> > Thanks,
>> > Jon
>> >
>> > On Thu, Mar 4, 2010 at 12:26 PM, Matthias Bolte
>> > <matthias.bolte at googlemail.com> wrote:
>> >> 2010/3/4 Jonathan Kelley <jkelley at vm-labs.com>:
>> >>> Hello,
>> >>>
>> >>> I am trying to access an ESXi host using libvirt but it seems that it
>> >>> requires netcat to be running on the ESX server.
>> >>>
>> >>> My ESX 4 does not have this installed and I am wondering if this is
>> >>> required or is there some other way to get this working?
>> >>>
>> >>> Thanks,
>> >>> Jon
>> >>>
>> >>
>> >> No, you do not have to install anything on the ESX or ESXi server.
>> >> libvirt works with an out-of-the-box installation of ESX.
>> >>
>> >> Make sure your libvirt version is new enough (0.7.0 or newer) and that
>> >> the ESX support is enabled. For example if you've installed libvirt
>> >> from Debian packages then you'll need to build libvirt from source,
>> >> because Debian explicitly disables ESX support in their packages for
>> >> some unknown reason.
>> >>
>> >> See http://libvirt.org/drvesx.html if you haven't yet.
>> >>
>> >> Matthias
>> >>
>> >
>> >
>
>




More information about the libvirt-users mailing list