Skip to content

User manual: vmcasts

primalmotion edited this page Sep 20, 2011 · 6 revisions

What are VMCasts ?

In one word, it's a RSS feed that propose some links to download xvm2 files. xvm2 is a simple tar containing:

  • GZIP image of drives, one gzip per drive
  • a MANIFEST
  • a file named description.xml containing the actual libvirt domain description

An example of VMCast would be:

<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
  <title>My Awesome VMCast</title>
  <link>http://www.archipelproject.org</link>
  <uuid>ec53db38-a692-4f04-bac9-50ff9f590001</uuid>
  
  <description>The awesome VMCast feed for Archipel</description>
  <language>en-us</language>
    <item>
        <title>Wordpress template</title>
        <link>http://www.archipelproject.org</link>
        <uuid>ae201436-8b36-11dd-bbb3-269650d01a85</uuid>
        <enclosure url="http://myhypervisor/wordpresstemplate.xvm2" length="266741760" type="application/enomalism2-xvm2"/>
        <description>Debian with Wordpress ready to use</description>
	<pubDate>Tue, 23 Sep 2011 12:00:00 -0800</pubDate>
    </item>
    ....
    <item>
        <title>Windows XP</title>
        <link>http://www.archipelproject.org</link>
        <uuid>ae201436-8b36-11dd-bbb3-269650d01a86</uuid>
        <enclosure url="http://myhypervisor/wordpresstemplate.xvm2" length="42000000" type="application/enomalism2-xvm2"/>
        <description>Windows XP virtual machines</description>
	<pubDate>Tue, 23 Sep 2011 12:00:00 -0800</pubDate>
    </item>
</channel>
</rss>

Archipel understands VMCast, and you can register to any available VMCasts over the internet. Each hypervisor provides platform with its own VMCast. It can package existing virtual machines into xvm2 appliances, and it generates a valid VMCast repository and the RSS file containing informations about the VMCast.

Folder informations

Each hypervisors contains two folders that are used for VMCasts and appliances:

  • /vm/repo: It contains all the downloaded and ready to use appliances
  • /vm/vmcast: It contains all the appliances that are published in hypervisor VMCast and the rss.xml file

Prepare the platform

Archipel generates automatically everything to use the VMCasts. But it's up to you to serve the feed. You just need a simple HTTP server. We will use nginx for this purpose.

First, install nginx:

yum install nginx

Then open /etc/nginx/nginx.conf, locate the default server and edit it:

http {
    ...
    # The default server
    #
    server {
        listen       8080; # beware if you already have a http server running on port 80!
        server_name  _;
        location / {
            root   /vm/vmcasts/;
            index  rss.xml
        }
    }
}

Then start nginx:

service nginx start

Now, let's say your nginx is accessible from the outside with url http://vmcast.hypervisor.com:8080/

Finally edit /etc/archipel/archipel.conf and locate the [VMCASTS] section (note that only the own_vmcast_url parameters needs to be updated):

[VMCASTING]

...

# the name of vmcast. $HOSTNAME is replaced by the actual hostname
own_vmcast_name             = Local VM casts of $HOSTAME

# vmcast description
own_vmcast_description      = This is the own vmcast feed of the hypervisor $HOSTAME

# the url to access the vmcast
## THIS IS CAPITAL TO ADD THE BASE URL YOU CONFIGURE WITH YOUR HTTP SERVER!
own_vmcast_url              = http://vmcast.hypervisor.com:8080/

...

And finally, restart archipel agent

/etc/init.d/archipel restart

Your platform is now ready to use VMCasts and publish appliances!

Clone this wiki locally