GithubHelp home page GithubHelp logo

mdub / inception-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloudfoundry-community-attic/inception-server

0.0 3.0 0.0 339 KB

Create an Inception VM. A server in the clouds. Just for you.

License: MIT License

Ruby 99.87% Shell 0.13%

inception-server's Introduction

Inception Server for Bosh development

Create an inception server for Bosh-related development.

Includes a CLI for creating and preparing an inception server for deploying/developing a Bosh universe. The created or targeted VM is upgraded into an inception server via a Chef cookbook.

Build Status Code Climate

Installation

The tool is distributed as a RubyGem.

$ gem install inception-server

Usage

This project includes both a standalone CLI to create an inception server or transform an existing VM into an inception server; and the internal Chef cookbooks that can be used outside of the CLI.

CLI usage - create a remote inception server

To create a remote inception server, normally in the IaaS/region that you will be working with BOSH:

$ inception deploy

Auto-detected infrastructure API credentials at ~/.fog (override with $FOG)
1. AWS (default)
2. AWS (starkandwayne)
3. Alternate credentials
Choose infrastructure:  3

1. AWS
2. OpenStack
Choose infrastructure:  1


Using provider aws:

1. *US East (Northern Virginia) Region (us-east-1)
2. US West (Oregon) Region (us-west-2)
3. US West (Northern California) Region (us-west-1)
4. EU (Ireland) Region (eu-west-1)
5. Asia Pacific (Singapore) Region (ap-southeast-1)
6. Asia Pacific (Sydney) Region (ap-southeast-2)
7. Asia Pacific (Tokyo) Region (ap-northeast-1)
8. South America (Sao Paulo) Region (sa-east-1)
Choose AWS region: 2

Access key: KEYGOESHERE
Secret key: SECRETGOESHERE

Confirming: Using aws/us-west-2

Preparing deployment settings

Using your git user.name (Dr Nic Williams)
Acquiring a public IP address... 54.245.246.122

Provision inception server

Created security group ssh
 -> opened ssh ports TCP 22..22 from IP range 0.0.0.0/0
Booting m1.small Inception VM...
Provisioning 16Gb persistent disk for inception VM...

Prepare inception VM

knife solo bootstrap [email protected] [...]
Bootstrapping Chef...
... lots of chef output...

CLI usage - upgrade existing remote inception server

You can upgrade your remote inception server at any time by re-running the deploy command.

$ inception deploy
... lots of chef output ...

Chef cookbook usage - remote VM

This project includes a bosh_inception Chef cookbook.

You can apply the cookbook to a preexisting remote VM using knife solo:

$ bundle
$ bundle exec knife solo bootstrap ubuntu@HOST -r 'bosh_inception'
$ bundle exec knife solo bootstrap ubuntu@HOST -j '{"disk": {"mounted": true, "device": "/dev/xvdf"}}' -r 'bosh_inception'

# for more help information:
$ knife solo bootstrap -h

See cookbooks/bosh_inception/attributes/default.rb for available JSON overrides.

Chef cookbook usage - local VM

You can also apply the cookbooks to the local VM (or a remote VM that you've shelled into) using your favourite Chef toolchain.

See cookbooks/bosh_inception/attributes/default.rb for available JSON overrides.

Development

One half of the functionality is in a Chef cookbook bosh_inception. To load this cookbook into a Vagrant VM and run a series of integration tests (via test-kitchen):

$ bundle
$ kitchen test virtualbox
$ kitchen test vmware # if you have vagrant vmware plugin

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

inception-server's People

Contributors

drnic avatar mdub avatar

Watchers

 avatar 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.