vagrant-fixed-ssh 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +46 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +723 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +121 -0
- data/Rakefile +18 -0
- data/bin/vagrant +60 -0
- data/config/default.rb +30 -0
- data/contrib/README.md +12 -0
- data/contrib/emacs/vagrant.el +8 -0
- data/contrib/vim/vagrantfile.vim +9 -0
- data/keys/README.md +17 -0
- data/keys/vagrant +27 -0
- data/keys/vagrant.pub +1 -0
- data/lib/vagrant.rb +197 -0
- data/lib/vagrant/action.rb +63 -0
- data/lib/vagrant/action/box/destroy.rb +25 -0
- data/lib/vagrant/action/box/download.rb +84 -0
- data/lib/vagrant/action/box/package.rb +19 -0
- data/lib/vagrant/action/box/unpackage.rb +61 -0
- data/lib/vagrant/action/box/verify.rb +23 -0
- data/lib/vagrant/action/builder.rb +128 -0
- data/lib/vagrant/action/builtin.rb +171 -0
- data/lib/vagrant/action/env/set.rb +21 -0
- data/lib/vagrant/action/environment.rb +12 -0
- data/lib/vagrant/action/general/check_virtualbox.rb +28 -0
- data/lib/vagrant/action/general/package.rb +101 -0
- data/lib/vagrant/action/general/validate.rb +18 -0
- data/lib/vagrant/action/runner.rb +53 -0
- data/lib/vagrant/action/vm/boot.rb +53 -0
- data/lib/vagrant/action/vm/check_accessible.rb +23 -0
- data/lib/vagrant/action/vm/check_box.rb +33 -0
- data/lib/vagrant/action/vm/check_guest_additions.rb +38 -0
- data/lib/vagrant/action/vm/check_port_collisions.rb +89 -0
- data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +18 -0
- data/lib/vagrant/action/vm/clear_network_interfaces.rb +31 -0
- data/lib/vagrant/action/vm/clear_shared_folders.rb +18 -0
- data/lib/vagrant/action/vm/customize.rb +36 -0
- data/lib/vagrant/action/vm/default_name.rb +22 -0
- data/lib/vagrant/action/vm/destroy.rb +19 -0
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +20 -0
- data/lib/vagrant/action/vm/discard_state.rb +22 -0
- data/lib/vagrant/action/vm/export.rb +57 -0
- data/lib/vagrant/action/vm/forward_ports.rb +92 -0
- data/lib/vagrant/action/vm/halt.rb +32 -0
- data/lib/vagrant/action/vm/host_name.rb +21 -0
- data/lib/vagrant/action/vm/import.rb +48 -0
- data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
- data/lib/vagrant/action/vm/network.rb +403 -0
- data/lib/vagrant/action/vm/nfs.rb +196 -0
- data/lib/vagrant/action/vm/package.rb +23 -0
- data/lib/vagrant/action/vm/package_vagrantfile.rb +36 -0
- data/lib/vagrant/action/vm/provision.rb +61 -0
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +26 -0
- data/lib/vagrant/action/vm/prune_nfs_exports.rb +20 -0
- data/lib/vagrant/action/vm/resume.rb +20 -0
- data/lib/vagrant/action/vm/sane_defaults.rb +78 -0
- data/lib/vagrant/action/vm/setup_package_files.rb +54 -0
- data/lib/vagrant/action/vm/share_folders.rb +114 -0
- data/lib/vagrant/action/vm/suspend.rb +20 -0
- data/lib/vagrant/action/warden.rb +92 -0
- data/lib/vagrant/box.rb +44 -0
- data/lib/vagrant/box_collection.rb +58 -0
- data/lib/vagrant/cli.rb +76 -0
- data/lib/vagrant/command.rb +24 -0
- data/lib/vagrant/command/base.rb +167 -0
- data/lib/vagrant/command/box.rb +58 -0
- data/lib/vagrant/command/box_add.rb +37 -0
- data/lib/vagrant/command/box_list.rb +28 -0
- data/lib/vagrant/command/box_remove.rb +27 -0
- data/lib/vagrant/command/box_repackage.rb +27 -0
- data/lib/vagrant/command/destroy.rb +64 -0
- data/lib/vagrant/command/gem.rb +39 -0
- data/lib/vagrant/command/halt.rb +39 -0
- data/lib/vagrant/command/init.rb +40 -0
- data/lib/vagrant/command/package.rb +75 -0
- data/lib/vagrant/command/provision.rb +40 -0
- data/lib/vagrant/command/reload.rb +39 -0
- data/lib/vagrant/command/resume.rb +33 -0
- data/lib/vagrant/command/ssh.rb +90 -0
- data/lib/vagrant/command/ssh_config.rb +51 -0
- data/lib/vagrant/command/start_mixins.rb +26 -0
- data/lib/vagrant/command/status.rb +36 -0
- data/lib/vagrant/command/suspend.rb +33 -0
- data/lib/vagrant/command/up.rb +40 -0
- data/lib/vagrant/communication.rb +7 -0
- data/lib/vagrant/communication/base.rb +56 -0
- data/lib/vagrant/communication/ssh.rb +230 -0
- data/lib/vagrant/config.rb +49 -0
- data/lib/vagrant/config/base.rb +82 -0
- data/lib/vagrant/config/container.rb +37 -0
- data/lib/vagrant/config/error_recorder.rb +19 -0
- data/lib/vagrant/config/loader.rb +127 -0
- data/lib/vagrant/config/nfs.rb +8 -0
- data/lib/vagrant/config/package.rb +7 -0
- data/lib/vagrant/config/ssh.rb +27 -0
- data/lib/vagrant/config/top.rb +72 -0
- data/lib/vagrant/config/vagrant.rb +14 -0
- data/lib/vagrant/config/vm.rb +168 -0
- data/lib/vagrant/config/vm/provisioner.rb +52 -0
- data/lib/vagrant/config/vm/sub_vm.rb +17 -0
- data/lib/vagrant/data_store.rb +92 -0
- data/lib/vagrant/downloaders.rb +7 -0
- data/lib/vagrant/downloaders/base.rb +25 -0
- data/lib/vagrant/downloaders/file.rb +22 -0
- data/lib/vagrant/downloaders/http.rb +97 -0
- data/lib/vagrant/driver.rb +8 -0
- data/lib/vagrant/driver/virtualbox.rb +134 -0
- data/lib/vagrant/driver/virtualbox_4_0.rb +459 -0
- data/lib/vagrant/driver/virtualbox_4_1.rb +459 -0
- data/lib/vagrant/driver/virtualbox_4_2.rb +606 -0
- data/lib/vagrant/driver/virtualbox_base.rb +326 -0
- data/lib/vagrant/environment.rb +522 -0
- data/lib/vagrant/errors.rb +445 -0
- data/lib/vagrant/guest.rb +18 -0
- data/lib/vagrant/guest/arch.rb +56 -0
- data/lib/vagrant/guest/base.rb +99 -0
- data/lib/vagrant/guest/debian.rb +64 -0
- data/lib/vagrant/guest/fedora.rb +66 -0
- data/lib/vagrant/guest/freebsd.rb +86 -0
- data/lib/vagrant/guest/gentoo.rb +46 -0
- data/lib/vagrant/guest/linux.rb +118 -0
- data/lib/vagrant/guest/linux/config.rb +19 -0
- data/lib/vagrant/guest/linux/error.rb +9 -0
- data/lib/vagrant/guest/openbsd.rb +20 -0
- data/lib/vagrant/guest/redhat.rb +67 -0
- data/lib/vagrant/guest/solaris.rb +118 -0
- data/lib/vagrant/guest/suse.rb +17 -0
- data/lib/vagrant/guest/ubuntu.rb +23 -0
- data/lib/vagrant/hosts.rb +37 -0
- data/lib/vagrant/hosts/arch.rb +55 -0
- data/lib/vagrant/hosts/base.rb +66 -0
- data/lib/vagrant/hosts/bsd.rb +97 -0
- data/lib/vagrant/hosts/fedora.rb +47 -0
- data/lib/vagrant/hosts/freebsd.rb +41 -0
- data/lib/vagrant/hosts/gentoo.rb +20 -0
- data/lib/vagrant/hosts/linux.rb +94 -0
- data/lib/vagrant/hosts/opensuse.rb +30 -0
- data/lib/vagrant/hosts/windows.rb +16 -0
- data/lib/vagrant/plugin.rb +81 -0
- data/lib/vagrant/provisioners.rb +12 -0
- data/lib/vagrant/provisioners/base.rb +44 -0
- data/lib/vagrant/provisioners/chef.rb +168 -0
- data/lib/vagrant/provisioners/chef_client.rb +132 -0
- data/lib/vagrant/provisioners/chef_solo.rb +234 -0
- data/lib/vagrant/provisioners/puppet.rb +176 -0
- data/lib/vagrant/provisioners/puppet_server.rb +78 -0
- data/lib/vagrant/provisioners/shell.rb +103 -0
- data/lib/vagrant/registry.rb +52 -0
- data/lib/vagrant/ssh.rb +126 -0
- data/lib/vagrant/test_helpers.rb +154 -0
- data/lib/vagrant/ui.rb +168 -0
- data/lib/vagrant/util.rb +12 -0
- data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
- data/lib/vagrant/util/busy.rb +59 -0
- data/lib/vagrant/util/counter.rb +24 -0
- data/lib/vagrant/util/file_checksum.rb +38 -0
- data/lib/vagrant/util/file_mode.rb +12 -0
- data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
- data/lib/vagrant/util/is_port_open.rb +38 -0
- data/lib/vagrant/util/line_ending_helpers.rb +14 -0
- data/lib/vagrant/util/network_ip.rb +28 -0
- data/lib/vagrant/util/platform.rb +68 -0
- data/lib/vagrant/util/retryable.rb +25 -0
- data/lib/vagrant/util/safe_exec.rb +36 -0
- data/lib/vagrant/util/safe_puts.rb +31 -0
- data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
- data/lib/vagrant/util/subprocess.rb +247 -0
- data/lib/vagrant/util/template_renderer.rb +83 -0
- data/lib/vagrant/version.rb +6 -0
- data/lib/vagrant/vm.rb +195 -0
- data/tasks/acceptance.rake +113 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/test.rake +20 -0
- data/templates/commands/init/Vagrantfile.erb +99 -0
- data/templates/commands/ssh_config/config.erb +15 -0
- data/templates/config/validation_failed.erb +7 -0
- data/templates/guests/arch/network_dhcp.erb +7 -0
- data/templates/guests/arch/network_static.erb +7 -0
- data/templates/guests/debian/network_dhcp.erb +6 -0
- data/templates/guests/debian/network_static.erb +7 -0
- data/templates/guests/fedora/network_dhcp.erb +6 -0
- data/templates/guests/fedora/network_static.erb +13 -0
- data/templates/guests/freebsd/network_dhcp.erb +3 -0
- data/templates/guests/freebsd/network_static.erb +3 -0
- data/templates/guests/gentoo/network_dhcp.erb +4 -0
- data/templates/guests/gentoo/network_static.erb +4 -0
- data/templates/guests/redhat/network_dhcp.erb +6 -0
- data/templates/guests/redhat/network_static.erb +7 -0
- data/templates/locales/en.yml +759 -0
- data/templates/nfs/exports.erb +5 -0
- data/templates/nfs/exports_freebsd.erb +5 -0
- data/templates/nfs/exports_linux.erb +5 -0
- data/templates/package_Vagrantfile.erb +11 -0
- data/templates/provisioners/chef_client/client.erb +32 -0
- data/templates/provisioners/chef_solo/solo.erb +25 -0
- data/test/acceptance/base.rb +48 -0
- data/test/acceptance/box_test.rb +99 -0
- data/test/acceptance/destroy_test.rb +37 -0
- data/test/acceptance/halt_test.rb +72 -0
- data/test/acceptance/init_test.rb +33 -0
- data/test/acceptance/networking/host_only_test.rb +37 -0
- data/test/acceptance/networking/port_forward_test.rb +125 -0
- data/test/acceptance/package_test.rb +46 -0
- data/test/acceptance/provisioning/basic_test.rb +61 -0
- data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
- data/test/acceptance/provisioning/shell_test.rb +53 -0
- data/test/acceptance/resume_test.rb +17 -0
- data/test/acceptance/shared_folders_test.rb +84 -0
- data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
- data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
- data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/ssh_test.rb +46 -0
- data/test/acceptance/support/config.rb +42 -0
- data/test/acceptance/support/isolated_environment.rb +117 -0
- data/test/acceptance/support/matchers/have_color.rb +9 -0
- data/test/acceptance/support/matchers/match_output.rb +14 -0
- data/test/acceptance/support/matchers/succeed.rb +14 -0
- data/test/acceptance/support/network_tests.rb +29 -0
- data/test/acceptance/support/output.rb +95 -0
- data/test/acceptance/support/shared/base_context.rb +72 -0
- data/test/acceptance/support/shared/command_examples.rb +33 -0
- data/test/acceptance/support/virtualbox.rb +36 -0
- data/test/acceptance/suspend_test.rb +56 -0
- data/test/acceptance/up_basic_test.rb +33 -0
- data/test/acceptance/up_with_box_url.rb +40 -0
- data/test/acceptance/vagrant_test.rb +47 -0
- data/test/acceptance/version_test.rb +15 -0
- data/test/buildbot/README.md +72 -0
- data/test/buildbot/buildbot_config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/loader.py +24 -0
- data/test/buildbot/buildbot_config/config/master.py +24 -0
- data/test/buildbot/buildbot_config/config/slave.py +22 -0
- data/test/buildbot/buildbot_config/master/__init__.py +6 -0
- data/test/buildbot/buildbot_config/master/builders.py +78 -0
- data/test/buildbot/buildbot_config/master/buildsteps.py +100 -0
- data/test/buildbot/buildbot_config/master/change_sources.py +8 -0
- data/test/buildbot/buildbot_config/master/schedulers.py +32 -0
- data/test/buildbot/buildbot_config/master/slaves.py +60 -0
- data/test/buildbot/buildbot_config/master/status.py +52 -0
- data/test/buildbot/master/Makefile.sample +28 -0
- data/test/buildbot/master/buildbot.tac +36 -0
- data/test/buildbot/master/master.cfg +67 -0
- data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
- data/test/buildbot/master/public_html/default.css +545 -0
- data/test/buildbot/master/public_html/favicon.ico +0 -0
- data/test/buildbot/master/public_html/robots.txt +10 -0
- data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +356 -0
- data/test/buildbot/master/public_html/static/css/prettify.css +97 -0
- data/test/buildbot/master/public_html/static/css/syntax.css +60 -0
- data/test/buildbot/master/public_html/static/css/vagrant.base.css +205 -0
- data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
- data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
- data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +80 -0
- data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +4 -0
- data/test/buildbot/master/templates/authfail.html +9 -0
- data/test/buildbot/master/templates/build.html +205 -0
- data/test/buildbot/master/templates/builder.html +118 -0
- data/test/buildbot/master/templates/builders.html +33 -0
- data/test/buildbot/master/templates/buildslave.html +72 -0
- data/test/buildbot/master/templates/buildslaves.html +70 -0
- data/test/buildbot/master/templates/change.html +15 -0
- data/test/buildbot/master/templates/layouts/base.html +58 -0
- data/test/buildbot/master/templates/macros/box.html +37 -0
- data/test/buildbot/master/templates/macros/build_line.html +50 -0
- data/test/buildbot/master/templates/macros/change.html +81 -0
- data/test/buildbot/master/templates/macros/forms.html +300 -0
- data/test/buildbot/master/templates/root.html +42 -0
- data/test/buildbot/master/templates/waterfall.html +53 -0
- data/test/buildbot/requirements.txt +4 -0
- data/test/buildbot/scripts/deploy.sh +38 -0
- data/test/buildbot/scripts/setup.sh +107 -0
- data/test/buildbot/slave/buildbot.tac +43 -0
- data/test/buildbot/slave/info/admin +1 -0
- data/test/buildbot/slave/info/host +1 -0
- data/test/buildbot/tests/__init__.py +0 -0
- data/test/buildbot/tests/master/__init__.py +0 -0
- data/test/buildbot/tests/master/test_slaves.py +41 -0
- data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
- data/test/config/acceptance_boxes.yml +7 -0
- data/test/support/isolated_environment.rb +46 -0
- data/test/support/tempdir.rb +34 -0
- data/test/unit/base.rb +21 -0
- data/test/unit/support/isolated_environment.rb +47 -0
- data/test/unit/support/shared/base_context.rb +30 -0
- data/test/unit/vagrant/action/builder_test.rb +156 -0
- data/test/unit/vagrant/action/environment_test.rb +16 -0
- data/test/unit/vagrant/action/runner_test.rb +65 -0
- data/test/unit/vagrant/action/warden_test.rb +92 -0
- data/test/unit/vagrant/box_collection_test.rb +56 -0
- data/test/unit/vagrant/box_test.rb +34 -0
- data/test/unit/vagrant/command/base_test.rb +150 -0
- data/test/unit/vagrant/config/base_test.rb +48 -0
- data/test/unit/vagrant/config/loader_test.rb +79 -0
- data/test/unit/vagrant/config/ssh_test.rb +17 -0
- data/test/unit/vagrant/config/top_test.rb +69 -0
- data/test/unit/vagrant/config/vm_test.rb +71 -0
- data/test/unit/vagrant/config_test.rb +27 -0
- data/test/unit/vagrant/data_store_test.rb +79 -0
- data/test/unit/vagrant/downloaders/base_test.rb +18 -0
- data/test/unit/vagrant/downloaders/file_test.rb +75 -0
- data/test/unit/vagrant/downloaders/http_test.rb +19 -0
- data/test/unit/vagrant/environment_test.rb +220 -0
- data/test/unit/vagrant/hosts_test.rb +36 -0
- data/test/unit/vagrant/registry_test.rb +74 -0
- data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
- data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
- data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
- data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
- data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
- data/test/unit/vagrant/util/network_ip_test.rb +17 -0
- data/test/unit/vagrant/util/retryable_test.rb +106 -0
- data/test/unit/vagrant_test.rb +27 -0
- data/test/unit_legacy/locales/en.yml +8 -0
- data/test/unit_legacy/test_helper.rb +32 -0
- data/test/unit_legacy/vagrant/action/box/destroy_test.rb +18 -0
- data/test/unit_legacy/vagrant/action/box/download_test.rb +125 -0
- data/test/unit_legacy/vagrant/action/box/package_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +84 -0
- data/test/unit_legacy/vagrant/action/box/verify_test.rb +30 -0
- data/test/unit_legacy/vagrant/action/env/set_test.rb +24 -0
- data/test/unit_legacy/vagrant/action/general/package_test.rb +268 -0
- data/test/unit_legacy/vagrant/action/general/validate_test.rb +31 -0
- data/test/unit_legacy/vagrant/action/vm/boot_test.rb +66 -0
- data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +61 -0
- data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +61 -0
- data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +9 -0
- data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
- data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +52 -0
- data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
- data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +40 -0
- data/test/unit_legacy/vagrant/action/vm/customize_test.rb +37 -0
- data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
- data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +45 -0
- data/test/unit_legacy/vagrant/action/vm/export_test.rb +107 -0
- data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +77 -0
- data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +197 -0
- data/test/unit_legacy/vagrant/action/vm/halt_test.rb +79 -0
- data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +36 -0
- data/test/unit_legacy/vagrant/action/vm/import_test.rb +66 -0
- data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +40 -0
- data/test/unit_legacy/vagrant/action/vm/modify_test.rb +38 -0
- data/test/unit_legacy/vagrant/action/vm/network_test.rb +286 -0
- data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +26 -0
- data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +260 -0
- data/test/unit_legacy/vagrant/action/vm/package_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
- data/test/unit_legacy/vagrant/action/vm/provision_test.rb +65 -0
- data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +56 -0
- data/test/unit_legacy/vagrant/action/vm/resume_test.rb +35 -0
- data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +144 -0
- data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +35 -0
- data/test/unit_legacy/vagrant/action_test.rb +89 -0
- data/test/unit_legacy/vagrant/box_collection_test.rb +45 -0
- data/test/unit_legacy/vagrant/box_test.rb +74 -0
- data/test/unit_legacy/vagrant/cli_test.rb +35 -0
- data/test/unit_legacy/vagrant/command/base_test.rb +23 -0
- data/test/unit_legacy/vagrant/command/group_base_test.rb +15 -0
- data/test/unit_legacy/vagrant/command/helpers_test.rb +88 -0
- data/test/unit_legacy/vagrant/command/init_test.rb +10 -0
- data/test/unit_legacy/vagrant/command/package_test.rb +27 -0
- data/test/unit_legacy/vagrant/config/base_test.rb +52 -0
- data/test/unit_legacy/vagrant/config/error_recorder_test.rb +18 -0
- data/test/unit_legacy/vagrant/config/ssh_test.rb +12 -0
- data/test/unit_legacy/vagrant/config/vagrant_test.rb +35 -0
- data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +92 -0
- data/test/unit_legacy/vagrant/config/vm_test.rb +47 -0
- data/test/unit_legacy/vagrant/config_test.rb +148 -0
- data/test/unit_legacy/vagrant/downloaders/http_test.rb +93 -0
- data/test/unit_legacy/vagrant/environment_test.rb +539 -0
- data/test/unit_legacy/vagrant/errors_test.rb +42 -0
- data/test/unit_legacy/vagrant/hosts/base_test.rb +46 -0
- data/test/unit_legacy/vagrant/hosts/bsd_test.rb +53 -0
- data/test/unit_legacy/vagrant/hosts/linux_test.rb +54 -0
- data/test/unit_legacy/vagrant/plugin_test.rb +9 -0
- data/test/unit_legacy/vagrant/provisioners/base_test.rb +63 -0
- data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +190 -0
- data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +115 -0
- data/test/unit_legacy/vagrant/provisioners/chef_test.rb +209 -0
- data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +68 -0
- data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +182 -0
- data/test/unit_legacy/vagrant/provisioners/shell_test.rb +79 -0
- data/test/unit_legacy/vagrant/ssh/session_test.rb +40 -0
- data/test/unit_legacy/vagrant/ssh_test.rb +304 -0
- data/test/unit_legacy/vagrant/systems/base_test.rb +18 -0
- data/test/unit_legacy/vagrant/systems/linux_test.rb +104 -0
- data/test/unit_legacy/vagrant/util/busy_test.rb +106 -0
- data/test/unit_legacy/vagrant/util/counter_test.rb +29 -0
- data/test/unit_legacy/vagrant/util/platform_test.rb +18 -0
- data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +43 -0
- data/test/unit_legacy/vagrant/util/template_renderer_test.rb +145 -0
- data/test/unit_legacy/vagrant/vm_test.rb +300 -0
- data/vagrant-fixed-ssh.gemspec +70 -0
- metadata +712 -0
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'erubis'
|
3
|
+
|
4
|
+
module Vagrant
|
5
|
+
module Util
|
6
|
+
# This class is used to render the ERB templates in the
|
7
|
+
# `GEM_ROOT/templates` directory.
|
8
|
+
class TemplateRenderer < OpenStruct
|
9
|
+
class << self
|
10
|
+
# Render a given template and return the result. This method optionally
|
11
|
+
# takes a block which will be passed the renderer prior to rendering, which
|
12
|
+
# allows the caller to set any view variables within the renderer itself.
|
13
|
+
#
|
14
|
+
# @return [String] Rendered template
|
15
|
+
def render(*args)
|
16
|
+
render_with(:render, *args)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Render a given string and return the result. This method optionally
|
20
|
+
# takes a block which will be passed the renderer prior to rendering, which
|
21
|
+
# allows the caller to set any view variables within the renderer itself.
|
22
|
+
#
|
23
|
+
# @param [String] template The template data string.
|
24
|
+
# @return [String] Rendered template
|
25
|
+
def render_string(*args)
|
26
|
+
render_with(:render_string, *args)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Method used internally to DRY out the other renderers. This method
|
30
|
+
# creates and sets up the renderer before calling a specified method on it.
|
31
|
+
def render_with(method, template, data={})
|
32
|
+
renderer = new(template, data)
|
33
|
+
yield renderer if block_given?
|
34
|
+
renderer.send(method.to_sym)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def initialize(template, data = {})
|
39
|
+
super()
|
40
|
+
|
41
|
+
data[:template] = template
|
42
|
+
data.each do |key, value|
|
43
|
+
send("#{key}=", value)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Renders the template using the class intance as the binding. Because the
|
48
|
+
# renderer inherits from `OpenStruct`, additional view variables can be
|
49
|
+
# added like normal accessors.
|
50
|
+
#
|
51
|
+
# @return [String]
|
52
|
+
def render
|
53
|
+
# TODO: Seems like a pretty dirty way to do this. Perhaps refactor this
|
54
|
+
old_template = template
|
55
|
+
result = nil
|
56
|
+
File.open(full_template_path, 'r') do |f|
|
57
|
+
self.template = f.read
|
58
|
+
result = render_string
|
59
|
+
end
|
60
|
+
|
61
|
+
result
|
62
|
+
ensure
|
63
|
+
self.template = old_template
|
64
|
+
end
|
65
|
+
|
66
|
+
# Renders a template, handling the template as a string, but otherwise
|
67
|
+
# acting the same way as {#render}.
|
68
|
+
#
|
69
|
+
# @return [String]
|
70
|
+
def render_string
|
71
|
+
Erubis::Eruby.new(template, :trim => true).result(binding)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Returns the full path to the template, taking into accoun the gem directory
|
75
|
+
# and adding the `.erb` extension to the end.
|
76
|
+
#
|
77
|
+
# @return [String]
|
78
|
+
def full_template_path
|
79
|
+
Vagrant.source_root.join('templates', "#{template}.erb").to_s.squeeze("/")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/lib/vagrant/vm.rb
ADDED
@@ -0,0 +1,195 @@
|
|
1
|
+
require 'log4r'
|
2
|
+
|
3
|
+
module Vagrant
|
4
|
+
class VM
|
5
|
+
include Vagrant::Util
|
6
|
+
|
7
|
+
attr_reader :uuid
|
8
|
+
attr_reader :env
|
9
|
+
attr_reader :name
|
10
|
+
attr_reader :vm
|
11
|
+
attr_reader :box
|
12
|
+
attr_reader :config
|
13
|
+
attr_reader :driver
|
14
|
+
|
15
|
+
def initialize(name, env, config, opts=nil)
|
16
|
+
@logger = Log4r::Logger.new("vagrant::vm")
|
17
|
+
|
18
|
+
@name = name
|
19
|
+
@vm = nil
|
20
|
+
@env = env
|
21
|
+
@config = config
|
22
|
+
@box = env.boxes.find(config.vm.box)
|
23
|
+
|
24
|
+
opts ||= {}
|
25
|
+
if opts[:base]
|
26
|
+
# The name is the ID we use.
|
27
|
+
@uuid = name
|
28
|
+
else
|
29
|
+
# Load the UUID if its saved.
|
30
|
+
active = env.local_data[:active] || {}
|
31
|
+
@uuid = active[@name.to_s]
|
32
|
+
end
|
33
|
+
|
34
|
+
# Reload ourselves to get the state
|
35
|
+
reload!
|
36
|
+
|
37
|
+
# Load the associated guest.
|
38
|
+
load_guest!
|
39
|
+
@loaded_guest_distro = false
|
40
|
+
end
|
41
|
+
|
42
|
+
# Loads the guest associated with the VM. The guest class is
|
43
|
+
# responsible for OS-specific functionality. More information
|
44
|
+
# can be found by reading the documentation on {Vagrant::Guest::Base}.
|
45
|
+
#
|
46
|
+
# **This method should never be called manually.**
|
47
|
+
def load_guest!(guest=nil)
|
48
|
+
guest ||= config.vm.guest
|
49
|
+
@logger.info("Loading guest: #{guest}")
|
50
|
+
|
51
|
+
if guest.is_a?(Class)
|
52
|
+
raise Errors::VMGuestError, :_key => :invalid_class, :guest => guest.to_s if !(guest <= Guest::Base)
|
53
|
+
@guest = guest.new(self)
|
54
|
+
elsif guest.is_a?(Symbol)
|
55
|
+
guest_klass = Vagrant.guests.get(guest)
|
56
|
+
raise Errors::VMGuestError, :_key => :unknown_type, :guest => guest.to_s if !guest_klass
|
57
|
+
@guest = guest_klass.new(self)
|
58
|
+
else
|
59
|
+
raise Errors::VMGuestError, :unspecified
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Returns a channel object to communicate with the virtual
|
64
|
+
# machine.
|
65
|
+
def channel
|
66
|
+
@channel ||= Communication::SSH.new(self)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Returns the guest for this VM, loading the distro of the system if
|
70
|
+
# we can.
|
71
|
+
def guest
|
72
|
+
if !@loaded_guest_distro && state == :running
|
73
|
+
# Load the guest distro for the first time
|
74
|
+
result = @guest.distro_dispatch
|
75
|
+
load_guest!(result)
|
76
|
+
@loaded_guest_distro = true
|
77
|
+
end
|
78
|
+
|
79
|
+
@guest
|
80
|
+
end
|
81
|
+
|
82
|
+
# Access the {Vagrant::SSH} object associated with this VM, which
|
83
|
+
# is used to get SSH credentials with the virtual machine.
|
84
|
+
def ssh
|
85
|
+
@ssh ||= SSH.new(self)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Returns the state of the VM as a symbol.
|
89
|
+
#
|
90
|
+
# @return [Symbol]
|
91
|
+
def state
|
92
|
+
return :not_created if !@uuid
|
93
|
+
state = @driver.read_state
|
94
|
+
return :not_created if !state
|
95
|
+
return state
|
96
|
+
end
|
97
|
+
|
98
|
+
# Returns a boolean true if the VM has been created, otherwise
|
99
|
+
# returns false.
|
100
|
+
#
|
101
|
+
# @return [Boolean]
|
102
|
+
def created?
|
103
|
+
state != :not_created
|
104
|
+
end
|
105
|
+
|
106
|
+
# Sets the currently active VM for this VM. If the VM is a valid,
|
107
|
+
# created virtual machine, then it will also update the local data
|
108
|
+
# to persist the VM. Otherwise, it will remove itself from the
|
109
|
+
# local data (if it exists).
|
110
|
+
def uuid=(value)
|
111
|
+
env.local_data[:active] ||= {}
|
112
|
+
if value
|
113
|
+
env.local_data[:active][name.to_s] = value
|
114
|
+
else
|
115
|
+
env.local_data[:active].delete(name.to_s)
|
116
|
+
end
|
117
|
+
|
118
|
+
# Commit the local data so that the next time vagrant is initialized,
|
119
|
+
# it realizes the VM exists
|
120
|
+
env.local_data.commit
|
121
|
+
|
122
|
+
# Store the uuid and reload the instance
|
123
|
+
@uuid = value
|
124
|
+
reload!
|
125
|
+
end
|
126
|
+
|
127
|
+
def reload!
|
128
|
+
begin
|
129
|
+
@driver = Driver::VirtualBox.new(@uuid)
|
130
|
+
rescue Driver::VirtualBox::VMNotFound
|
131
|
+
# Clear the UUID since this VM doesn't exist.
|
132
|
+
@uuid = nil
|
133
|
+
|
134
|
+
# Reset the driver. This shouldn't raise a VMNotFound since we won't
|
135
|
+
# feed it a UUID.
|
136
|
+
@driver = Driver::VirtualBox.new
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def package(options=nil)
|
141
|
+
run_action(:package, { "validate" => false }.merge(options || {}))
|
142
|
+
end
|
143
|
+
|
144
|
+
def up(options=nil)
|
145
|
+
run_action(:up, options)
|
146
|
+
end
|
147
|
+
|
148
|
+
def start(options=nil)
|
149
|
+
return if state == :running
|
150
|
+
return resume if state == :saved
|
151
|
+
|
152
|
+
run_action(:start, options)
|
153
|
+
end
|
154
|
+
|
155
|
+
def halt(options=nil)
|
156
|
+
run_action(:halt, options)
|
157
|
+
end
|
158
|
+
|
159
|
+
def reload(options=nil)
|
160
|
+
run_action(:reload, options)
|
161
|
+
end
|
162
|
+
|
163
|
+
def provision
|
164
|
+
run_action(:provision)
|
165
|
+
end
|
166
|
+
|
167
|
+
def destroy
|
168
|
+
run_action(:destroy)
|
169
|
+
end
|
170
|
+
|
171
|
+
def suspend
|
172
|
+
run_action(:suspend)
|
173
|
+
end
|
174
|
+
|
175
|
+
def resume
|
176
|
+
run_action(:resume)
|
177
|
+
end
|
178
|
+
|
179
|
+
def ui
|
180
|
+
return @_ui if defined?(@_ui)
|
181
|
+
@_ui = @env.ui.dup
|
182
|
+
@_ui.resource = @name
|
183
|
+
@_ui
|
184
|
+
end
|
185
|
+
|
186
|
+
def run_action(name, options=nil)
|
187
|
+
options = {
|
188
|
+
:vm => self,
|
189
|
+
:ui => ui
|
190
|
+
}.merge(options || {})
|
191
|
+
|
192
|
+
env.action_runner.run(name, options)
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'digest/sha1'
|
2
|
+
require 'net/http'
|
3
|
+
require 'pathname'
|
4
|
+
require 'uri'
|
5
|
+
require 'yaml'
|
6
|
+
|
7
|
+
require 'childprocess'
|
8
|
+
|
9
|
+
require 'vagrant/util/file_checksum'
|
10
|
+
|
11
|
+
namespace :acceptance do
|
12
|
+
desc "Downloads the boxes required for running the acceptance tests."
|
13
|
+
task :boxes, :directory do |t, args|
|
14
|
+
# Create the directory where the boxes will be downloaded
|
15
|
+
box_dir = Pathname.new(args[:directory] || File.expand_path("../../boxes", __FILE__))
|
16
|
+
box_dir.mkpath
|
17
|
+
puts "Boxes will be placed in: #{box_dir}"
|
18
|
+
|
19
|
+
# Load the required boxes
|
20
|
+
boxes = YAML.load_file(File.expand_path("../../test/config/acceptance_boxes.yml", __FILE__))
|
21
|
+
|
22
|
+
boxes.each do |box|
|
23
|
+
puts "Box: #{box["name"]}"
|
24
|
+
box_file = box_dir.join("#{box["name"]}.box")
|
25
|
+
checksum = FileChecksum.new(box_file, Digest::SHA1)
|
26
|
+
|
27
|
+
# If the box exists, we need to check the checksum and determine if we need
|
28
|
+
# to redownload the file.
|
29
|
+
if box_file.exist?
|
30
|
+
print "Box exists, checking SHA1 sum... "
|
31
|
+
if checksum.checksum == box["checksum"]
|
32
|
+
print "OK\n"
|
33
|
+
next
|
34
|
+
else
|
35
|
+
print "FAIL\n"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Download the file. Note that this has no error checking and just uses
|
40
|
+
# pure net/http. There could be a better way.
|
41
|
+
puts "Downloading: #{box["url"]}"
|
42
|
+
destination = box_file.open("wb")
|
43
|
+
uri = URI.parse(box["url"])
|
44
|
+
Net::HTTP.new(uri.host, uri.port).start do |http|
|
45
|
+
http.request_get(uri.request_uri) do |response|
|
46
|
+
total = response.content_length
|
47
|
+
progress = 0
|
48
|
+
count = 0
|
49
|
+
|
50
|
+
response.read_body do |segment|
|
51
|
+
# Really elementary progress meter
|
52
|
+
progress += segment.length
|
53
|
+
count += 1
|
54
|
+
puts "Progress: #{(progress.to_f / total.to_f) * 100}%" if count % 300 == 0
|
55
|
+
|
56
|
+
# Write out to the destination file
|
57
|
+
destination.write(segment)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
destination.close
|
63
|
+
|
64
|
+
# Check the checksum of the new file to verify that it
|
65
|
+
# downloaded properly. This shouldn't happen, but it can!
|
66
|
+
if checksum.checksum != box["checksum"]
|
67
|
+
puts "Checksum didn't match! Download was corrupt!"
|
68
|
+
abort
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
desc "Generates the configuration for acceptance tests from current source."
|
74
|
+
task :config, :box_dir do |t, args|
|
75
|
+
require File.expand_path("../../lib/vagrant/version", __FILE__)
|
76
|
+
require File.expand_path('../../test/support/tempdir', __FILE__)
|
77
|
+
|
78
|
+
# Get the directory for the boxes
|
79
|
+
box_dir = Pathname.new(args[:box_dir] || File.expand_path("../../boxes", __FILE__))
|
80
|
+
|
81
|
+
# Generate the binstubs for the Vagrant binary
|
82
|
+
tempdir = Tempdir.new
|
83
|
+
process = ChildProcess.build("bundle", "install", "--binstubs", tempdir.path)
|
84
|
+
process.io.inherit!
|
85
|
+
process.start
|
86
|
+
process.poll_for_exit(64000)
|
87
|
+
if process.exit_code != 0
|
88
|
+
# Bundle install failed...
|
89
|
+
puts "Bundle install failed!"
|
90
|
+
abort
|
91
|
+
end
|
92
|
+
|
93
|
+
# Generate the actual configuration
|
94
|
+
config = {
|
95
|
+
"vagrant_path" => File.join(tempdir.path, "vagrant"),
|
96
|
+
"vagrant_version" => Vagrant::VERSION,
|
97
|
+
"env" => {
|
98
|
+
"BUNDLE_GEMFILE" => File.expand_path("../../Gemfile", __FILE__)
|
99
|
+
},
|
100
|
+
"box_directory" => box_dir.to_s
|
101
|
+
}
|
102
|
+
|
103
|
+
File.open("acceptance_config.yml", "w+") do |f|
|
104
|
+
f.write(YAML.dump(config))
|
105
|
+
end
|
106
|
+
|
107
|
+
puts <<-OUTPUT
|
108
|
+
Acceptance test configuration is now in this directory in
|
109
|
+
"acceptance_config.yml." Set your ACCEPTANCE_CONFIG environmental
|
110
|
+
variable to this file and run any of the acceptance tests now.
|
111
|
+
OUTPUT
|
112
|
+
end
|
113
|
+
end
|
data/tasks/bundler.rake
ADDED
data/tasks/test.rake
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
namespace :test do
|
5
|
+
RSpec::Core::RakeTask.new do |t|
|
6
|
+
t.name = "unit"
|
7
|
+
t.pattern = "test/unit/**/*_test.rb"
|
8
|
+
end
|
9
|
+
|
10
|
+
Rake::TestTask.new do |t|
|
11
|
+
t.name = "unit_old"
|
12
|
+
t.libs << "test/unit_legacy"
|
13
|
+
t.pattern = "test/unit_legacy/**/*_test.rb"
|
14
|
+
end
|
15
|
+
|
16
|
+
RSpec::Core::RakeTask.new do |t|
|
17
|
+
t.name = "acceptance"
|
18
|
+
t.pattern = "test/acceptance/**/*_test.rb"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
Vagrant::Config.run do |config|
|
5
|
+
# All Vagrant configuration is done here. The most common configuration
|
6
|
+
# options are documented and commented below. For a complete reference,
|
7
|
+
# please see the online documentation at vagrantup.com.
|
8
|
+
|
9
|
+
# Every Vagrant virtual environment requires a box to build off of.
|
10
|
+
config.vm.box = "<%= box_name %>"
|
11
|
+
|
12
|
+
# The url from where the 'config.vm.box' box will be fetched if it
|
13
|
+
# doesn't already exist on the user's system.
|
14
|
+
<% if box_url.nil? %># <% end %>config.vm.box_url = "<%= box_url || "http://domain.com/path/to/above.box" %>"
|
15
|
+
|
16
|
+
# Boot with a GUI so you can see the screen. (Default is headless)
|
17
|
+
# config.vm.boot_mode = :gui
|
18
|
+
|
19
|
+
# Assign this VM to a host-only network IP, allowing you to access it
|
20
|
+
# via the IP. Host-only networks can talk to the host machine as well as
|
21
|
+
# any other machines on the same network, but cannot be accessed (through this
|
22
|
+
# network interface) by any external networks.
|
23
|
+
# config.vm.network :hostonly, "192.168.33.10"
|
24
|
+
|
25
|
+
# Assign this VM to a bridged network, allowing you to connect directly to a
|
26
|
+
# network using the host's network device. This makes the VM appear as another
|
27
|
+
# physical device on your network.
|
28
|
+
# config.vm.network :bridged
|
29
|
+
|
30
|
+
# Forward a port from the guest to the host, which allows for outside
|
31
|
+
# computers to access the VM, whereas host only networking does not.
|
32
|
+
# config.vm.forward_port 80, 8080
|
33
|
+
|
34
|
+
# Share an additional folder to the guest VM. The first argument is
|
35
|
+
# an identifier, the second is the path on the guest to mount the
|
36
|
+
# folder, and the third is the path on the host to the actual folder.
|
37
|
+
# config.vm.share_folder "v-data", "/vagrant_data", "../data"
|
38
|
+
|
39
|
+
# Enable provisioning with Puppet stand alone. Puppet manifests
|
40
|
+
# are contained in a directory path relative to this Vagrantfile.
|
41
|
+
# You will need to create the manifests directory and a manifest in
|
42
|
+
# the file <%= box_name %>.pp in the manifests_path directory.
|
43
|
+
#
|
44
|
+
# An example Puppet manifest to provision the message of the day:
|
45
|
+
#
|
46
|
+
# # group { "puppet":
|
47
|
+
# # ensure => "present",
|
48
|
+
# # }
|
49
|
+
# #
|
50
|
+
# # File { owner => 0, group => 0, mode => 0644 }
|
51
|
+
# #
|
52
|
+
# # file { '/etc/motd':
|
53
|
+
# # content => "Welcome to your Vagrant-built virtual machine!
|
54
|
+
# # Managed by Puppet.\n"
|
55
|
+
# # }
|
56
|
+
#
|
57
|
+
# config.vm.provision :puppet do |puppet|
|
58
|
+
# puppet.manifests_path = "manifests"
|
59
|
+
# puppet.manifest_file = "<%= box_name %>.pp"
|
60
|
+
# end
|
61
|
+
|
62
|
+
# Enable provisioning with chef solo, specifying a cookbooks path, roles
|
63
|
+
# path, and data_bags path (all relative to this Vagrantfile), and adding
|
64
|
+
# some recipes and/or roles.
|
65
|
+
#
|
66
|
+
# config.vm.provision :chef_solo do |chef|
|
67
|
+
# chef.cookbooks_path = "../my-recipes/cookbooks"
|
68
|
+
# chef.roles_path = "../my-recipes/roles"
|
69
|
+
# chef.data_bags_path = "../my-recipes/data_bags"
|
70
|
+
# chef.add_recipe "mysql"
|
71
|
+
# chef.add_role "web"
|
72
|
+
#
|
73
|
+
# # You may also specify custom JSON attributes:
|
74
|
+
# chef.json = { :mysql_password => "foo" }
|
75
|
+
# end
|
76
|
+
|
77
|
+
# Enable provisioning with chef server, specifying the chef server URL,
|
78
|
+
# and the path to the validation key (relative to this Vagrantfile).
|
79
|
+
#
|
80
|
+
# The Opscode Platform uses HTTPS. Substitute your organization for
|
81
|
+
# ORGNAME in the URL and validation key.
|
82
|
+
#
|
83
|
+
# If you have your own Chef Server, use the appropriate URL, which may be
|
84
|
+
# HTTP instead of HTTPS depending on your configuration. Also change the
|
85
|
+
# validation key to validation.pem.
|
86
|
+
#
|
87
|
+
# config.vm.provision :chef_client do |chef|
|
88
|
+
# chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
|
89
|
+
# chef.validation_key_path = "ORGNAME-validator.pem"
|
90
|
+
# end
|
91
|
+
#
|
92
|
+
# If you're using the Opscode platform, your validator client is
|
93
|
+
# ORGNAME-validator, replacing ORGNAME with your organization name.
|
94
|
+
#
|
95
|
+
# IF you have your own Chef Server, the default validation client name is
|
96
|
+
# chef-validator, unless you changed the configuration.
|
97
|
+
#
|
98
|
+
# chef.validation_client_name = "ORGNAME-validator"
|
99
|
+
end
|