A SimDK Virtual Appliance

I am overwhelmed and flattered by the tremendous interest in SimDK. Due to the high barrier of entry at this early stage in SimDK’s development, I’ve created a Virtual Appliance with SimDK preinstalled (a dirty, dark secret about me — I know nothing about Virtual Appliances or how to create them, so bear with me please).

Virtual Appliance Configuration

  • Ubuntu 9.04 (Jaunty Jackalope) x64 Server (Minimal Virtual Machine)
  • 2 GB RAM
  • 1.9 GB Hard Drive (VMDK), LSI Logic Controller, No Space Pre-Allocation
  • Automatic Security Upgrades Enabled
  • OpenSSH
  • Tomcat6 (HTTP on port 80)
  • MySQL5
  • SimDK 0.0.1-SNAPSHOT
  • Created with VMware Fusion 3.0.2 (232708)


  • Operating System – simdk / password (the root account is not enabled; use sudo)
  • MySQL – root / password
  • SimDK – root / password


  • Tomcat – /var/log/tomcat6
  • SimDK – /var/log/simdk

    • simdk.log – The primary SimDK log file.
    • simdk.reqsp.log – This log file contains all of the request/response XML for SimDK.

Configuration Files

  • Tomcat – /etc/tomcat6

    • server.xml – This is the file where you can configure the ports that SimDK uses and whether or not to use SSL.
  • SimDK – /etc/simdk

    • security.config – The Java Authentication and Authorization Service (JAAS) configuration file. This file instructs the web service which login module to use to authenticate and authorize requests.
    • vimService.wsdl – The file returned by requests for /sdk/vimService.wsdl.
    • vim.wsdl – The file returned by requests for /sdk/vim.wsdl.
    • ws.properties – The SimDK web service’s properties file. This file is primarily used to configure logging.

Connecting to the SimDK Virtual Appliance

Here are some examples of connecting to the SimDK Virtual Appliance with the vSphere Perl Toolki, vSphere PowerCLI, and directly with MySQL.

vSphere Perl Toolkit

[0]akutz@legacy:general$ ./viversion.pl --server --protocol http --username root --password password

This is  VirtualCenter 4.0

This is VMware vCenter Server 4.0.0 build-162856 running on x86-based Windows systems 
The product Line ID is a unique identifier for a product line. This is VMware VirtualCenter product.

Short form of the product name is VMware vCenter Server having version 4.0.0

System is running on x86-based Windows systems

vSphere PowerCLI

[vSphere PowerCLI] C:\> Connect-VIServer -Server -Protocol http -User root -Password password

Name                       Port                       User
----                       ----                       ----             80                         root

[vSphere PowerCLI] C:\> Get-Cluster

Name                    HAEnabled  HAFailover Level  DrsEnabled  DrsAutomationLevel
----                    ---------  ----------------  ----------  ---------------
North HA Cluster ESX40  False      1                 False       FullyAutomated
North HA Cluster ESX35  False      1                 True        FullyAutomated


The MySQL server has been configured to allow remote connections, so be aware of that if you put the virtual appliance on a public network. For example, this command can be used to list all of the Managed Entities from a remote system against the SimDK server’s MySQL instance:

[0]akutz@legacy:~$ echo "SELECT * FROM ManagedEntity;" | mysql -u root -p -h -D db_simdk

After being prompted for the password (which is password), the following output would be displayed:

