inception 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/.chef/knife.rb +4 -0
  2. data/.gitignore +20 -0
  3. data/.kitchen.yml +42 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +23 -0
  6. data/Berksfile +8 -0
  7. data/Berksfile.lock +9 -0
  8. data/Gemfile +18 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +139 -0
  11. data/Rakefile +66 -0
  12. data/TODO.md +26 -0
  13. data/bin/bosh-inception +8 -0
  14. data/config/ssh/kitchen-aws +23 -0
  15. data/cookbooks/bosh_inception/README.md +15 -0
  16. data/cookbooks/bosh_inception/attributes/default.rb +20 -0
  17. data/cookbooks/bosh_inception/files/default/Gemfile.cf +4 -0
  18. data/cookbooks/bosh_inception/files/default/Gemfile.micro +5 -0
  19. data/cookbooks/bosh_inception/metadata.rb +32 -0
  20. data/cookbooks/bosh_inception/recipes/default.rb +15 -0
  21. data/cookbooks/bosh_inception/recipes/install_bosh.rb +37 -0
  22. data/cookbooks/bosh_inception/recipes/install_ruby.rb +10 -0
  23. data/cookbooks/bosh_inception/recipes/mount_store_volume.rb +24 -0
  24. data/cookbooks/bosh_inception/recipes/packages.rb +23 -0
  25. data/cookbooks/bosh_inception/recipes/setup_git.rb +34 -0
  26. data/cookbooks/bosh_inception/recipes/useful_dirs.rb +13 -0
  27. data/inception.gemspec +42 -0
  28. data/lib/bosh/providers.rb +41 -0
  29. data/lib/bosh/providers/README.md +5 -0
  30. data/lib/bosh/providers/cli/aws_provider_cli.rb +58 -0
  31. data/lib/bosh/providers/cli/openstack_provider_cli.rb +47 -0
  32. data/lib/bosh/providers/cli/provider_cli.rb +17 -0
  33. data/lib/bosh/providers/clients/aws_provider_client.rb +168 -0
  34. data/lib/bosh/providers/clients/fog_provider_client.rb +161 -0
  35. data/lib/bosh/providers/clients/openstack_provider_client.rb +65 -0
  36. data/lib/bosh/providers/constants/aws_constants.rb +25 -0
  37. data/lib/bosh/providers/constants/openstack_constants.rb +12 -0
  38. data/lib/inception.rb +9 -0
  39. data/lib/inception/cli.rb +136 -0
  40. data/lib/inception/cli_helpers/display.rb +26 -0
  41. data/lib/inception/cli_helpers/infrastructure.rb +157 -0
  42. data/lib/inception/cli_helpers/interactions.rb +15 -0
  43. data/lib/inception/cli_helpers/prepare_deploy_settings.rb +89 -0
  44. data/lib/inception/cli_helpers/provider.rb +14 -0
  45. data/lib/inception/cli_helpers/settings.rb +47 -0
  46. data/lib/inception/inception_server.rb +305 -0
  47. data/lib/inception/inception_server_cookbook.rb +89 -0
  48. data/lib/inception/next_deploy_actions.rb +20 -0
  49. data/lib/inception/version.rb +3 -0
  50. data/nodes/.gitkeep +0 -0
  51. data/spec/assets/.gitkeep +0 -0
  52. data/spec/assets/gitconfig +5 -0
  53. data/spec/assets/settings/aws-before-server.yml +14 -0
  54. data/spec/assets/settings/aws-created-server.yml +31 -0
  55. data/spec/integration/.gitkeep +0 -0
  56. data/spec/integration/aws/aws_basic_spec.rb +39 -0
  57. data/spec/spec_helper.rb +50 -0
  58. data/spec/support/aws/aws_helpers.rb +73 -0
  59. data/spec/support/settings_helper.rb +20 -0
  60. data/spec/support/stdout_capture.rb +17 -0
  61. data/spec/unit/.gitkeep +0 -0
  62. data/spec/unit/bosh/providers/aws_spec.rb +199 -0
  63. data/spec/unit/cli_delete_spec.rb +39 -0
  64. data/spec/unit/cli_deploy_aws_spec.rb +84 -0
  65. data/spec/unit/cli_ssh_spec.rb +82 -0
  66. data/spec/unit/inception_server_cookbook_spec.rb +61 -0
  67. data/spec/unit/inception_server_spec.rb +58 -0
  68. data/test/integration/default/bats/discover_user.bash +2 -0
  69. data/test/integration/default/bats/install_ruby.bats +8 -0
  70. data/test/integration/default/bats/useful_dirs.bats +8 -0
  71. data/test/integration/default/bats/user.bats +9 -0
  72. data/test/integration/default/bats/verify_bosh.bats +13 -0
  73. data/test/integration/default/bats/verify_git.bats +18 -0
  74. metadata +342 -0
