summaryrefslogtreecommitdiff
path: root/docs/apps.html.in
blob: 39fb78d8bc854f95f9877d04577489700ab8de9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>Applications using <strong>libvirt</strong></h1>

    <p>
      This page provides an illustration of the wide variety of
      applications using the libvirt management API.
    </p>

    <ul id="toc"></ul>

    <h2><a name="add">Add an application</a></h2>

    <p>
      To add an application not listed on this page, send a message
      to the <a href="contact.html">mailing list</a>, requesting it
      be added here, or simply send a patch against the documentation
      in the libvirt.git docs subdirectory.
      If your application uses libvirt as its API,
      the following graphic is available for your website to advertise
      support for libvirt:
    </p>

    <p class="image">
      <img src="madeWith.png" alt="Made with libvirt"/>
    </p>

    <h2><a name="clientserver">Client/Server applications</a></h2>

    <dl>
      <dt><a href="http://archipelproject.org">Archipel</a></dt>
      <dd>
        Archipel is a libvirt-based solution to manage and supervise virtual
        machines.  It uses XMPP for all communication. There is no web
        service or custom protocol.  You just need at least one XMPP server,
        like eJabberd, to start playing with it.  This allows Archipel to
        work completely real time.  You never have to refresh the user
        interface, you'll be notified as soon as something happens. You can
        even use your favorite chat clients to command your infrastructure.
      </dd>
      <dd>
        Isn't it great to be able to open a chat conversation with your
        virtual machine and say things like "How are you today?" or "Hey,
        please reboot"?
      </dd>
    </dl>

    <h2><a name="command">Command line tools</a></h2>

    <dl>
      <dt><a href="http://libguestfs.org">guestfish</a></dt>
      <dd>
        Guestfish is an interactive shell and command-line tool for examining
        and modifying virtual machine filesystems.  It uses libvirt to find
        guests and their associated disks.
      </dd>
      <dt>virsh</dt>
      <dd>
        An interactive shell, and batch scriptable tool for performing
        management tasks on all libvirt managed domains, networks and
        storage. This is part of the libvirt core distribution.
      </dd>
      <dt><a href="http://virt-manager.org/">virt-clone</a></dt>
      <dd>
        Allows the disk image(s) and configuration for an existing
        virtual machine to be cloned to form a new virtual machine.
        It automates copying of data across to new disk images, and
        updates the UUID, MAC address, and name in the configuration.
      </dd>
      <dt><a href="http://et.redhat.com/~rjones/virt-df/">virt-df</a></dt>
      <dd>
        Examine the utilization of each filesystem in a virtual machine
        from the comfort of the host machine. This tool peeks into the
        guest disks and determines how much space is used. It can cope
        with common Linux filesystems and LVM volumes.
      </dd>
      <dt><a href="http://virt-manager.org/">virt-image</a></dt>
      <dd>
        Provides a way to deploy virtual appliances. It defines a
        simplified portable XML format describing the pre-requisites
        of a virtual machine. At time of deployment this is translated
        into the domain XML format for execution under any libvirt
        hypervisor meeting the pre-requisites.
      </dd>
      <dt><a href="http://virt-manager.org/">virt-install</a></dt>
      <dd>
        Provides a way to provision new virtual machines from a
        OS distribution install tree. It supports provisioning from
        local CD images, and the network over NFS, HTTP and FTP.
      </dd>
      <dt><a href="http://et.redhat.com/~rjones/virt-top/">virt-top</a></dt>
      <dd>
        Watch the CPU, memory, network and disk utilization of all
        virtual machines running on a host.
      </dd>
      <dt>
        <a href="http://people.redhat.com/~rjones/virt-what/">virt-what</a>
      </dt>
      <dd>
        virt-what is a shell script for detecting if the program is running
        in a virtual machine.  It prints out a list of facts about the
        virtual machine, derived from heuristics.
      </dd>
      <dt><a href="http://sourceware.org/systemtap/">stap</a></dt>
      <dd>
        SystemTap is a tool used to gather rich information about a running
        system through the use of scripts. Starting from v2.4, the front-end
        application stap can use libvirt to gather data within virtual
        machines.
      </dd>
      <dt><a href="https://github.com/pradels/vagrant-libvirt/">vagrant-libvirt</a></dt>
      <dd>
        Vagrant-Libvirt is a Vagrant plugin that uses libvirt to manage virtual
        machines. It is a command line tool for developers that makes it very
        fast and easy to deploy and re-deploy an environment of vm's.
      </dd>
    </dl>

    <h2><a name="configmgmt">Configuration Management</a></h2>

    <dl>
      <dt><a href="https://wiki.lcfg.org/bin/view/LCFG/LcfgLibvirt">LCFG</a></dt>
      <dd>
        LCFG is a system for automatically installing and managing the
        configuration of large numbers of Unix systems.  It is particularly
        suitable for sites with very diverse and rapidly changing
        configurations.
      </dd>
      <dd>
        The lcfg-libvirt package adds support for virtualized systems to
        LCFG, with both Xen and KVM known to work.  Cloning guests is
        supported, as are the bridged, routed, and isolated modes for
        Virtual Networking.
      </dd>
    </dl>

    <h2><a name="continuousintegration">Continuous Integration</a></h2>

    <dl>
      <dt><a href="http://buildbot.net/buildbot/docs/current/Libvirt.html">BuildBot</a></dt>
      <dd>
        BuildBot is a system to automate the compile/test cycle required
        by most software projects.  CVS commits trigger new builds, run on
        a variety of client machines.  Build status (pass/fail/etc) are
        displayed on a web page or through other protocols.
      </dd>
    </dl>

    <dl>
      <dt><a href="http://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin">Jenkins</a></dt>
      <dd>
        This plugin for Jenkins adds a way to control guest domains hosted
        on Xen or QEMU/KVM.  You configure a Jenkins Slave,
        selecting the guest domain and hypervisor.  When you need to build a
        job on a specific Slave, its guest domain is started, then the job is
        run.  When the build process is finished, the guest domain is shut
        down, ready to be used again as required.
      </dd>
    </dl>

    <h2><a name="conversion">Conversion</a></h2>

    <dl>
      <dt><a href="http://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt>
      <dd>
        Convert a physical machine to run on KVM.  It is a LiveCD
        which is booted on the machine to be converted.  It collects a
        little information from the user, then copies the disks over
        to a remote machine and defines the XML for a domain to run
        the guest.  (Note this tool is included with libguestfs)
      </dd>
      <dt><a href="http://libguestfs.org/virt-v2v.1.html">virt-v2v</a></dt>
      <dd>
        virt-v2v converts guests from a foreign hypervisor to run on
        KVM, managed by libvirt.  It can convert guests from VMware or
        Xen to run on OpenStack, oVirt (RHEV-M), or local libvirt.  It
        will enable VirtIO drivers in the converted guest if possible.
        (Note this tool is included with libguestfs)
      </dd>
      <dd>
        For RHEL customers of Red Hat, conversion of Windows guests is also
        possible.  This conversion requires some Microsoft signed pieces,
        that Red Hat can provide.
      </dd>
      <dt><a href="https://launchpad.net/virt-goodies">vmware2libvirt</a></dt>
      <dd>
        Part of the <i>virt-goodies</i> package, vmware2libvirt is a python
        script for migrating a vmware image to libvirt.
      </dd>
    </dl>

    <h2><a name="desktop">Desktop applications</a></h2>

    <dl>
      <dt><a href="http://virt-manager.org/">virt-manager</a></dt>
      <dd>
        A general purpose desktop management tool, able to manage
        virtual machines across both local and remotely accessed
        hypervisors. It is targeted at home and small office usage
        up to managing 10-20 hosts and their VMs.
      </dd>
      <dt><a href="http://virt-manager.org/">virt-viewer</a></dt>
      <dd>
        A lightweight tool for accessing the graphical console
        associated with a virtual machine. It can securely connect
        to remote consoles supporting the VNC protocol. Also provides
        an optional mozilla browser plugin.
      </dd>
    </dl>

    <h2><a name="iaas">Infrastructure as a Service (IaaS)</a></h2>

    <dl>
      <dt><a href="http://cc1.ifj.edu.pl">Cracow Cloud One</a></dt>
      <dd>The CC1 system provides a complete solution for Private
        Cloud Computing. An intuitive web access interface with an
        administration module and simple installation procedure make
        it easy to benefit from private Cloud Computing technology.
      </dd>

      <dt><a href="http://www.emotivecloud.net">EMOTIVE Cloud</a></dt>
      <dd>The EMOTIVE (Elastic Management Of Tasks In Virtualized
        Environments) middleware allows executing tasks and providing
        virtualized environments to the users with Xen, KVM or
        VirtualBox hypervisor. EMOTIVE's main feature is VM management
        with different scheduling policies. It can be also used as a
        cloud provider and is very easy to extend thanks to its
        modular Web Services architecture.
      </dd>

      <dt><a href="http://www.eucalyptus.com">Eucalyptus</a></dt>
      <dd>
        Eucalyptus is an on-premise Infrastructure as a Service cloud
        software platform that is open source and
        AWS-compatible. Eucalyptus uses libivrt virtualization API to
        directly interact with Xen and KVM hypervisors.
      </dd>

      <dt><a href="http://www.nimbusproject.org">Nimbus</a></dt>
      <dd>
        Nimbus is an open-source toolkit focused on providing
        Infrastructure-as-a-Service (IaaS) capabilities to the scientific
        community.  It uses libvirt for communication with all KVM and Xen
        virtual machines.
      </dd>

      <dt><a href="http://snooze.inria.fr">Snooze</a></dt>
      <dd>
        Snooze is an open-source scalable, autonomic, and energy-efficient
        virtual machine (VM) management framework for private clouds. It
        integrates libvirt for VM monitoring, live migration, and life-cycle
        management.
      </dd>

      <dt><a href="http://www.openstack.org">OpenStack</a></dt>
      <dd>
        OpenStack is a "cloud operating system" usable for both public
        and private clouds.  Its various parts take care of compute,
        storage and networking resources and interface with the user
        using a dashboard.  Compute part uses libvirt to manage VM
        life-cycle, monitoring and so on.
      </dd>

      <dt><a href="https://github.com/gustavfranssonnyvell/cherrypop">Cherrypop</a></dt>
      <dd>
        A cloud software with no masters or central points. Nodes
        autodetect other nodes and autodistribute virtual
        machines and autodivide up the workload. Also there is no
        minimum limit for hosts, well, one might be nice. It's
        perfect for setting up low-end servers in a cloud or a
        cloud where you want the most bang for the bucks.
      </dd>
    </dl>

    <h2><a name="libraries">Libraries</a></h2>

    <dl>
      <dt><a href="http://libguestfs.org">libguestfs</a></dt>
      <dd>
        A library and set of tools for accessing and modifying virtual
        machine disk images.  It can be linked with C and C++ management
        programs, and has bindings for Perl, Python, Ruby, Java, OCaml,
        PHP, Haskell, and C#.
      </dd>
      <dd>
        Using its FUSE module, you can also mount guest filesystems on the
        host, and there is a subproject to allow merging changes into the
        Windows Registry in Windows guests.
      </dd>

      <dt><a href="http://sandbox.libvirt.org">libvirt-sandbox</a></dt>
      <dd>
        A library and command line tools for simplifying the creation of
        application sandboxes using virtualization technology. It currently
        supports either KVM, QEMU or LXC as backends. Integration with
        systemd facilitates sandboxing of system services like apache.
      </dd>
      <dt><a href="https://github.com/ohadlevy/virt#readme">Ruby
          Libvirt Object bindings</a></dt>
      <dd>
        Allows using simple ruby objects to manipulate
        hypervisors, guests, storage, network etc.  It is
        based on top of
        the <a href="http://libvirt.org/ruby">native ruby bindings</a>.
      </dd>
    </dl>

    <h2><a name="livecd">LiveCD / Appliances</a></h2>

    <dl>
      <dt><a href="http://et.redhat.com/~rjones/virt-p2v/">virt-p2v</a></dt>
      <dd>
        An older tool for converting a physical machine into a virtual
        machine.  It is a LiveCD which is booted on the machine to be
        converted.  It collects a little information from the user, then
        copies the disks over to a remote machine and defines the XML for a
        domain to run the guest.
      </dd>
    </dl>

    <h2><a name="monitoring">Monitoring</a></h2>
    <dl>
      <dt><a href="http://collectd.org/plugins/libvirt.shtml">collectd</a></dt>
      <dd>
        The libvirt-plugin is part of <a href="http://collectd.org/">collectd</a>
        and gathers statistics about virtualized guests on a system. This
        way, you can collect CPU, network interface and block device usage
        for each guest without installing collectd on the guest systems.
        For a full description, please refer to the libvirt section in the
        collectd.conf(5) manual page.
      </dd>
      <dt><a href="http://host-sflow.sourceforge.net/">Host sFlow</a></dt>
      <dd>
        Host sFlow is a lightweight agent running on KVM hypervisors that
        links to libvirt library and exports standardized cpu, memory, network
        and disk metrics for all virtual machines.
      </dd>
      <dt><a href="http://honk.sigxcpu.org/projects/libvirt/#munin">Munin</a></dt>
      <dd>
        The plugins provided by Guido G&uuml;nther allow to monitor various things
        like network and block I/O with
        <a href="http://munin.projects.linpro.no/">Munin</a>.
      </dd>
      <dt><a href="http://et.redhat.com/~rjones/nagios-virt/">Nagios-virt</a></dt>
      <dd>
        Nagios-virt is a configuration tool to add monitoring of your
        virtualised domains to <a href="http://www.nagios.org/">Nagios</a>.
        You can use this tool to either set up a new Nagios installation for
        your Xen or QEMU/KVM guests, or to integrate with your existing Nagios
        installation.
      </dd>
      <dt><a href="http://community.zenoss.org/docs/DOC-4687">Zenoss</a></dt>
      <dd>
        The Zenoss libvirt Zenpack adds support for monitoring virtualization
        servers.  It has been tested with KVM, QEMU, VMware ESX, and VMware
        GSX.
      </dd>
    </dl>

    <h2><a name="provisioning">Provisioning</a></h2>

    <dl>
      <dt><a href="http://www.ibm.com/software/tivoli/products/prov-mgr/">Tivoli Provisioning Manager</a></dt>
      <dd>
        Part of the IBM Tivoli family, Tivoli Provisioning Manager (TPM) is
        an IT lifecycle automation product.  It
        <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v38r1/index.jsp?topic=/com.ibm.tivoli.tpm.apk.doc/libvirt_package.html">uses libvirt</a>
        for communication with virtualization hosts and guest domains.
      </dd>
    </dl>

    <dl>
      <dt><a href="http://theforeman.org">Foreman</a></dt>
      <dd>
      Foreman is an open source web based application aimed to be a
      Single Address For All Machines Life Cycle Management. Foreman:

      <ul>
          <li>Creates everything you need when adding a new machine to
          your network, its goal being automatically managing
          everything you would normally manage manually (DNS, DHCP,
          TFTP, Virtual Machines,CA, CMDB...)</li>
          <li>Integrates with Puppet (and acts as web front end to it).</li>
          <li>Takes care of provisioning until the point puppet is
          running, allowing Puppet to do what it does best.</li>
          <li>Shows you Systems Inventory (based on Facter) and
          provides real time information about hosts status based on
          Puppet reports.</li>
      </ul>
      </dd>
    </dl>


    <h2><a name="web">Web applications</a></h2>

    <dl>
      <dt><a href="http://community.abiquo.com/display/AbiCloud">AbiCloud</a></dt>
      <dd>
        AbiCloud is an open source cloud platform manager which allows to
        easily deploy a private cloud in your datacenter. One of the key
        differences of AbiCloud is the web rich interface for managing the
        infrastructure. You can deploy a new service just dragging and
        dropping a VM.
      </dd>
      <dt><a href="http://ovirt.org/">oVirt</a></dt>
      <dd>
        oVirt provides the ability to manage large numbers of virtual
        machines across an entire data center of hosts. It integrates
        with FreeIPA for Kerberos authentication, and in the future,
        certificate management.
      </dd>
      <dt><a href="http://ispsystem.com/en/software/vmmanager">VMmanager</a></dt>
      <dd>
        VMmanager is a software solution for virtualization management
        that can be used both for hosting virtual machines and
        building a cloud.  VMmanager can manage not only one server,
        but a large cluster of hypervisors.  It delivers a number of
        functions, such as live migration that allows for load
        balancing between cluster nodes, monitoring CPU, memory.
      </dd>
      <dt><a href="http://mist.io/">mist.io</a></dt>
      <dd>
        Mist.io is an open source project and a service that can assist you in
        managing your virtual machines on a unified way, providing a simple
        interface for all of your infrastructure (multiple public cloud
        providers, OpenStack based public/private clouds, Docker servers, bare
        metal servers and now KVM hypervisors).
      </dd>
    </dl>

    <h2><a name="mobile">Mobile applications</a></h2>

    <dl>
      <dt><a href="https://market.android.com/details?id=vm.manager">VM Manager</a></dt>
      <dd>
        VM Manager is VM (libvirt) manager (over SSH) application. VM Manager
        is an application for libvirt VM / Domain management over SSH.
        Please keep in mind that this software is under heavy development.
      </dd>
    </dl>

    <h2><a name="other">Other</a></h2>

    <dl>
      <dt><a href="http://cuckoosandbox.org/">Cuckoo Sandbox</a></dt>
      <dd>
        Cuckoo Sandbox is a malware analysis system.  You can throw
        any suspicious file at it and in a matter of seconds Cuckoo
        will provide you back some detailed results outlining what
        such file did when executed inside an isolated environment.
        And libvirt is one of the backends that can be used for the
        isolated environment.
      </dd>
    </dl>

  </body>
</html>