C3f385cf1774464b1314fdcc15bcf8a00	Cce94f240e29b3767c256b3a077730dcd	C450667569b771ca5ab11b6895b4a8ab0	Cedcb058f569e75dd4f08b8fd59ee7b36	jpaId	JC16e7f385b0e85ad376aa7b72cd6a0150
	0	Datacenters	0	group-d1	NULL
	0	datastore	0	group-s84	datacenter-2
	0	minnesota:storage1	3	datastore-121	group-s84
	0	vm	0	group-v3	datacenter-2
	0	network	0	group-n86	datacenter-2
	0	network-upgrade	0	group-n87	group-n86
	1	VM Network	1	network-25	group-n87
	0	datastore-upgrade	0	group-s85	group-s84
	0	maine:storage1	1	datastore-46	group-s85
	1	Resources	1	resgroup-7	domain-c5
	1	NorthHA_vApp	1	resgroup-v916	resgroup-7
	1	Bangor	1	vm-289	NULL
	1	Bethel	1	vm-58	NULL
	1	Maxfield	1	vm-52	group-v26
	1	Dexter	1	vm-54	group-v26
	1	Frenchville	1	vm-56	group-v26
	1	Kittery	1	vm-60	group-v26
	1	Franklin	1	vm-80	group-v3
	1	RP1	1	resgroup-281	resgroup-7
	1	RP2	1	resgroup-284	resgroup-281
	1	Kennebunkport	1	vm-50	group-v26
	1	Augusta	1	vm-48	group-v26
	1	North HA Cluster ESX35	1	domain-c5	group-h4
	1	maine.hyper9.com	1	host-43	domain-c5
	0	Chigger	2	datastore-128	group-s84
	0	Spider	1	datastore-130	group-s84
	0	Wasp	2	datastore-132	group-s84
	1	Resources	1	resgroup-117	domain-c115
	0	north-dakota:storage1	2	datastore-126	group-s84
	1	Fargo	1	vm-163	group-v26
	1	Bismarck	1	vm-167	group-v26
	1	Harvey	1	vm-169	group-v26
	1	Minot	1	vm-173	group-v26
	1	Park River	1	vm-177	group-v26
	1	Ambrose	1	vm-188	group-v26
	1	LinkedClone_of_Bismarck	1	vm-912	group-v26
	1	Cavalier	2	vm-175	group-v26
	1	St-Cloud	1	vm-138	group-v26
	1	St-Paul	1	vm-141	group-v26
	1	Minneapolis	1	vm-144	group-v26
	1	Maple Grove	1	vm-149	group-v26
	1	Blaine	1	vm-165	group-v26
	1	Lakota	1	vm-179	group-v26
	1	Killdeer	1	vm-181	group-v26
	0	Another folder	0	group-v280	group-v3
	1	Dazey	1	vm-183	group-v280
	1	thinprov-nd	1	vm-274	group-v26
	1	LinkedClone_of_Blaine	1	vm-909	group-v26
	1	Duluth	1	vm-152	group-v26
	1	Eagan	1	vm-161	group-v26
	1	10,000 Lakes	1	vm-185	group-v26
	1	north-dakota.hyper9.com	2	host-123	domain-c115
	1	Minnetonka	3	vm-146	group-v26
	0	Discovered Virtual Machine	0	group-v26	group-v3
	1	Alvarado	1	vm-135	group-v26
	0	North	0	datacenter-2	group-d1
	0	host	0	group-h4	datacenter-2
	0	New-Folder	0	group-h278	group-h4
	0	VM Folder 2	0	group-h279	group-h4
	1	North HA Cluster ESX40	1	domain-c115	group-h4
	1	minnesota.hyper9.com	2	host-118	domain-c115


The following files are available for immediate consumption!

  • simdk.vmx 2.39 KB (md5: 9b4ba880a52b6f61cd302e856db24a12) – The virtual machine configuration file.
  • simdk.vmxf 260 B (md5: 63ca2be042a2a38f92ba4ddba82d2a3a) – The extended configuration file.
  • simdk.vmdk 1649 MB (md5: d637013ccac19f2d8f0901a6a44b374c) – The virtual hard disk file.

Please let me know if you have any questions / problems.

Additional Information

As an added bonus, here is the database dump file used to populate the virtual appliance’s SimDK database with information.

  • db_simdk.sql 9.5 MB (md5: c53655992962bc87662a3b997f9302e6) – A SimDK MySQL5 database dump file.

You can import this dump file into any MySQL5 server with these steps:

  • Create a database named db_simdk
    echo "CREATE DATABASE db_simdk;" | mysql -u USER -p
  • Import the dump file with the following command:
    mysql -u USER -p db_simdk < db_simdk.sql

Oh, and if you want to dump your own SimDK database from MySQL, use the following command (the –single-transaction is important):

mysqldump -u root -p --single-transaction db_simdk > db_simdk.sql