@@ -0,0 +1,4 @@
1
+ cookbook_path ["cookbooks"]
2
+ role_path nil
3
+ data_bag_path nil
4
+ #encrypted_data_bag_secret "data_bag_key"
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .kitchen/
19
+ .kitchen.local.yml
20
+ nodes/*.json
@@ -0,0 +1,42 @@
1
+ ---
2
+ driver_plugin: <%= ENV['AWS_ACCESS_KEY_ID'] ? "ec2" : "vagrant" %>
3
+
4
+ platforms:
5
+ <% if ENV['AWS_ACCESS_KEY_ID'] %>
6
+ - name: precise64_ec2
7
+ driver_plugin: ec2
8
+ driver_config:
9
+ aws_access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
10
+ aws_secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
11
+ # Default keypair is in Stark & Wayne AWS account for kitchen CI testing
12
+ aws_ssh_key_id: <%= ENV['AWS_SSH_KEY_NAME'] || 'kitchen' %> # name of the AWS keypair to use
13
+ ssh_key: <%= ENV['AWS_SSH_KEY_PATH'] || File.expand_path("../config/ssh/kitchen-aws", __FILE__) %> # private key such as ~/.ssh/id_rsa that matches the AWS keypair
14
+ region: us-east-1
15
+ availability_zone: us-east-1b
16
+ flavor_id: m1.medium
17
+ image_id: ami-856f02ec # us-east-1 12.04 amd64
18
+ username: ubuntu
19
+ groups:
20
+ - default
21
+ - ssh
22
+ require_chef_omnibus: true
23
+ <% else %>
24
+ - name: precise64_virtualbox
25
+ driver_config:
26
+ provider: virtualbox
27
+ box: precise64
28
+ box_url: http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box
29
+ require_chef_omnibus: true
30
+ - name: precise64_vmware_fusion
31
+ driver_config:
32
+ provider: vmware_fusion
33
+ box: precise64
34
+ box_url: https://s3.amazonaws.com/gsc-vagrant-boxes/ubuntu-12.04.2-server-amd64.box
35
+ require_chef_omnibus: true
36
+ <% end %>
37
+
38
+ suites:
39
+ - name: default
40
+ run_list:
41
+ - recipe[bosh_inception]
42
+ attributes: {}
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format progress
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,23 @@
1
+ language: ruby
2
+ script: bundle exec rake spec:$SUITE
3
+ bundler_args: "--without=vagrant"
4
+ rvm:
5
+ - ruby-1.9.3
6
+ # - rbx-19mode
7
+ # - ruby-2.0.0 - generates "Cannot find Syck parser for YAML"
8
+ notifications:
9
+ email:
10
+ recipients:
11
+ - drnicwilliams@gmail.com
12
+ on_success: change
13
+ on_failure: always
14
+ env:
15
+ matrix:
16
+ - SUITE=unit
17
+ # - SUITE=cookbooks
18
+ - SUITE=integration:aws:basic
19
+ global:
20
+ - secure: "XRBq8CKIbRvwBTpyecFFtQFXgD0dhH4+p7knMQn/o4xnv79/feEPRccQycmk\nsFuWeVxTOW06p+PseQMQuU2UgjIDM6RE7jE5iM5kJh6hS/zFHAzlXWQAvEGz\nimnmzEMza60RXgihvT4WWVy5KJZtailUd2ywV9j5BxYHExKeABo="
21
+ # matrix:
22
+ # allow_failures:
23
+ # - env: SUITE=integration:aws:basic
@@ -0,0 +1,8 @@
1
+ site :opscode
2
+
3
+ cookbook "apt"
4
+ cookbook "user"
5
+ cookbook "sudo"
6
+ cookbook "hub"
7
+ cookbook "rvm", github: "fnichol/chef-rvm"
8
+ cookbook "bosh_inception", path: "cookbooks/bosh_inception"
@@ -0,0 +1,9 @@
1
+ cookbook 'bosh_inception', :path => '/Users/drnic/Projects/ruby/gems/inception/cookbooks/bosh_inception'
2
+ cookbook 'apt', :locked_version => '1.9.2'
3
+ cookbook 'user', :locked_version => '0.3.0'
4
+ cookbook 'sudo', :locked_version => '2.1.0'
5
+ cookbook 'rvm', :git => 'git://github.com/fnichol/chef-rvm.git', :ref => '7038fb8c518d0d7785767de215b1ae463f237973'
6
+ cookbook 'java', :locked_version => '1.10.2'
7
+ cookbook 'windows', :locked_version => '1.8.10'
8
+ cookbook 'chef_handler', :locked_version => '1.1.4'
9
+ cookbook 'chef_gem', :locked_version => '0.1.0'
data/Gemfile ADDED
@@ -0,0 +1,18 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in inception.gemspec
4
+ gemspec
5
+
6
+ gem "settingslogic", github: "drnic/settingslogic", branch: "integration"
7
+
8
+ # gem 'knife-solo', github: 'matschaffer/knife-solo'
9
+ gem 'knife-solo', github: 'drnic/knife-solo', branch: 'continue_connecting'
10
+
11
+ group :integration do
12
+ # gem 'test-kitchen', github: 'opscode/test-kitchen', branch: '1.0'
13
+ gem 'kitchen-ec2'
14
+ end
15
+
16
+ group :vagrant do
17
+ gem 'kitchen-vagrant', '~> 0.10.0'
18
+ end
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Dr Nic Williams, Stark & Wayne, LLC
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,139 @@
1
+ # Bosh Inception
2
+
3
+ Create an inception server for Bosh.
4
+
5
+ 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.
6
+
7
+ [![Build Status](https://travis-ci.org/drnic/inception.png?branch=master)](https://travis-ci.org/drnic/inception)
8
+ [![Code Climate](https://codeclimate.com/github/drnic/inception.png)](https://codeclimate.com/github/drnic/inception)
9
+
10
+ ## Installation
11
+
12
+ Currently, install and use the tool via this Git repo (due to its dependency on other unreleased RubyGems).
13
+
14
+ ```
15
+ git clone https://github.com/drnic/inception.git
16
+ cd inception
17
+ bundle
18
+ bundle exec bin/inception deploy
19
+ ```
20
+
21
+ Waiting on the following projects to ship a new gem:
22
+
23
+ * https://github.com/matschaffer/knife-solo/issues/243
24
+
25
+ In future, this tool will be distributed as a RubyGem. It requires Ruby 1.9+.
26
+
27
+ ```
28
+ gem install inception
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ 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.
34
+
35
+ ### CLI usage - create a remote inception server
36
+
37
+ To create a remote inception server, normally in the IaaS/region that you will be working with BOSH:
38
+
39
+ ```
40
+ $ inception deploy
41
+
42
+ Found infrastructure API credentials at ~/.fog (override with $FOG)
43
+ 1. AWS (default)
44
+ 2. AWS (starkandwayne)
45
+ 3. Alternate credentials
46
+ Choose infrastructure: 3
47
+
48
+ 1. AWS
49
+ 2. OpenStack
50
+ Choose infrastructure: 1
51
+
52
+
53
+ Using provider aws:
54
+
55
+ 1. *US East (Northern Virginia) Region (us-east-1)
56
+ 2. US West (Oregon) Region (us-west-2)
57
+ 3. US West (Northern California) Region (us-west-1)
58
+ 4. EU (Ireland) Region (eu-west-1)
59
+ 5. Asia Pacific (Singapore) Region (ap-southeast-1)
60
+ 6. Asia Pacific (Sydney) Region (ap-southeast-2)
61
+ 7. Asia Pacific (Tokyo) Region (ap-northeast-1)
62
+ 8. South America (Sao Paulo) Region (sa-east-1)
63
+ Choose AWS region: 2
64
+
65
+ Access key: KEYGOESHERE
66
+ Secret key: SECRETGOESHERE
67
+
68
+ Confirming: Using aws/us-west-2
69
+
70
+ Preparing deployment settings
71
+
72
+ Using your git user.name (Dr Nic Williams)
73
+ Acquiring a public IP address... 54.245.246.122
74
+
75
+ Provision inception server
76
+
77
+ Created security group ssh
78
+ -> opened ssh ports TCP 22..22 from IP range 0.0.0.0/0
79
+ Booting m1.small Inception VM...
80
+ Provisioning 16Gb persistent disk for inception VM...
81
+
82
+ Prepare inception VM
83
+
84
+ knife solo bootstrap ubuntu@ec2-54-214-66-166.us-west-2.compute.amazonaws.com [...]
85
+ Bootstrapping Chef...
86
+ ... lots of chef output...
87
+
88
+ ```
89
+
90
+ ### CLI usage - upgrade existing remote inception server
91
+
92
+ You can upgrade your remote inception server at any time by re-running the `deploy` command.
93
+
94
+ ```
95
+ $ inception deploy
96
+ ... lots of chef output ...
97
+ ```
98
+
99
+
100
+ ### Chef cookbook usage - remote VM
101
+
102
+ This project includes a `bosh_inception` Chef cookbook.
103
+
104
+ You can apply the cookbook to a preexisting remote VM using [knife solo](http://matschaffer.github.io/knife-solo/ "knife-solo"):
105
+
106
+ ```
107
+ $ bundle
108
+ $ bundle exec knife solo bootstrap ubuntu@HOST -r 'bosh_inception'
109
+ $ bundle exec knife solo bootstrap ubuntu@HOST -j '{"disk": {"mounted": true, "device": "/dev/xvdf"}}' -r 'bosh_inception'
110
+
111
+ # for more help information:
112
+ $ knife solo bootstrap -h
113
+ ```
114
+
115
+ See `cookbooks/bosh_inception/attributes/default.rb` for available JSON overrides.
116
+
117
+ ### Chef cookbook usage - local VM
118
+
119
+ You can also apply the cookbooks to the local VM (or a remote VM that you've shelled into) using your favourite Chef toolchain.
120
+
121
+ See `cookbooks/bosh_inception/attributes/default.rb` for available JSON overrides.
122
+
123
+ ## Development
124
+
125
+ 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`):
126
+
127
+ ```
128
+ $ bundle
129
+ $ kitchen test virtualbox
130
+ $ kitchen test vmware # if you have vagrant vmware plugin
131
+ ```
132
+
133
+ ## Contributing
134
+
135
+ 1. Fork it
136
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
137
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
138
+ 4. Push to the branch (`git push origin my-new-feature`)
139
+ 5. Create new Pull Request
@@ -0,0 +1,66 @@
1
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __FILE__)
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+ Bundler.setup(:default, :test, :development, :integration)
6
+
7
+ require "bundler/gem_tasks"
8
+
9
+ require "rake/dsl_definition"
10
+ require "rake"
11
+ require "rspec/core/rake_task"
12
+
13
+
14
+ begin
15
+ require 'kitchen/rake_tasks'
16
+ Kitchen::RakeTasks.new
17
+ rescue LoadError
18
+ puts ">>>>> Kitchen gem not loaded, omitting tasks" unless ENV['CI']
19
+ end
20
+
21
+
22
+ if defined?(RSpec)
23
+ namespace :spec do
24
+ desc "Run Unit Tests"
25
+ unit_rspec_task = RSpec::Core::RakeTask.new(:unit) do |t|
26
+ t.pattern = "spec/unit/**/*_spec.rb"
27
+ t.rspec_opts = %w(--format progress --color)
28
+ end
29
+
30
+ desc "Run cookbook tests (only if $AWS_ACCESS_KEY_ID is set)"
31
+ task :cookbooks do
32
+ if ENV['AWS_ACCESS_KEY_ID']
33
+ sh "kitchen test ec2"
34
+ else
35
+ puts "Skipping spec:cookbooks. Please provide $AWS_ACCESS_KEY_ID & $AWS_SECRET_ACCESS_KEY_ID"
36
+ end
37
+ end
38
+
39
+ namespace :integration do
40
+ namespace :aws do
41
+ jobs = Dir["spec/integration/aws/*_spec.rb"].map {|f| File.basename(f).gsub(/aws_(.*)_spec.rb/, '\1')}
42
+ jobs.each do |job|
43
+ desc "Run AWS '#{job}' Integration Test"
44
+ RSpec::Core::RakeTask.new(job.to_sym) do |t|
45
+ t.pattern = "spec/integration/aws/aws_#{job}_spec.rb"
46
+ t.rspec_opts = %w(--format progress --color)
47
+ end
48
+ end
49
+ end
50
+
51
+ desc "Run AWS Integration Tests"
52
+ RSpec::Core::RakeTask.new(:aws) do |t|
53
+ t.pattern = "spec/integration/aws/*_spec.rb"
54
+ t.rspec_opts = %w(--format progress --color)
55
+ end
56
+ end
57
+
58
+ desc "Run all Integration Tests"
59
+ task :integration => %w[spec:integration:aws]
60
+ end
61
+
62
+ desc "Install dependencies and run tests"
63
+ task :spec => %w(spec:unit spec:integration)
64
+ end
65
+
66
+ task :default => ["spec:unit"]
data/TODO.md ADDED
@@ -0,0 +1,26 @@
1
+ ## CLI
2
+
3
+ * do not install Chef each time; run `knife solo prepare`, then only run `knife solo cook` after that
4
+ * rename to inception => inception
5
+ * --no-converge flag do not run chef on deploy
6
+ * next_deploy_actions - deleted from settings after deploy completes
7
+ * integration test - OpenStack - create VM, use busser (?) to run remote SSH bats tests, destroy VM
8
+ * observe InstanceServer#create stages and run save_settings! after each one (idempotence)
9
+ * observe InstanceServer#create stages and display STDOUT as it goes along
10
+ * interactive delete
11
+
12
+ ## Cookbooks
13
+
14
+ * echo "export TMPDIR=/var/vcap/store/tmp" >> /home/#{node.user.username}/.bashrc
15
+ * echo "export EDITOR=vim" >> /home/#{node.user.username}/.bashrc
16
+ * move bosh-micro & bosh-cf installation into separate cookbooks
17
+ * place ~ubuntu/.fog for the selected provider credentials
18
+ * stuff that will go onto AMI must be installed into root volume, not /var/vcap/store
19
+ * where does btrfs need to be installed? should /var/vcap/store be btrfs instead of ext4?
20
+
21
+
22
+ ## AMIs
23
+
24
+ * export an AMI in us-east-1
25
+ * copy the AMI to other regions
26
+ * use the AMIs instead of 13.04 base AMIs
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ $:.push File.dirname(__FILE__) + '/../lib'
3
+
4
+ require "rubygems"
5
+ require 'inception'
6
+ require 'inception/cli'
7
+
8
+ Inception::Cli.start
@@ -0,0 +1,23 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAuUUa2QOpW4qb5shjxUa+ktUdNVcdsi3h1eqE+jDvH1wgxPGkRQyetiAZ+92/
3
+ aL7975lHX95x1T8f5LeLlH5t3PYpsfU8bXk5FVjCasCzBkCO4+QNPMP1pCAlbuDNKfoI530ShcRv
4
+ Znu5D4SEGGHsZzBKHBlpi3DytyPkIuPxUlnp/IMG0MGywvHENxf2gL6xODBbXDjn7kdn59cluztw
5
+ p2HFm+m06lt/VxJ0GvShMKqTLradneqw3551Vs7d6j9R75ofsl6BA50CLZoYDJhDH96nUOxzrC+m
6
+ zgr/v+Y2eS6oIeuuAytPYc8JEpUSlCXYR6MzIRzDGN5/9aOHJpVb8QIDAQABAoIBAAX8EnryIFVh
7
+ q9mPnZFw0JUjpzbi4oWv77yeP79pN0A3FKPn/ltwpevSK6S0LAuxJ7jGpcSWBe1ShbA4sZyRXPEn
8
+ Tn9+IX6TzOFApb8XDHFmQndgFYFh/xxXIX5sapQxjHoV0zRY/RQ9aOP0buPuvdkzeSFhPMSRWHXM
9
+ BgGOhWwYh0/41cvEIwFzGkIk5JsQWIKqigHPDTQD1SO6gxnVFgP7MtlvZoK7NE4190XvgCK3xFd4
10
+ aSK2diCGgZ4CBx7RIlHtn4H9KR3KCzG5xm+4K0L1RE2peRggo82Fc6TAQ/md+xk+Cq/Xl2UdTAkn
11
+ pCDNF64IwJFHUA0W4y6zmOQh7rECgYEA8F0DgfFFDWhR9YYLBOkeQXOL/faN7oGgb3ccnfz8rWn7
12
+ w5xccNg06AgM3cPBMkoo2lKUfHfvSzq7p+fpEvDJRiVtz1kKp6TsfWeMfePTR7CocKP0vDzqFpWm
13
+ 32WMaEpgHtAvvd/LDEpCI3VT9rXUa9KtvsxzCMjwgZFI9DsR0d0CgYEAxVKSSmSiZwGcGBBSYqnF
14
+ fctJd9Z8Dbte4UaRUK4jsZOXupNLAU3NOO+zDqx7IjT/1y7/WboLQfj5RwW8Lcol+gGQY0KiMkGl
15
+ 4RFkxSYoJMaTx0/Cx87V1hiOjSljB2Ubmbz6dxr/nRitC4fEw0wXkB1bM4LADydOVreyxzFPMyUC
16
+ gYAdCzA0UGIGp7dXkpXcRwrn371nt5YY3sLzFRJ5KKujjK3mSguFeyqRav+bAF9k4z8iel4E2D0q
17
+ +vLX7Bbmuf+oITeumVTHQw9sa8m3IINUI02HJtiYskea6QRb9BpOM8Z/kqpiKBuR5ZsuS6wUoI4F
18
+ ZVSnPG8d/aHKFjMZh9W0ZQKBgQCjNaP40nodlxBEOyPZpbDLVpzi+U5MkWFuFc9WG2M8muaSFQii
19
+ AHcxk9nX1kRWy92dX6snzSFIpSWSYCUA/sYgnrCN2WyNAw2wNpHSG7hyiqlq3wct+1+VoWQvUD8v
20
+ u6pzpALLB1LL3sAq3FacbtDCi/WGiqxPHGTIh1LhPWDT3QKBgEliTq4yzfkrCyaZ62SJDouyKr8F
21
+ RlaVV6mLQnuu6UXw2XMPEJjrjXu/2e8BM9tenNlHJSCWmgDQeqVBSw8m2HJJ28zs6UAR86BApR6H
22
+ BPHX1m0kRiABubxqWPCm9kciwqbiVMtlyrzFmN3kDescd9EAhexRI/CwnnkHh+iH2jUu
23
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,15 @@
1
+ # Cookbook for inception
2
+
3
+ Chef cookbook to convert a VM into an inception server to deploy/develop Bosh and bosh releases.
4
+
5
+ ## Development
6
+
7
+ To clone the repo containing this cookbook and run the cookbook tests:
8
+
9
+ ```
10
+ git clone git@github.com:drnic/inception.git
11
+ cd inception
12
+ bundle
13
+ kitchen test virtualbox
14
+ kitchen test vmware # if you have the plugin installed
15
+ ```