Showing posts with label studio. Show all posts
Showing posts with label studio. Show all posts

Tuesday, July 10

Get some Jeos!

JeOS is the abbreviation (pronounced "juice") for Just Enough Operating System as it applies to a software appliance (source: Wikipedia).
Jeos is an idea implemented by VMware to create even more compact purpose driven VMs. Although didn't got too mainstream, JeOS is available with VMware Studio since the 2.5 release.
See this VMware blog entry about the idea, or here you can find the not-so-complete documentation...
With this feature, you can create a RedHat or Centos based VM (either 32 or 64 bit) with an unbelievable size of 15 megs!
Okay, so we have space and memory in our servers, why should we create micro-sized VMs? Because wastefulness should be considered a sin in Cloud environments. And you may run hundreds of these if needed in the place of one bloatware VM - the VM that has every single package of it's OS in it, although it's only using Apache for example. Think about a grid computing example with on demand node provisioning...


Jeos is still experimental in Studio, and I'll be honest, I don't think it will develop too rapidly. It's just too complex to use for some peeps - most people won't bother to use it. Basically, after the build you got a stripped down Linux without most of it's daemons. This means you are on your own - you have to hunt down library dependencies one by one for your program, using strace or something. I really loved it all the time, it reminded me on developing embedded systems again...


A few helpful hints for Jeos in Studio 2.6:
  • DHCP is enabled by default in every JeOS VM. While I see the point in this, I consider it sometimes a bit unnecessary. To disable it (stop auto-starting it with the VM), you have to manually edit the file /opt/vmware/etc/jeos/default/initrd.xml and comment out line 102 on the Studio VM. Then the line shall look like # /bin/busybox udhcpc -b -s /etc/udhcp/node -i $iface - the # in the front makes it go away :) After this, building a JeOS VM won't imply using DHCP.
  • Also, the DHCP client service is bugged - it's name resolution won't work as expected. It has a typo in it's init script. Edit /opt/vmware/etc/jeos/busybox/node file to fix it. Line 68 should look like if [ -n "$RESOLV_CONF" ] instead of RESOLVE.CONF. See this forum post at communities.vmware.com.
  • /etc/inittab is generated when the "mkjeosvm" program is run at build time. If you want a custom inittab in your JeOS VM, you will have to edit Studio's /opt/vmware/etc/jeos/default/rootfs.xml. The inittab definition should start at about line 35.
  • mkjeosvm is a python script in /opt/vmware/bin. You can still hack it, if you want a different GRUB timeout for example. It's value is at #652.
  • Always make a backup before playing around with these files. It can hurt your building process or the built VM may have errors in it.
As always, no warranty, etc. Have fun!

Monday, September 19

Workstation 8 with Studio 2.5

...does work, with some assumptions. The new Workstation 8 literally merges the Server product-line (ex-GSX) with the Workstation product line, that's called VMware Workstation-Server service. It supports autostart features and finally a usable remote management interface, by using another workstation as client. It also supports the workstation as a client of ESXi5 or vSphere5, but that's off-topic now.
So, this server-service runs on Linux64 at my box, and I'm using it as a build-host for my Studio 2.5 projects. On WKS7, You had to run the Workstation with #/usr/bin/vmware all the time You wanted to run a VM. That called for a vncserver of course. Now, WKS8 supports running VMs as a service. The issue is: if You try to build a Studio VM, You still have to run the Workstation GUI (on the vncserver for example), otherwise the build will fail. This limitation will probably disappear in the next version of Studio. Also, old build VMs stay in the WKS library, even after deleting their files, this worked in WKS7 better.

Studio updater

I am playing with VMware Studio 2.5 now (great stuff btw), and seem I found a strange bug.
I am using Workstation 7 on Linux64 as the build host, and I try to create an update repository. It builds the VM, but when updating the repo the following error message appears in the build log:

Unable to create directory at manifest
; shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
pushd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
mkdir: cannot create directory `manifest': No such file or directory
It only occurs, when I choose not to build the ZIP archive, only OV*. Should test it on WKS8, but I guess it's a Studio problem. More to come later.