nixme-vagrant 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. data/.gitignore +15 -0
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +261 -0
  4. data/Gemfile +21 -0
  5. data/LICENSE +21 -0
  6. data/README.md +61 -0
  7. data/Rakefile +22 -0
  8. data/bin/vagrant +22 -0
  9. data/config/default.rb +39 -0
  10. data/contrib/README.md +12 -0
  11. data/contrib/emacs/vagrant.el +8 -0
  12. data/contrib/vim/vagrantfile.vim +9 -0
  13. data/keys/README.md +17 -0
  14. data/keys/vagrant +27 -0
  15. data/keys/vagrant.ppk +26 -0
  16. data/keys/vagrant.pub +1 -0
  17. data/lib/vagrant.rb +42 -0
  18. data/lib/vagrant/action.rb +134 -0
  19. data/lib/vagrant/action/box.rb +11 -0
  20. data/lib/vagrant/action/box/destroy.rb +21 -0
  21. data/lib/vagrant/action/box/download.rb +72 -0
  22. data/lib/vagrant/action/box/package.rb +19 -0
  23. data/lib/vagrant/action/box/unpackage.rb +55 -0
  24. data/lib/vagrant/action/box/verify.rb +23 -0
  25. data/lib/vagrant/action/builder.rb +124 -0
  26. data/lib/vagrant/action/builtin.rb +104 -0
  27. data/lib/vagrant/action/env.rb +7 -0
  28. data/lib/vagrant/action/env/set.rb +18 -0
  29. data/lib/vagrant/action/environment.rb +50 -0
  30. data/lib/vagrant/action/general.rb +8 -0
  31. data/lib/vagrant/action/general/package.rb +109 -0
  32. data/lib/vagrant/action/general/validate.rb +19 -0
  33. data/lib/vagrant/action/vm.rb +31 -0
  34. data/lib/vagrant/action/vm/boot.rb +48 -0
  35. data/lib/vagrant/action/vm/check_box.rb +28 -0
  36. data/lib/vagrant/action/vm/check_guest_additions.rb +30 -0
  37. data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
  38. data/lib/vagrant/action/vm/clear_forwarded_ports.rb +39 -0
  39. data/lib/vagrant/action/vm/clear_nfs_exports.rb +20 -0
  40. data/lib/vagrant/action/vm/clear_shared_folders.rb +32 -0
  41. data/lib/vagrant/action/vm/customize.rb +21 -0
  42. data/lib/vagrant/action/vm/destroy.rb +19 -0
  43. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +30 -0
  44. data/lib/vagrant/action/vm/discard_state.rb +22 -0
  45. data/lib/vagrant/action/vm/export.rb +52 -0
  46. data/lib/vagrant/action/vm/forward_ports.rb +133 -0
  47. data/lib/vagrant/action/vm/forward_ports_helpers.rb +28 -0
  48. data/lib/vagrant/action/vm/halt.rb +29 -0
  49. data/lib/vagrant/action/vm/host_name.rb +21 -0
  50. data/lib/vagrant/action/vm/import.rb +35 -0
  51. data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
  52. data/lib/vagrant/action/vm/network.rb +139 -0
  53. data/lib/vagrant/action/vm/nfs.rb +159 -0
  54. data/lib/vagrant/action/vm/nfs_helpers.rb +11 -0
  55. data/lib/vagrant/action/vm/package.rb +23 -0
  56. data/lib/vagrant/action/vm/package_vagrantfile.rb +33 -0
  57. data/lib/vagrant/action/vm/provision.rb +41 -0
  58. data/lib/vagrant/action/vm/resume.rb +20 -0
  59. data/lib/vagrant/action/vm/share_folders.rb +70 -0
  60. data/lib/vagrant/action/vm/suspend.rb +20 -0
  61. data/lib/vagrant/action/warden.rb +79 -0
  62. data/lib/vagrant/box.rb +90 -0
  63. data/lib/vagrant/box_collection.rb +53 -0
  64. data/lib/vagrant/cli.rb +55 -0
  65. data/lib/vagrant/command.rb +25 -0
  66. data/lib/vagrant/command/base.rb +106 -0
  67. data/lib/vagrant/command/box.rb +33 -0
  68. data/lib/vagrant/command/destroy.rb +17 -0
  69. data/lib/vagrant/command/group_base.rb +107 -0
  70. data/lib/vagrant/command/halt.rb +18 -0
  71. data/lib/vagrant/command/helpers.rb +33 -0
  72. data/lib/vagrant/command/init.rb +14 -0
  73. data/lib/vagrant/command/named_base.rb +14 -0
  74. data/lib/vagrant/command/package.rb +41 -0
  75. data/lib/vagrant/command/provision.rb +17 -0
  76. data/lib/vagrant/command/reload.rb +17 -0
  77. data/lib/vagrant/command/resume.rb +17 -0
  78. data/lib/vagrant/command/ssh.rb +42 -0
  79. data/lib/vagrant/command/ssh_config.rb +26 -0
  80. data/lib/vagrant/command/status.rb +22 -0
  81. data/lib/vagrant/command/suspend.rb +17 -0
  82. data/lib/vagrant/command/up.rb +19 -0
  83. data/lib/vagrant/command/upgrade_to_060.rb +45 -0
  84. data/lib/vagrant/command/version.rb +13 -0
  85. data/lib/vagrant/config.rb +123 -0
  86. data/lib/vagrant/config/base.rb +85 -0
  87. data/lib/vagrant/config/error_recorder.rb +19 -0
  88. data/lib/vagrant/config/nfs.rb +10 -0
  89. data/lib/vagrant/config/package.rb +9 -0
  90. data/lib/vagrant/config/ssh.rb +33 -0
  91. data/lib/vagrant/config/top.rb +61 -0
  92. data/lib/vagrant/config/vagrant.rb +16 -0
  93. data/lib/vagrant/config/vm.rb +137 -0
  94. data/lib/vagrant/config/vm/provisioner.rb +56 -0
  95. data/lib/vagrant/config/vm/sub_vm.rb +17 -0
  96. data/lib/vagrant/data_store.rb +70 -0
  97. data/lib/vagrant/downloaders.rb +7 -0
  98. data/lib/vagrant/downloaders/base.rb +23 -0
  99. data/lib/vagrant/downloaders/file.rb +22 -0
  100. data/lib/vagrant/downloaders/http.rb +64 -0
  101. data/lib/vagrant/environment.rb +392 -0
  102. data/lib/vagrant/errors.rb +332 -0
  103. data/lib/vagrant/hosts.rb +7 -0
  104. data/lib/vagrant/hosts/base.rb +77 -0
  105. data/lib/vagrant/hosts/bsd.rb +52 -0
  106. data/lib/vagrant/hosts/linux.rb +47 -0
  107. data/lib/vagrant/plugin.rb +57 -0
  108. data/lib/vagrant/provisioners.rb +9 -0
  109. data/lib/vagrant/provisioners/base.rb +63 -0
  110. data/lib/vagrant/provisioners/chef.rb +130 -0
  111. data/lib/vagrant/provisioners/chef_server.rb +97 -0
  112. data/lib/vagrant/provisioners/chef_solo.rb +139 -0
  113. data/lib/vagrant/provisioners/puppet.rb +137 -0
  114. data/lib/vagrant/provisioners/puppet_server.rb +55 -0
  115. data/lib/vagrant/provisioners/shell.rb +52 -0
  116. data/lib/vagrant/ssh.rb +173 -0
  117. data/lib/vagrant/ssh/session.rb +119 -0
  118. data/lib/vagrant/systems.rb +10 -0
  119. data/lib/vagrant/systems/base.rb +87 -0
  120. data/lib/vagrant/systems/debian.rb +36 -0
  121. data/lib/vagrant/systems/freebsd.rb +84 -0
  122. data/lib/vagrant/systems/gentoo.rb +27 -0
  123. data/lib/vagrant/systems/linux.rb +79 -0
  124. data/lib/vagrant/systems/linux/config.rb +21 -0
  125. data/lib/vagrant/systems/linux/error.rb +9 -0
  126. data/lib/vagrant/systems/redhat.rb +39 -0
  127. data/lib/vagrant/systems/solaris.rb +62 -0
  128. data/lib/vagrant/test_helpers.rb +128 -0
  129. data/lib/vagrant/ui.rb +69 -0
  130. data/lib/vagrant/util.rb +13 -0
  131. data/lib/vagrant/util/busy.rb +59 -0
  132. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  133. data/lib/vagrant/util/plain_logger.rb +25 -0
  134. data/lib/vagrant/util/platform.rb +58 -0
  135. data/lib/vagrant/util/resource_logger.rb +63 -0
  136. data/lib/vagrant/util/retryable.rb +25 -0
  137. data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
  138. data/lib/vagrant/util/template_renderer.rb +83 -0
  139. data/lib/vagrant/version.rb +6 -0
  140. data/lib/vagrant/vm.rb +176 -0
  141. data/templates/chef_server_client.erb +18 -0
  142. data/templates/chef_solo_solo.erb +19 -0
  143. data/templates/commands/init/Vagrantfile.erb +63 -0
  144. data/templates/config/validation_failed.erb +7 -0
  145. data/templates/locales/en.yml +531 -0
  146. data/templates/network_entry_debian.erb +8 -0
  147. data/templates/network_entry_gentoo.erb +7 -0
  148. data/templates/network_entry_redhat.erb +8 -0
  149. data/templates/nfs/exports.erb +5 -0
  150. data/templates/nfs/exports_linux.erb +5 -0
  151. data/templates/package_Vagrantfile.erb +11 -0
  152. data/templates/ssh_config.erb +9 -0
  153. data/test/locales/en.yml +8 -0
  154. data/test/test_helper.rb +26 -0
  155. data/test/vagrant/action/box/destroy_test.rb +18 -0
  156. data/test/vagrant/action/box/download_test.rb +125 -0
  157. data/test/vagrant/action/box/package_test.rb +25 -0
  158. data/test/vagrant/action/box/unpackage_test.rb +84 -0
  159. data/test/vagrant/action/box/verify_test.rb +30 -0
  160. data/test/vagrant/action/builder_test.rb +203 -0
  161. data/test/vagrant/action/env/set_test.rb +24 -0
  162. data/test/vagrant/action/environment_test.rb +27 -0
  163. data/test/vagrant/action/general/package_test.rb +268 -0
  164. data/test/vagrant/action/general/validate_test.rb +31 -0
  165. data/test/vagrant/action/vm/boot_test.rb +66 -0
  166. data/test/vagrant/action/vm/check_box_test.rb +56 -0
  167. data/test/vagrant/action/vm/check_guest_additions_test.rb +9 -0
  168. data/test/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
  169. data/test/vagrant/action/vm/clear_forwarded_ports_test.rb +72 -0
  170. data/test/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
  171. data/test/vagrant/action/vm/clear_shared_folders_test.rb +49 -0
  172. data/test/vagrant/action/vm/customize_test.rb +30 -0
  173. data/test/vagrant/action/vm/destroy_test.rb +25 -0
  174. data/test/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
  175. data/test/vagrant/action/vm/discard_state_test.rb +45 -0
  176. data/test/vagrant/action/vm/export_test.rb +107 -0
  177. data/test/vagrant/action/vm/forward_ports_helpers_test.rb +70 -0
  178. data/test/vagrant/action/vm/forward_ports_test.rb +194 -0
  179. data/test/vagrant/action/vm/halt_test.rb +79 -0
  180. data/test/vagrant/action/vm/host_name_test.rb +36 -0
  181. data/test/vagrant/action/vm/import_test.rb +66 -0
  182. data/test/vagrant/action/vm/match_mac_address_test.rb +36 -0
  183. data/test/vagrant/action/vm/network_test.rb +286 -0
  184. data/test/vagrant/action/vm/nfs_helpers_test.rb +26 -0
  185. data/test/vagrant/action/vm/nfs_test.rb +260 -0
  186. data/test/vagrant/action/vm/package_test.rb +25 -0
  187. data/test/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
  188. data/test/vagrant/action/vm/provision_test.rb +90 -0
  189. data/test/vagrant/action/vm/resume_test.rb +35 -0
  190. data/test/vagrant/action/vm/share_folders_test.rb +139 -0
  191. data/test/vagrant/action/vm/suspend_test.rb +35 -0
  192. data/test/vagrant/action/warden_test.rb +119 -0
  193. data/test/vagrant/action_test.rb +89 -0
  194. data/test/vagrant/box_collection_test.rb +45 -0
  195. data/test/vagrant/box_test.rb +74 -0
  196. data/test/vagrant/cli_test.rb +35 -0
  197. data/test/vagrant/command/base_test.rb +23 -0
  198. data/test/vagrant/command/group_base_test.rb +15 -0
  199. data/test/vagrant/command/helpers_test.rb +88 -0
  200. data/test/vagrant/command/package_test.rb +27 -0
  201. data/test/vagrant/config/base_test.rb +52 -0
  202. data/test/vagrant/config/error_recorder_test.rb +18 -0
  203. data/test/vagrant/config/ssh_test.rb +12 -0
  204. data/test/vagrant/config/vagrant_test.rb +35 -0
  205. data/test/vagrant/config/vm/provisioner_test.rb +92 -0
  206. data/test/vagrant/config/vm_test.rb +86 -0
  207. data/test/vagrant/config_test.rb +162 -0
  208. data/test/vagrant/data_store_test.rb +77 -0
  209. data/test/vagrant/downloaders/base_test.rb +28 -0
  210. data/test/vagrant/downloaders/file_test.rb +48 -0
  211. data/test/vagrant/downloaders/http_test.rb +80 -0
  212. data/test/vagrant/environment_test.rb +508 -0
  213. data/test/vagrant/errors_test.rb +42 -0
  214. data/test/vagrant/hosts/base_test.rb +46 -0
  215. data/test/vagrant/hosts/bsd_test.rb +53 -0
  216. data/test/vagrant/hosts/linux_test.rb +54 -0
  217. data/test/vagrant/plugin_test.rb +9 -0
  218. data/test/vagrant/provisioners/base_test.rb +63 -0
  219. data/test/vagrant/provisioners/chef_server_test.rb +186 -0
  220. data/test/vagrant/provisioners/chef_solo_test.rb +219 -0
  221. data/test/vagrant/provisioners/chef_test.rb +179 -0
  222. data/test/vagrant/provisioners/puppet_server_test.rb +68 -0
  223. data/test/vagrant/provisioners/puppet_test.rb +182 -0
  224. data/test/vagrant/provisioners/shell_test.rb +68 -0
  225. data/test/vagrant/ssh/session_test.rb +40 -0
  226. data/test/vagrant/ssh_test.rb +342 -0
  227. data/test/vagrant/systems/base_test.rb +18 -0
  228. data/test/vagrant/systems/linux_test.rb +114 -0
  229. data/test/vagrant/ui_test.rb +29 -0
  230. data/test/vagrant/util/busy_test.rb +106 -0
  231. data/test/vagrant/util/hash_with_indifferent_access_test.rb +39 -0
  232. data/test/vagrant/util/plain_logger_test.rb +17 -0
  233. data/test/vagrant/util/platform_test.rb +18 -0
  234. data/test/vagrant/util/resource_logger_test.rb +78 -0
  235. data/test/vagrant/util/retryable_test.rb +38 -0
  236. data/test/vagrant/util/stacked_proc_runner_test.rb +43 -0
  237. data/test/vagrant/util/template_renderer_test.rb +145 -0
  238. data/test/vagrant/vm_test.rb +291 -0
  239. data/vagrant.gemspec +36 -0
  240. metadata +442 -0
