Giter Site home page Giter Site logo

delu2011 / vcloud-launcher Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gds-operations/vcloud-launcher

0.0 2.0 0.0 794 KB

vCloud Launcher is a CLI tool and Ruby library that supports automated provisioning of VMware vCloud Director virtual machines

Home Page: http://gds-operations.github.io/vcloud-tools/

License: MIT License

Ruby 95.34% Shell 2.05% HTML 2.61%

vcloud-launcher's Introduction

vCloud Launcher

A tool that takes a YAML or JSON configuration file describing a vDC, and provisions the vApps and VMs contained within.

Supports

  • Configuration of multiple vApps/VMs with:
    • multiple NICs
    • custom CPU and memory size
    • multiple additional disks
    • custom VM metadata
  • Basic idempotent operation - vApps that already exist are skipped.

Limitations

  • Source vApp Template must contain a single VM. This is VMware's recommended 'simple' method of vApp creation. Complex multi-VM vApps are not supported.
  • Org vDC Networks must be precreated.
  • IP addresses are assigned manually (recommended) or via DHCP. VM IP pools are not supported.
  • vCloud has some interesting ideas about the size of potential 'guest customisation scripts' (aka preambles). You may need to use an external minify tool to reduce the size, or speak to your provider to up the limit. 2048 bytes seems to be a practical default maximum.

Installation

Add this line to your application's Gemfile:

gem 'vcloud-launcher'

And then execute:

$ bundle

Or install it yourself as:

$ gem install vcloud-launcher

Usage

vcloud-launch node.yaml

Configuration schemas

Configuration schemas can be found in lib/vcloud/launcher/schema/.

Credentials

Please see the vcloud-tools usage documentation.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Other settings

vCloud Launcher uses vCloud Core. If you want to use the latest version of vCloud Core, or a local version, you can export some variables. See the Gemfile for details.

The vCloud API

vCloud Tools currently use version 5.1 of the vCloud API. Version 5.5 may work but is not currently supported. You should be able to access the 5.1 API in a 5.5 environment, and this is currently supported.

The default version is defined in Fog.

If you want to be sure you are pinning to 5.1, or use 5.5, you can set the API version to use in your fog file, e.g.

vcloud_director_api_version: 5.1

Debugging

export EXCON_DEBUG=true - this will print out the API requests and responses.

export DEBUG=true - this will show you the stack trace when there is an exception instead of just the message.

Testing

Run the default suite of tests (e.g. lint, unit, features):

bundle exec rake

Run the integration tests (slower and requires a real environment):

bundle exec rake integration

Run the integration tests minus some that are very slow:

bundle exec rake integration:quick

You need access to a suitable vCloud Director organization to run the integration tests. See the integration tests README for further details.

vcloud-launcher's People

Contributors

mikepea avatar annashipman avatar mattbostock avatar dcarley avatar bazbremner avatar ajlanghorn avatar geribatai avatar samjsharpe avatar nosborn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.