Although Vangaea is stable and usable today, there are currently no efforts to build a graphical installer or administrative user interface. The reasons behind this are two-fold.

  1. I am concentrating on adding functionality to the core purpose of Vangaea instead of nice-to-have areas such as installers or UI components.
  2. I expect that people interested in Vangaea at this point to have the type of skills necessary to work with Vangaea as it currently exists.

All this said, if someone wishes to create an installer or assist with the administrative UI, I will be more than happy to accept such help.

Running Vangaea

1. Check out the latest copy of Vangaea from the trunk.

    svn co https://vangaea.svn.sourceforge.net/svnroot/vangaea/trunk vangaea

2. Initialize a MySQL database for Vangaea using the included init.sql script. This script will also create a default user in the Vangaea database named 'admin', a password of 'password', and decryption key of 'decrypt'. The admin has a user ID of '0'.

You should replace the USER and HOST variables in the following with the name of a MySQL user that has the rights to create a database on the MySQL server specified by the HOST variable.

    mysql -u USER -p -h HOST < main/config/sql/mysql5/init.sql

3. Now you should add site-specific information to your copy of the Vangaea database, such as users, servers, and linked credentials. Here is the SQL I use in order to add my own user, some test hypervisors, and my credentials on those hypervisors.

USE db_vangaea;

-- Add my user to the Vangaea database with a password of 'password' 
-- and my decryption key set to 'decrypt'.
INSERT INTO tbl_users (userName, passphrase, keyHash)
VALUES ('akutz', 
        CONCAT('MD5:', MD5('password')), 
        MD5('decrypt'));

-- Make my user an admin.
INSERT INTO tbl_users_roles (userID, roleID)
VALUES (1, 2);

-- Add a VI3 VirtualCenter server.
INSERT INTO tbl_servers (address, 
                         port, 
                         useSsl, 
                         ignoreSslErrors, 
                         alias, 
                         connectorID)
VALUES ('172.16.29.3', 443, TRUE, TRUE, 'south-vc', 1);

-- Add a vSphere4 vCenter server.
INSERT INTO tbl_servers (address, 
                         port, 
                         useSsl, 
                         ignoreSslErrors, 
                         alias, 
                         connectorID)
VALUES ('172.16.103.51', 443, TRUE, TRUE, 'north-vc', 1);

-- Add a Microsoft Hyper-V server.
INSERT INTO tbl_servers (address, alias, connectorID)
VALUES ('172.16.100.78', 'hyperv', 2);

-- Add a Citrix XenServer.
INSERT INTO tbl_servers (address, alias, connectorID)
VALUES ('172.16.100.240', 'xen5', 3);

-- Link my Vangaea credentials to my account on south-vc. The user 
-- name and password for my hypervisor credentials are encrypted 
-- using the above key. In this way even if the database was hacked 
-- there is no useful trace of my hypervisor credentials. Additionally,
-- each credential set uses a unique salt meaning that there is no way
-- to identify identical user names and/or passphrases.
INSERT INTO tbl_linked_credentials (userID, serverID, userName, passphrase, salt)
VALUES (1,
        1,
        '0b4922f11234e412443f3286df969963',
        'bd822c2caaf69653ff6322f935790f06',
        '0615fe03dc748f5473276feebc5c3c33');

INSERT INTO tbl_linked_credentials (userID, serverID, userName, passphrase, salt)
VALUES (1,
        2,
        'bed228345a08315c255f2ce4445cffad',
        '8b97ac18822c0867e01d5fffab1d48eb',
        '1c7f419ec285b34f84c436604c1336fa');

INSERT INTO tbl_linked_credentials (userID, serverID, userName, passphrase, salt)
VALUES (1,
        3,
        'fecad61fd1019479ff165c063610a774',
        '81e26861721bfeb4c93d30b197808ae8',
        'de9ef9719692ec2f9555b37a6371de25');

INSERT INTO tbl_linked_credentials (userID, serverID, userName, passphrase, salt)
VALUES (1,
        4,
        '59dcb2d1c6e764da4c0d704b282b4085',
        '66b098acdf8f9494eb73ec3054309fdd',
        'b4a8cd8c918f83cf02eebfef4d1eadd1');

4. Edit the files 'main/config/jetty-env.xml' and 'main/config/realm.properties' and update the JDBC information to correspond with the server you are hosting the Vangaea database on and the appropriate login information.

5. Edit the file 'main/config/vangaea.properties' and update the property 'log4j.appender.vangaealog.File' to point to the path for your Vangaea log file. Since I run OS X I always point it to '/tmp/vangaea.log'.

6. Start Vangaea on port 8080.

    mvn jetty:run

7. Open a browser and point it to http://localhost:8080/

8. Enter your decryption key (NOT your password) into the text box and click on the 'Set Key and Log In' button (this creates the cookie 'com.hyper9.vangaea.key' with the decryption key).

9. You should be logged in and viewing the root of the Vangaea interface. For information on how to build queries please see the document on RESTful design.