@@ -0,0 +1,15 @@
1
+ .DS_Store
2
+ pkg/*
3
+ Vagrantfile
4
+ .vagrant
5
+ .bundle
6
+ cookbooks/*
7
+ _site/*
8
+ !templates/*
9
+ *.org
10
+ .yardoc/
11
+ doc/
12
+ tags
13
+ Gemfile.lock
14
+ .idea/*
15
+ *.iml
@@ -0,0 +1 @@
1
+ -m markdown
@@ -0,0 +1,261 @@
1
+ ## 0.7.3 (unreleased)
2
+
3
+
4
+
5
+ ## 0.7.2-nixme (February 10, 2011)
6
+
7
+ - Fix sudo issues on sudo < 1.7.0 (again).
8
+ - Fix race condition in SSH, which specifically manifested itself in
9
+ the chef server provisioner. [GH-295]
10
+ - Change sudo shell to use `bash` (configurable). [GH-301]
11
+ - Can now set mac address of host only network. [GH-294]
12
+ - NFS shared folders with spaces now work properly. [GH-293]
13
+ - Failed SSH commands now show output in error message. [GH-285]
14
+
15
+ ## 0.7.1 (January 28, 2011)
16
+
17
+ - Change error output with references to VirtualBox 3.2 to 4.0.
18
+ - Internal SSH through net-ssh now uses `IdentitiesOnly` thanks to
19
+ upstream net-ssh fix.
20
+ - Fix issue causing warnings to show with `forwardx11` enabled for SSH. [GH-279]
21
+ - FreeBSD support for host only networks, NFS, halting, etc. [GH-275]
22
+ - Make SSH commands which use sudo compatible with sudo < 1.7.0. [GH-278]
23
+ - Fix broken puppet server provisioner which called a nonexistent
24
+ method.
25
+ - Default SSH host changed from `localhost` to `127.0.0.1` since
26
+ `localhost` is not always loopback.
27
+ - New `shell` provisioner which simply uploads and executes a script as
28
+ root on the VM.
29
+ - Gentoo host only networking no longer fails if alrady setup. [GH-286]
30
+ - Set the host name of your guest OS with `config.vm.host_name` [GH-273]
31
+ - `vagrant ssh-config` now outputs the configured `config.ssh.host`
32
+
33
+ ## 0.7.0 (January 19, 2011)
34
+
35
+ - VirtualBox 4.0 support. Support for VirtualBox 3.2 is _dropped_, since
36
+ the API is so different. Stay with the 0.6.x series if you have VirtualBox
37
+ 3.2.x.
38
+ - Puppet server provisioner. [GH-262]
39
+ - Use numeric uid/gid in mounting shared folders to increase portability. [GH-252]
40
+ - HTTP downloading follows redirects. [GH-163]
41
+ - Downloaders have clearer output to note what they're doing.
42
+ - Shared folders with no guest path are not automounted. [GH-184]
43
+ - Boxes downloaded during `vagrant up` reload the Vagrantfile config, which
44
+ fixes a problem with box settings not being properly loaded. [GH-231]
45
+ - `config.ssh.forward_x11` to enable the ForwardX11 SSH option. [GH-255]
46
+ - Vagrant source now has a `contrib` directory where contributions of miscellaneous
47
+ addons for Vagrant will be added.
48
+ - Vagrantfiles are now loaded only once (instead of 4+ times) [GH-238]
49
+ - Ability to move home vagrant dir (~/.vagrant) by setting VAGRANT_HOME
50
+ environmental variable.
51
+ - Removed check and error for the "OSE" version of VirtualBox, since with
52
+ VirtualBox 4 this distinction no longer exists.
53
+ - Ability to specify proxy settings for chef. [GH-169]
54
+ - Helpful error message shown if NFS mounting fails. [GH-135]
55
+ - Gentoo guests now support host only networks. [GH-240]
56
+ - RedHat (CentOS included) guests now support host only networks. [GH-260]
57
+ - New Vagrantfile syntax for enabling and configuring provisioners. This
58
+ change is not backwards compatible. [GH-265]
59
+ - Provisioners are now RVM-friendly, meaning if you installed chef or puppet
60
+ with an RVM managed Ruby, Vagrant now finds then. [GH-254]
61
+ - Changed the unused host only network destroy mechanism to check for
62
+ uselessness after the VM is destroyed. This should result in more accurate
63
+ checks.
64
+ - Networks are no longer disabled upon halt/destroy. With the above
65
+ change, its unnecessary.
66
+ - Puppet supports `module_path` configuration to mount local modules directory
67
+ as a shared folder and configure puppet with it. [GH-270]
68
+ - `ssh-config` now outputs `127.0.0.1` as the host instead of `localhost`.
69
+
70
+ ## 0.6.9 (December 21, 2010)
71
+
72
+ - Puppet provisioner. [GH-223]
73
+ - Solaris system configurable to use `sudo`.
74
+ - Solaris system registered, so it can be set with `:solaris`.
75
+ - `vagrant package` include can be a directory name, which will cause the
76
+ contents to be recursively copied into the package. [GH-241]
77
+ - Arbitrary options to puppet binary can be set with `config.puppet.options`. [GH-242]
78
+ - BSD hosts use proper GNU sed syntax for clearing NFS shares. [GH-243]
79
+ - Enumerate VMs in a multi-VM environment in order they were defined. [GH-244]
80
+ - Check for VM boot changed to use `timeout` library, which works better with Windows.
81
+ - Show special error if VirtualBox not detected on 64-bit Windows.
82
+ - Show error to Windows users attempting to use host only networking since
83
+ it doesn't work yet.
84
+
85
+ ## 0.6.8 (November 30, 2010)
86
+
87
+ - Network interfaces are now up/down in distinct commands instead of just
88
+ restarting "networking." [GH-192]
89
+ - Add missing translation for chef binary missing. [GH-203]
90
+ - Fix default settings for Opscode platform and comments. [GH-213]
91
+ - Blank client name for chef server now uses FQDN by default, instead of "client" [GH-214]
92
+ - Run list can now be nil, which will cause it to sync with chef server (when
93
+ chef server is enabled). [GH-214]
94
+ - Multiple NFS folders now work on linux. [GH-215]
95
+ - Add translation for state "stuck" which is very rare. [GH-218]
96
+ - virtualbox gem dependency minimum raised to 0.7.6 to verify FFI < 1.0.0 is used.
97
+ - Fix issue where box downloading from `vagrant up` didn't reload the box collection. [GH-229]
98
+
99
+ ## 0.6.7 (November 3, 2010)
100
+
101
+ - Added validation to verify that a box is specified.
102
+ - Proper error message when box is not found for `config.vm.box`. [GH-195]
103
+ - Fix output of `vagrant status` with multi-vm to be correct. [GH-196]
104
+
105
+ ## 0.6.6 (October 14, 2010)
106
+
107
+ - `vagrant status NAME` works once again. [GH-191]
108
+ - Conditional validation of Vagrantfile so that some commands don't validate. [GH-188]
109
+ - Fix "junk" output for ssh-config. [GH-189]
110
+ - Fix port collision handling with greater than two VMs. [GH-185]
111
+ - Fix potential infinite loop with root path if bad CWD is given to environment.
112
+
113
+ ## 0.6.5 (October 8, 2010)
114
+
115
+ - Validations on base MAC address to avoid situation described in GH-166, GH-181
116
+ from ever happening again.
117
+ - Properly load sub-VM configuration on first-pass of config loading. Solves
118
+ a LOT of problems with multi-VM. [GH-166] [GH-181]
119
+ - Configuration now only validates on final Vagrantfile proc, so multi-VM
120
+ validates correctly.
121
+ - A nice error message is given if ".vagrant" is a directory and therefore
122
+ can't be accessed. [GH-172]
123
+ - Fix plugin loading in a Rails 2.3.x project. [GH-176]
124
+
125
+ ## 0.6.4 (October 4, 2010)
126
+
127
+ - Default VM name is now properly the parent folder of the working directory
128
+ of the environment.
129
+ - Added method to `TestHelpers` to assist with testing new downloaders.
130
+ - `up --no-provision` works again. This disables provisioning during the
131
+ boot process.
132
+ - Action warden doesn't do recovery process on `SystemExit` exceptions,
133
+ allowing the double ctrl-C to work properly again. [related to GH-166]
134
+ - Initial Vagrantfile is now heavily commented with various available
135
+ options. [GH-171]
136
+ - Box add checks if a box already exists before the download. [GH-170]
137
+ - NFS no longer attempts to clean exports file if VM is not created,
138
+ which was causing a stack trace during recovery. [related to GH-166]
139
+ - Basic validation added for Chef configuration (both solo and server).
140
+ - Top config class is now available in all `Vagrant::Config::Base`
141
+ subclasses, which is useful for config validation.
142
+ - Subcommand help shows proper full command in task listing. [GH-168]
143
+ - SSH gives error message if `ssh` binary is not found. [GH-161]
144
+ - SSH gives proper error message if VM is not running. [GH-167]
145
+ - Fix some issues with undefined constants in command errors.
146
+
147
+ ## 0.6.1, 0.6.2, 0.6.3 (September 27, 2010)
148
+
149
+ A lot of quick releases which all were to fix issues with Ruby 1.8.7
150
+ compatibility.
151
+
152
+ ## 0.6.0 (September 27, 2010)
153
+
154
+ - VM name now defaults to the name of the containing folder, plus a timestamp.
155
+ This should make it easier to identify VMs in the VirtualBox GUI.
156
+ - Exposed Vagrant test helpers in `Vagrant::TestHelpers` for plugins to easily
157
+ test themselves against Vagrant environments.
158
+ - **Plugins** have landed. Plugins are simply gems which have a `vagrant_init.rb`
159
+ file somewhere in their load path. Please read the documentation on
160
+ vagrantup.com before attempting to create a plugin (which is very easy)
161
+ for more information on how it all works and also some guidelines.
162
+ - `vagrant package` now takes a `--vagrantfile` option to specify a
163
+ Vagrantfile to package. The `--include` approach for including a Vagrantfile
164
+ no longer works (previously built boxes will continue to work).
165
+ - `vagrant package` has new logic with regards to the `--include` option
166
+ depending on if the file path is relative or absolute (they can be
167
+ intermixed):
168
+ * _Relative_ paths are copied directly into the box, preserving
169
+ their path. So `--include lib/foo` would be in the box as "lib/foo"
170
+ * _Absolute_ paths are simply copied files into the root of the
171
+ box. So `--include /lib/foo` would be in the box as "foo"
172
+ - "vagrant_main" is no longer the default run list. Instead, chef
173
+ run list starts empty. It is up to you to specify all recipes in
174
+ the Vagrantfile now.
175
+ - Fixed various issues with certain action middleware not working if
176
+ the VM was not created.
177
+ - SSH connection is retried 5 times if there is a connection refused.
178
+ Related to GH-140.
179
+ - If `http_proxy` environmental variable is set, it will be used as the proxy
180
+ box adding via http.
181
+ - Remove `config.ssh.password`. It hasn't been used for a few versions
182
+ now and was only kept around to avoid exceptions in Vagrantfiles.
183
+ - Configuration is now validated so improper input can be found in
184
+ Vagrantfiles.
185
+ - Fixed issue with not detecting Vagrantfile at root directory ("/").
186
+ - Vagrant now gives a nice error message if there is a syntax error
187
+ in any Vagrantfile. [GH-154]
188
+ - The format of the ".vagrant" file which stores persisted VMs has
189
+ changed. This is **backwards incompatible**. Will provide an upgrade
190
+ utility prior to 0.6 launch.
191
+ - Every [expected] Vagrant error now exits with a clean error message
192
+ and a unique exit status, and raises a unique exception (if you're
193
+ scripting Vagrant).
194
+ - Added I18n gem dependency for pulling strings into clean YML files.
195
+ Vagrant is now localizable as a side effect! Translations welcome.
196
+ - Fixed issue with "Waiting for cleanup" message appearing twice in
197
+ some cases. [GH-145]
198
+ - Converted CLI to use Thor. As a tradeoff, there are some backwards
199
+ incompatibilities:
200
+ * `vagrant package` - The `--include` flag now separates filenames
201
+ by spaces, instead of by commas. e.g. `vagrant package --include x y z`
202
+ * `vagrant ssh` - If you specify a command to execute using the `--execute`
203
+ flag, you may now only specify one command (before you were able to
204
+ specify an arbitrary amount). e.g. `vagrant ssh -e "echo hello"`
205
+ * `vagrant ssh-config` has become `vagrant ssh_config` due to a limitation
206
+ in Thor.
207
+
208
+ ## 0.5.4 (September 7, 2010)
209
+
210
+ - Fix issue with the "exec failed" by running on Tiger as well.
211
+ - Give an error when downloading a box which already exists prior
212
+ to actually downloading the box.
213
+
214
+ ## 0.5.3 (August 23, 2010)
215
+
216
+ - Add erubis as a dependency since its rendering of `erb` is sane.
217
+ - Fixed poorly formatted Vagrantfile after `vagrant init`. [GH-142]
218
+ - Fixed NFS not working properly with multiple NFS folders.
219
+ - Fixed chef solo provision to work on Windows. It was expanding a linux
220
+ path which prepended a drive letter onto it.
221
+
222
+ ## 0.5.2 (August 3, 2010)
223
+
224
+ - `vagrant up` can be used as a way to resume the VM as well (same as
225
+ `vagrant resume`). [GH-134]
226
+ - Sudo uses "-E" flag to preserve environment for chef provisioners.
227
+ This fixes issues with CentOS. [GH-133]
228
+ - Added "IdentitiesOnly yes" to options when `vagrant ssh` is run to
229
+ avoid "Too Many Authentication Failures" error. [GH-131]
230
+ - Fix regression with `package` not working. [GH-132]
231
+ - Added ability to specify box url in `init`, which populates the
232
+ Vagrantfile with the proper `config.vm.box_url`.
233
+
234
+ ## 0.5.1 (July 31, 2010)
235
+
236
+ - Allow specifying cookbook paths which exist only on the VM in `config.chef.cookbooks_path`.
237
+ This is used for specifying cookbook paths when `config.chef.recipe_url` is used. [GH-130]
238
+ See updated chef solo documentation for more information on this.
239
+ - No longer show "Disabling host only networks..." if no host only networks
240
+ are destroyed. Quiets `destroy`, `halt`, etc output a bit.
241
+ - Updated getting started guide to be more up to date and generic. [GH-125]
242
+ - Fixed error with doing a `vagrant up` when no Vagrantfile existed. [GH-128]
243
+ - Fixed NFS erroring when NFS wasn't even enabled if `/etc/exports` doesn't
244
+ exist. [GH-126]
245
+ - Fixed `vagrant resume` to properly resume a suspended VM. [GH-122]
246
+ - Fixed `halt`, `destroy`, `reload` to where they failed if the VM was
247
+ in a saved state. [GH-123]
248
+ - Added `config.chef.recipe_url` which allows you to specify a URL to
249
+ a gzipped tar file for chef solo to download cookbooks. See the
250
+ [chef-solo docs](http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-RunningfromaURL) for more information.
251
+ [GH-121]
252
+ - Added `vagrant box repackage` which repackages boxes which have
253
+ been added. This is useful in case you want to redistribute a base
254
+ box you have but may have lost the actual "box" file. [GH-120]
255
+
256
+ ## Previous
257
+
258
+ The changelog began with version 0.5.1 so any changes prior to that
259
+ can be seen by checking the tagged releases and reading git commit
260
+ messages.
261
+
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem "nixme-vagrant", :path => '.'
4
+
5
+ # Use the following gems straight from git, since Vagrant dev
6
+ # typically coincides with it
7
+ gem "virtualbox", :git => "git://github.com/mitchellh/virtualbox.git"
8
+
9
+ # Gems required for testing only. To install run
10
+ # gem bundle test
11
+ group :test do
12
+ gem "rake"
13
+ gem "contest", ">= 0.1.2"
14
+ gem "mocha"
15
+
16
+ # For documentation
17
+ platforms :ruby do
18
+ gem "yard", "~> 0.6.1"
19
+ gem "bluecloth"
20
+ end
21
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010 Mitchell Hashimoto and John Bender
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,61 @@
1
+ # Vagrant
2
+
3
+ * Website: [http://vagrantup.com](http://vagrantup.com)
4
+ * Source: [http://github.com/mitchellh/vagrant](http://github.com/mitchellh/vagrant)
5
+ * IRC: `#vagrant` on Freenode
6
+ * Mailing list: [Google Groups](http://groups.google.com/group/vagrant-up)
7
+
8
+ Vagrant is a tool for building and distributing virtualized development environments.
9
+
10
+ By providing automated creation and provisioning of virtual machines using [Oracle’s VirtualBox](http://www.virtualbox.org),
11
+ Vagrant provides the tools to create and configure lightweight, reproducible, and portable
12
+ virtual environments. For more information, see the part of the getting started guide
13
+ on “[Why Vagrant?](http://vagrantup.com/docs/getting-started/index.html)”
14
+
15
+ ## Quick Start
16
+
17
+ First, make sure your development machine has [VirtualBox](http://www.virtualbox.org)
18
+ installed. The setup from that point forward is very easy, since Vagrant is simply
19
+ a rubygem.
20
+
21
+ gem install vagrant
22
+
23
+ To build your first virtual environment:
24
+
25
+ vagrant init lucid32 http://files.vagrantup.com/lucid32.box
26
+ vagrant up
27
+
28
+ Note: The above `vagrant up` command will also trigger Vagrant to download the
29
+ `lucid32` box via the specified URL. Vagrant only does this if it detects that
30
+ the box doesn't already exist on your system.
31
+
32
+ ## Getting Started Guide and Video
33
+
34
+ To learn how to build a fully functional rails development environment, view the
35
+ [getting started guide](http://vagrantup.com/docs/getting-started/index.html).
36
+
37
+ There is also a fairly short (12 minute) [getting started video](http://vimeo.com/9976342) which
38
+ explains how to build a fully functional LAMP development environment, which
39
+ covers a few parts of Vagrant in more detail than the website guide.
40
+
41
+ ## Installing the Gem from Git
42
+
43
+ If you want the bleeding edge version of Vagrant, we try to keep master pretty stable
44
+ and you're welcome to give it a shot. The following is an example showing how to do this:
45
+
46
+ rake install
47
+
48
+ ## Contributing to Vagrant
49
+
50
+ To hack on vagrant, you'll need [bundler](http://github.com/carlhuda/bundler) which can
51
+ be installed with a simple `gem install bundler --pre`. Afterwords, do the following:
52
+
53
+ bundle install
54
+ rake
55
+
56
+ This will run the test suite, which should come back all green! Then you're good to go!
57
+
58
+ If you want to run Vagrant without having to install the gem, you may use `bundle exec`,
59
+ like so:
60
+
61
+ bundle exec bin/vagrant help
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rake/testtask'
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ task :default => :test
7
+
8
+ Rake::TestTask.new do |t|
9
+ t.libs << "test"
10
+ t.pattern = 'test/**/*_test.rb'
11
+ end
12
+
13
+ begin
14
+ require 'yard'
15
+ YARD::Rake::YardocTask.new do |t|
16
+ t.options = ['--main', 'README.md', '--markup', 'markdown']
17
+ t.options += ['--title', 'Vagrant Developer Documentation']
18
+ end
19
+ rescue LoadError
20
+ puts "Yard not available. Install it with: gem install yard"
21
+ puts "if you wish to be able to generate developer documentation."
22
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ require 'vagrant'
3
+ require 'vagrant/cli'
4
+
5
+ env = Vagrant::Environment.new
6
+
7
+ begin
8
+ # Set the UI early in case any errors are raised, and load
9
+ # the config immediately, so we gather any new commands from
10
+ # plugins
11
+ env.ui = Vagrant::UI::Shell.new(env, Thor::Base.shell.new)
12
+ env.load!
13
+
14
+ # Kick start the CLI
15
+ Vagrant::CLI.start(ARGV, :env => env)
16
+ rescue Vagrant::Errors::VagrantError => e
17
+ opts = { :prefix => false }
18
+ env.ui.error e.message, opts if e.message
19
+ env.ui.error e.backtrace.join("\n"), opts if ENV["VAGRANT_DEBUG"]
20
+ exit e.status_code if e.respond_to?(:status_code)
21
+ exit 999 # An error occurred with no status code defined
22
+ end
@@ -0,0 +1,39 @@
1
+ Vagrant::Config.run do |config|
2
+ # default config goes here
3
+ config.vagrant.dotfile_name = ".vagrant"
4
+ config.vagrant.host = :detect
5
+
6
+ config.ssh.username = "vagrant"
7
+ config.ssh.host = "127.0.0.1"
8
+ config.ssh.forwarded_port_key = "ssh"
9
+ config.ssh.max_tries = 10
10
+ config.ssh.timeout = 30
11
+ config.ssh.private_key_path = File.expand_path("keys/vagrant", Vagrant.source_root)
12
+ config.ssh.forward_agent = false
13
+ config.ssh.forward_x11 = false
14
+
15
+ config.vm.auto_port_range = (2200..2250)
16
+ config.vm.box_ovf = "box.ovf"
17
+ config.vm.box_url = nil
18
+ config.vm.base_mac = nil
19
+ config.vm.forward_port("ssh", 22, 2222, :auto => true)
20
+ config.vm.disk_image_format = 'VMDK'
21
+ config.vm.shared_folder_uid = nil
22
+ config.vm.shared_folder_gid = nil
23
+ config.vm.boot_mode = "vrdp"
24
+ config.vm.system = :linux
25
+
26
+ config.vm.customize do |vm|
27
+ # Make VM name the name of the containing folder by default
28
+ vm.name = File.basename(config.env.cwd) + "_#{Time.now.to_i}"
29
+ end
30
+
31
+ # Share the root folder. This can then be overridden by
32
+ # other Vagrantfiles, if they wish.
33
+ config.vm.share_folder("v-root", "/vagrant", ".")
34
+
35
+ config.nfs.map_uid = :auto
36
+ config.nfs.map_gid = :auto
37
+
38
+ config.package.name = 'package.box'
39
+ end