32 thoughts on “A SimDK Virtual Appliance

  1. I do know what’s going on (mostly), and it’s doable. It’s just not done yet. If you’re a developer and want to help, please let me know :)

  2. Hi Andrew – Great Idea but I cannot connect the VI-Client to it at all. I can ping the VM. I followed your notes about using port 80. But still no joy. Also I think there is an easiler way which is to point the VI client to > servername/ip:80

    Any thoughts.

  3. Andrew, i tested some cmdlet. get-vmhost and get-view is not working, is it “by design” or under dev. ?
    BTW, is it possible to create new VM, new clusters and new host ?

  4. I don’t think these are working. You can always check the server logs to see what error/warning is being thrown and post the logs on the SimDK SourceForge site. This is definitely a work in progress. Creation of items is not supported yet, but will be in the next snapshot. I’m working on improving the build process right now.

  5. Great work so far, looking forward to the future features!

    If you figure out a way to get those extra hours in the day, let me know ;)


  6. Great Work!
    This Appliance works like a charm. Keep up this good work and i’m looking forward for the first XenServer Proxy Appliance :)


  7. Hi There!

    I managed to get the appliance running under VMware Workstation. When I try to connect however, I get the following error:

    > Connect-VIServer -Server -Protocol http -User root -Password ********
    Connect-VIServer : Namespace prefix ‘S’ not defined

    I’m using: VMware vSphere PowerCLI 4.0 U1 build 208462

    Any clues ? thanks.

  8. Oops!

    Nevermind, I found the problem. I had changed the root password of the appliance. Setting it backup to “password” solved the issue.

      • Hi,

        this “Name space” problem happens when there is some exception thrown. Just try to run the SimDK properly, meaning see the mysql running status / tomcat running status etc., If everything works ok, just restart the SimDK machine once and run your powerCLI script again. I think, the ServiceInstances are cached, in my lab this problem occurs when SimDK runs for more than a day, have to restart to make it work.


  9. I have a Java Client which I am trying to connect to SIMDK and I get below error. Help would be appreciated a lot.

    WARNING: Axisfault-javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake


  10. Hi akutz!!!

    Thanx for your nice simdk simulator and emulator Virtual Appliance. I downloaded and configured in my EXS 4.0 host. Now itz running as one of the VM in a Datacenter.
    I am able to login to Ubuntu OS and query for mysql database.

    Could you let me know how to get connect to that vm running simdk from vSphere Client or vSphere Power CLI.

    Thanx in advance

      • Thanx for your prompt response.
        As per suggestion, I tried connecting through Power CLI, but unfortunately got an Connection Exception.

        [vSphere PowerCLI] C:\> connect-viserver -server -Protocol http – User root -Password password
        Connect-VIServer : Network connectivity error occured. Please verify that the network address and port are correct.
        At line:1 char:17
        + connect-viserver <<<< -server -Protocol http -User root -Password password
        + CategoryInfo : ObjectNotFound: (:) [Connect-VIServer], ViServer
        + FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_BadNe

        Could please help in resolving this issue


      • I’m not sure. I am not actively developing SimDK at the moment. It was more of “can I do it” type of project. There was never critical mass behind it, so I had to move on to other things.

  11. Thanks a lot for providing this. It’s very helpful. I have a question, however. The SimDK/VM seems to be emulating a virtual center. How hard would it be to make it look like an ESX host, that is managable by a real vCenter?

  12. Hi,

    I’m trying to install simdk and use it as an emulator/simulator but I’m getting the following issue:

    PS C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Connect-VIServer -Se
    rver localhost -User root -Password password -Protocol http -Port 8080
    Connect-VIServer : 10/18/2010 3:22:51 PM Connect-VIServer Could not c
    onnect using the requested protocol.
    At line:1 char:17
    + Connect-VIServer <<<< -Server localhost -User root -Password password -Prot
    ocol http -Port 8080

    I have verified that the database db_simdk on MySQL and it was even able to import data from an existing vcenter server.

    I've also verified that tomcat does deploy the simdk-ws-0.0.1 war file. I'm not able to connect to the server either using power cli or a sample program that i have to connect to my real vcenter. Any help in this regard will be really great since i've basically hit a wall.


  13. Hi ,

    We are not able to download appliance files (simdk.vmx ,simdk.vmxf,simdk.vmdk) from given link. we tried it couple of times but its not totally copied . so is there any other mirror link ??? from where we can download.

    We also tried with binary package. and followed the all instruction given on http://simdk.sourceforge.net/installing.html , we observe the log and we find that all WS is up and running .. but when we try to connect it through power-cli we cant able to connect it ..

    We got following connection Exception.. ====>

    [vSphere PowerCLI] C:\> Connect-VIServer -Server psms413 -Protocol http -User ro
    ot -Password ####### -port 8080
    Connect-VIServer : 2/18/2011 6:57:36 PM Connect-VIServer Could not co
    nnect using the requested protocol.
    At line:1 char:17
    + Connect-VIServer <<<< -Server psms413 -Protocol http -User root -Password bm
    cAdm1n -port 8080
    + CategoryInfo : ObjectNotFound: (:) [Connect-VIServer], ViServer
    + FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_Proto


  14. Hey Sameer,
    I am precisely stuck at the same point. How did you go further? Any luck in setting it up?

    Thanks in advance

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s