tnargav 1.2.3 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +19 -3
- data/CHANGELOG.md +311 -0
- data/bin/vagrant +12 -0
- data/config/default.rb +2 -4
- data/keys/README.md +0 -7
- data/lib/vagrant.rb +7 -0
- data/lib/vagrant/action.rb +2 -0
- data/lib/vagrant/action/builtin/box_add.rb +12 -1
- data/lib/vagrant/action/builtin/confirm.rb +1 -0
- data/lib/vagrant/action/builtin/graceful_halt.rb +9 -5
- data/lib/vagrant/action/builtin/handle_box_url.rb +16 -7
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +1 -1
- data/lib/vagrant/action/builtin/mixin_provisioners.rb +43 -0
- data/lib/vagrant/action/builtin/nfs.rb +18 -8
- data/lib/vagrant/action/builtin/provision.rb +30 -21
- data/lib/vagrant/action/builtin/provisioner_cleanup.rb +35 -0
- data/lib/vagrant/action/builtin/wait_for_communicator.rb +84 -0
- data/lib/vagrant/action/warden.rb +2 -1
- data/lib/vagrant/box_collection.rb +62 -44
- data/lib/vagrant/cli.rb +1 -9
- data/lib/vagrant/config/v2/root.rb +6 -0
- data/lib/vagrant/environment.rb +27 -51
- data/lib/vagrant/errors.rb +33 -1
- data/lib/vagrant/guest.rb +2 -2
- data/lib/vagrant/machine.rb +14 -22
- data/lib/vagrant/plugin/v2/command.rb +4 -1
- data/lib/vagrant/plugin/v2/communicator.rb +21 -0
- data/lib/vagrant/plugin/v2/guest.rb +1 -56
- data/lib/vagrant/plugin/v2/provisioner.rb +6 -0
- data/lib/vagrant/util/downloader.rb +7 -2
- data/lib/vagrant/util/platform.rb +43 -0
- data/lib/vagrant/util/ssh.rb +5 -0
- data/lib/vagrant/util/subprocess.rb +16 -2
- data/lib/vagrant/version.rb +1 -1
- data/plugins/commands/box/command/remove.rb +22 -2
- data/plugins/commands/box/command/repackage.rb +1 -1
- data/plugins/commands/destroy/command.rb +8 -3
- data/plugins/commands/help/command.rb +12 -0
- data/plugins/commands/help/plugin.rb +17 -0
- data/plugins/commands/plugin/action.rb +11 -0
- data/plugins/commands/plugin/action/install_gem.rb +26 -1
- data/plugins/commands/plugin/action/plugin_exists_check.rb +26 -0
- data/plugins/commands/plugin/command/install.rb +4 -21
- data/plugins/commands/plugin/command/mixin_install_opts.rb +30 -0
- data/plugins/commands/plugin/command/root.rb +5 -0
- data/plugins/commands/plugin/command/update.rb +41 -0
- data/plugins/commands/reload/command.rb +4 -0
- data/plugins/commands/status/command.rb +6 -1
- data/plugins/commands/up/command.rb +10 -0
- data/plugins/commands/up/start_mixins.rb +12 -1
- data/plugins/communicators/ssh/communicator.rb +61 -6
- data/plugins/guests/arch/cap/change_host_name.rb +1 -2
- data/plugins/guests/arch/cap/configure_networks.rb +6 -0
- data/plugins/guests/coreos/cap/change_host_name.rb +15 -0
- data/plugins/guests/coreos/cap/configure_networks.rb +72 -0
- data/plugins/guests/coreos/guest.rb +9 -0
- data/plugins/guests/coreos/plugin.rb +25 -0
- data/plugins/guests/darwin/cap/change_host_name.rb +14 -0
- data/plugins/guests/darwin/cap/configure_networks.rb +52 -0
- data/plugins/guests/darwin/cap/halt.rb +16 -0
- data/plugins/guests/darwin/cap/mount_nfs_folder.rb +25 -0
- data/plugins/guests/darwin/cap/mount_vmware_shared_folder.rb +36 -0
- data/plugins/guests/darwin/cap/shell_expand_guest_path.rb +26 -0
- data/plugins/guests/darwin/cap/verify_vmware_hgfs.rb +12 -0
- data/plugins/guests/darwin/guest.rb +15 -0
- data/plugins/guests/darwin/plugin.rb +50 -0
- data/plugins/guests/debian/cap/change_host_name.rb +1 -0
- data/plugins/guests/gentoo/guest.rb +1 -1
- data/plugins/guests/linux/cap/mount_nfs.rb +9 -1
- data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +26 -7
- data/plugins/guests/linux/cap/shell_expand_guest_path.rb +4 -1
- data/plugins/guests/openbsd/cap/change_host_name.rb +14 -0
- data/plugins/guests/openbsd/cap/configure_networks.rb +40 -0
- data/plugins/guests/openbsd/cap/mount_nfs_folder.rb +14 -0
- data/plugins/guests/openbsd/plugin.rb +15 -0
- data/plugins/guests/solaris/cap/halt.rb +2 -1
- data/plugins/guests/solaris/cap/mount_virtualbox_shared_folder.rb +4 -1
- data/plugins/guests/solaris11/cap/change_host_name.rb +25 -0
- data/plugins/guests/solaris11/cap/configure_networks.rb +32 -0
- data/plugins/guests/solaris11/cap/halt.rb +26 -0
- data/plugins/guests/solaris11/cap/mount_virtualbox_shared_folder.rb +35 -0
- data/plugins/guests/solaris11/config.rb +22 -0
- data/plugins/guests/solaris11/guest.rb +15 -0
- data/plugins/guests/solaris11/plugin.rb +44 -0
- data/plugins/guests/suse/cap/configure_networks.rb +60 -0
- data/plugins/guests/suse/plugin.rb +5 -0
- data/plugins/guests/ubuntu/cap/change_host_name.rb +1 -0
- data/plugins/guests/ubuntu/cap/mount_nfs.rb +19 -0
- data/plugins/guests/ubuntu/cap/mount_virtualbox_shared_folder.rb +14 -0
- data/plugins/guests/ubuntu/guest.rb +0 -19
- data/plugins/guests/ubuntu/plugin.rb +10 -0
- data/plugins/hosts/arch/host.rb +5 -28
- data/plugins/hosts/bsd/host.rb +83 -7
- data/plugins/hosts/fedora/host.rb +12 -6
- data/plugins/hosts/gentoo/host.rb +3 -1
- data/plugins/hosts/linux/host.rb +42 -9
- data/plugins/hosts/opensuse/host.rb +3 -1
- data/plugins/hosts/slackware/host.rb +26 -0
- data/plugins/hosts/slackware/plugin.rb +15 -0
- data/plugins/kernel_v1/config/ssh.rb +2 -2
- data/plugins/kernel_v2/config/ssh.rb +8 -16
- data/plugins/kernel_v2/config/vm.rb +68 -11
- data/plugins/providers/virtualbox/action.rb +15 -2
- data/plugins/providers/virtualbox/action/boot.rb +0 -26
- data/plugins/providers/virtualbox/action/clear_network_interfaces.rb +1 -1
- data/plugins/providers/virtualbox/action/customize.rb +10 -3
- data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +8 -1
- data/plugins/providers/virtualbox/action/forward_ports.rb +1 -0
- data/plugins/providers/virtualbox/action/import.rb +3 -0
- data/plugins/providers/virtualbox/action/network.rb +14 -2
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +7 -2
- data/plugins/providers/virtualbox/action/set_name.rb +13 -1
- data/plugins/providers/virtualbox/config.rb +39 -2
- data/plugins/providers/virtualbox/driver/base.rb +5 -0
- data/plugins/providers/virtualbox/driver/meta.rb +7 -1
- data/plugins/providers/virtualbox/driver/version_4_0.rb +2 -2
- data/plugins/providers/virtualbox/driver/version_4_1.rb +2 -2
- data/plugins/providers/virtualbox/driver/version_4_2.rb +17 -0
- data/plugins/providers/virtualbox/model/forwarded_port.rb +7 -1
- data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +5 -1
- data/plugins/provisioners/ansible/config.rb +40 -23
- data/plugins/provisioners/ansible/provisioner.rb +68 -13
- data/plugins/provisioners/cfengine/cap/debian/cfengine_install.rb +1 -1
- data/plugins/provisioners/cfengine/cap/redhat/cfengine_install.rb +1 -1
- data/plugins/provisioners/cfengine/config.rb +7 -1
- data/plugins/provisioners/cfengine/provisioner.rb +4 -5
- data/plugins/provisioners/chef/config/base.rb +31 -0
- data/plugins/provisioners/chef/config/chef_client.rb +15 -6
- data/plugins/provisioners/chef/config/chef_solo.rb +18 -11
- data/plugins/provisioners/chef/provisioner/base.rb +23 -3
- data/plugins/provisioners/chef/provisioner/chef_client.rb +25 -6
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +16 -13
- data/plugins/provisioners/file/config.rb +29 -0
- data/plugins/provisioners/file/plugin.rb +23 -0
- data/plugins/provisioners/file/provisioner.rb +16 -0
- data/plugins/provisioners/puppet/config/puppet.rb +4 -1
- data/plugins/provisioners/puppet/provisioner/puppet.rb +15 -9
- data/plugins/provisioners/puppet/provisioner/puppet_server.rb +9 -2
- data/plugins/provisioners/salt/bootstrap-salt.sh +6 -0
- data/plugins/provisioners/salt/config.rb +105 -0
- data/plugins/provisioners/salt/errors.rb +11 -0
- data/plugins/provisioners/salt/plugin.rb +22 -0
- data/plugins/provisioners/salt/provisioner.rb +249 -0
- data/plugins/provisioners/shell/config.rb +11 -2
- data/plugins/provisioners/shell/provisioner.rb +15 -3
- data/scripts/website_push_docs.sh +12 -0
- data/scripts/website_push_www.sh +12 -0
- data/templates/commands/init/Vagrantfile.erb +5 -2
- data/templates/commands/ssh_config/config.erb +4 -0
- data/templates/guests/coreos/etcd.service.erb +10 -0
- data/templates/guests/fedora/network_static.erb +2 -3
- data/templates/guests/openbsd/network_dhcp.erb +1 -0
- data/templates/guests/openbsd/network_static.erb +1 -0
- data/templates/guests/suse/network_dhcp.erb +6 -0
- data/templates/guests/suse/network_static.erb +10 -0
- data/templates/locales/en.yml +123 -13
- data/templates/nfs/exports.erb +4 -4
- data/templates/nfs/exports_freebsd.erb +4 -4
- data/templates/nfs/exports_linux.erb +5 -3
- data/templates/provisioners/chef_client/client.erb +9 -0
- data/templates/provisioners/chef_solo/solo.erb +19 -1
- data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +1 -2
- data/test/unit/vagrant/cli_test.rb +1 -0
- data/test/unit/vagrant/config/v2/root_test.rb +18 -0
- data/test/unit/vagrant/environment_test.rb +25 -0
- data/test/unit/vagrant/util/downloader_test.rb +4 -4
- data/test/unit/vagrant_test.rb +18 -0
- data/website/docs/.buildpacks +2 -0
- data/website/docs/Gemfile +13 -0
- data/website/docs/Gemfile.lock +141 -0
- data/website/docs/Procfile +1 -0
- data/website/docs/README.md +26 -0
- data/website/docs/config.rb +78 -0
- data/website/docs/config.ru +44 -0
- data/website/docs/helpers/sidebar_helpers.rb +19 -0
- data/website/docs/lib/redirect_to_latest.rb +25 -0
- data/website/docs/lib/redirect_v1_docs.rb +26 -0
- data/website/docs/source/404.html.erb +7 -0
- data/website/docs/source/images/bullet_1.png +0 -0
- data/website/docs/source/images/bullet_2.png +0 -0
- data/website/docs/source/images/bullet_3.png +0 -0
- data/website/docs/source/images/customers.png +0 -0
- data/website/docs/source/images/customers_small.png +0 -0
- data/website/docs/source/images/footer_background.png +0 -0
- data/website/docs/source/images/footer_hashi_logo.png +0 -0
- data/website/docs/source/images/footer_vagrant_logo.png +0 -0
- data/website/docs/source/images/get_started_background.png +0 -0
- data/website/docs/source/images/icon_caution.png +0 -0
- data/website/docs/source/images/logo_docs.png +0 -0
- data/website/docs/source/images/logo_docs_small.png +0 -0
- data/website/docs/source/images/logo_small.png +0 -0
- data/website/docs/source/images/logo_vagrant.png +0 -0
- data/website/docs/source/images/open_close.png +0 -0
- data/website/docs/source/images/search_icon.png +0 -0
- data/website/docs/source/images/sidebar_background_docs.png +0 -0
- data/website/docs/source/images/sidebar_background_inner.png +0 -0
- data/website/docs/source/images/steps_background.png +0 -0
- data/website/docs/source/images/vagrant_header_background.png +0 -0
- data/website/docs/source/index.html.erb +0 -0
- data/website/docs/source/javascripts/backstretch.js +4 -0
- data/website/docs/source/javascripts/bootstrap.min.js +7 -0
- data/website/docs/source/javascripts/fittext.js +43 -0
- data/website/docs/source/javascripts/grid-overlay.js +161 -0
- data/website/docs/source/javascripts/jquery.js +2 -0
- data/website/docs/source/javascripts/less-1.3.0.min.js +9 -0
- data/website/docs/source/javascripts/modernizr.js +1384 -0
- data/website/docs/source/javascripts/vagrantup.js +15 -0
- data/website/docs/source/layouts/layout.erb +266 -0
- data/website/docs/source/stylesheets/_base.less +317 -0
- data/website/docs/source/stylesheets/_components.less +74 -0
- data/website/docs/source/stylesheets/_footer.less +101 -0
- data/website/docs/source/stylesheets/_media-queries.less +452 -0
- data/website/docs/source/stylesheets/_mixins.less +174 -0
- data/website/docs/source/stylesheets/_nav.less +71 -0
- data/website/docs/source/stylesheets/_pages.less +276 -0
- data/website/docs/source/stylesheets/_sidebar.less +136 -0
- data/website/docs/source/stylesheets/_type.less +36 -0
- data/website/docs/source/stylesheets/_variables.less +39 -0
- data/website/docs/source/stylesheets/bootstrap.css +5946 -0
- data/website/docs/source/stylesheets/vagrantup.less +16 -0
- data/website/docs/source/v2/boxes.html.md +78 -0
- data/website/docs/source/v2/boxes/format.html.md +32 -0
- data/website/docs/source/v2/cli/box.html.md +62 -0
- data/website/docs/source/v2/cli/destroy.html.md +20 -0
- data/website/docs/source/v2/cli/halt.html.md +19 -0
- data/website/docs/source/v2/cli/index.html.md +24 -0
- data/website/docs/source/v2/cli/init.html.md +18 -0
- data/website/docs/source/v2/cli/package.html.md +43 -0
- data/website/docs/source/v2/cli/plugin.html.md +56 -0
- data/website/docs/source/v2/cli/provision.html.md +24 -0
- data/website/docs/source/v2/cli/reload.html.md +27 -0
- data/website/docs/source/v2/cli/resume.html.md +11 -0
- data/website/docs/source/v2/cli/ssh.html.md +24 -0
- data/website/docs/source/v2/cli/ssh_config.html.md +16 -0
- data/website/docs/source/v2/cli/status.html.md +14 -0
- data/website/docs/source/v2/cli/suspend.html.md +19 -0
- data/website/docs/source/v2/cli/up.html.md +34 -0
- data/website/docs/source/v2/debugging.html.md +42 -0
- data/website/docs/source/v2/getting-started/boxes.html.md +56 -0
- data/website/docs/source/v2/getting-started/index.html.md +43 -0
- data/website/docs/source/v2/getting-started/networking.html.md +45 -0
- data/website/docs/source/v2/getting-started/project_setup.html.md +38 -0
- data/website/docs/source/v2/getting-started/providers.html.md +37 -0
- data/website/docs/source/v2/getting-started/provisioning.html.md +75 -0
- data/website/docs/source/v2/getting-started/rebuild.html.md +17 -0
- data/website/docs/source/v2/getting-started/synced_folders.html.md +42 -0
- data/website/docs/source/v2/getting-started/teardown.html.md +41 -0
- data/website/docs/source/v2/getting-started/up.html.md +35 -0
- data/website/docs/source/v2/index.html.md +10 -0
- data/website/docs/source/v2/installation/backwards-compatibility.html.md +35 -0
- data/website/docs/source/v2/installation/index.html.md +28 -0
- data/website/docs/source/v2/installation/uninstallation.html.md +39 -0
- data/website/docs/source/v2/installation/upgrading-from-1-0.html.md +26 -0
- data/website/docs/source/v2/installation/upgrading.html.md +20 -0
- data/website/docs/source/v2/multi-machine/index.html.md +105 -0
- data/website/docs/source/v2/networking/basic_usage.html.md +43 -0
- data/website/docs/source/v2/networking/forwarded_ports.html.md +57 -0
- data/website/docs/source/v2/networking/index.html.md +40 -0
- data/website/docs/source/v2/networking/private_network.html.md +48 -0
- data/website/docs/source/v2/networking/public_network.html.md +53 -0
- data/website/docs/source/v2/plugins/commands.html.md +116 -0
- data/website/docs/source/v2/plugins/configuration.html.md +166 -0
- data/website/docs/source/v2/plugins/development-basics.html.md +139 -0
- data/website/docs/source/v2/plugins/guest-capabilities.html.md +100 -0
- data/website/docs/source/v2/plugins/guests.html.md +99 -0
- data/website/docs/source/v2/plugins/hosts.html.md +46 -0
- data/website/docs/source/v2/plugins/index.html.md +21 -0
- data/website/docs/source/v2/plugins/packaging.html.md +102 -0
- data/website/docs/source/v2/plugins/providers.html.md +234 -0
- data/website/docs/source/v2/plugins/provisioners.html.md +64 -0
- data/website/docs/source/v2/plugins/usage.html.md +58 -0
- data/website/docs/source/v2/providers/basic_usage.html.md +67 -0
- data/website/docs/source/v2/providers/configuration.html.md +89 -0
- data/website/docs/source/v2/providers/custom.html.md +9 -0
- data/website/docs/source/v2/providers/default.html.md +22 -0
- data/website/docs/source/v2/providers/index.html.md +23 -0
- data/website/docs/source/v2/providers/installation.html.md +11 -0
- data/website/docs/source/v2/provisioning/ansible.html.md +144 -0
- data/website/docs/source/v2/provisioning/basic_usage.html.md +67 -0
- data/website/docs/source/v2/provisioning/chef_client.html.md +109 -0
- data/website/docs/source/v2/provisioning/chef_solo.html.md +156 -0
- data/website/docs/source/v2/provisioning/index.html.md +28 -0
- data/website/docs/source/v2/provisioning/puppet_agent.html.md +70 -0
- data/website/docs/source/v2/provisioning/puppet_apply.html.md +114 -0
- data/website/docs/source/v2/provisioning/shell.html.md +88 -0
- data/website/docs/source/v2/synced-folders/basic_usage.html.md +53 -0
- data/website/docs/source/v2/synced-folders/index.html.md +17 -0
- data/website/docs/source/v2/synced-folders/nfs.html.md +53 -0
- data/website/docs/source/v2/vagrantfile/index.html.md +75 -0
- data/website/docs/source/v2/vagrantfile/machine_settings.html.md +84 -0
- data/website/docs/source/v2/vagrantfile/ssh_settings.html.md +61 -0
- data/website/docs/source/v2/vagrantfile/vagrant_settings.html.md +19 -0
- data/website/docs/source/v2/vagrantfile/version.html.md +64 -0
- data/website/docs/source/v2/virtualbox/boxes.html.md +71 -0
- data/website/docs/source/v2/virtualbox/configuration.html.md +63 -0
- data/website/docs/source/v2/virtualbox/index.html.md +21 -0
- data/website/docs/source/v2/virtualbox/usage.html.md +12 -0
- data/website/docs/source/v2/vmware/boxes.html.md +107 -0
- data/website/docs/source/v2/vmware/configuration.html.md +91 -0
- data/website/docs/source/v2/vmware/index.html.md +30 -0
- data/website/docs/source/v2/vmware/installation.html.md +40 -0
- data/website/docs/source/v2/vmware/known-issues.html.md +21 -0
- data/website/docs/source/v2/vmware/usage.html.md +27 -0
- data/website/docs/source/v2/why-vagrant/index.html.md +46 -0
- data/website/www/.buildpacks +2 -0
- data/website/www/Gemfile +15 -0
- data/website/www/Gemfile.lock +123 -0
- data/website/www/Procfile +1 -0
- data/website/www/README.md +26 -0
- data/website/www/config.rb +88 -0
- data/website/www/config.ru +39 -0
- data/website/www/helpers/sidebar_helpers.rb +12 -0
- data/website/www/lib/legacy_redirect.rb +32 -0
- data/website/www/source/404.html.erb +11 -0
- data/website/www/source/_sidebar_about.erb +5 -0
- data/website/www/source/_sidebar_blog.erb +11 -0
- data/website/www/source/_sidebar_support.html.erb +6 -0
- data/website/www/source/about.html.markdown +16 -0
- data/website/www/source/blog.html.erb +34 -0
- data/website/www/source/blog/2013-09-16-test.html.markdown +26 -0
- data/website/www/source/blog_feed.xml.builder +23 -0
- data/website/www/source/images/bullet_1.png +0 -0
- data/website/www/source/images/bullet_2.png +0 -0
- data/website/www/source/images/bullet_3.png +0 -0
- data/website/www/source/images/customers.png +0 -0
- data/website/www/source/images/customers_small.png +0 -0
- data/website/www/source/images/footer_background.png +0 -0
- data/website/www/source/images/footer_hashi_logo.png +0 -0
- data/website/www/source/images/footer_vagrant_logo.png +0 -0
- data/website/www/source/images/get_started_background.png +0 -0
- data/website/www/source/images/icon_caution.png +0 -0
- data/website/www/source/images/logo_docs.png +0 -0
- data/website/www/source/images/logo_docs_small.png +0 -0
- data/website/www/source/images/logo_small.png +0 -0
- data/website/www/source/images/logo_vagrant.png +0 -0
- data/website/www/source/images/open_close.png +0 -0
- data/website/www/source/images/search_icon.png +0 -0
- data/website/www/source/images/sidebar_background_docs.png +0 -0
- data/website/www/source/images/sidebar_background_inner.png +0 -0
- data/website/www/source/images/sponsors/fastly.png +0 -0
- data/website/www/source/images/sponsors/kiip.png +0 -0
- data/website/www/source/images/sponsors/softlayer.jpg +0 -0
- data/website/www/source/images/sponsors/typekit.png +0 -0
- data/website/www/source/images/steps_background.png +0 -0
- data/website/www/source/images/vagrant_header_background.png +0 -0
- data/website/www/source/images/vagrant_vmware_background.png +0 -0
- data/website/www/source/index.html.erb +109 -0
- data/website/www/source/javascripts/backstretch.js +4 -0
- data/website/www/source/javascripts/bootstrap.min.js +7 -0
- data/website/www/source/javascripts/fittext.js +43 -0
- data/website/www/source/javascripts/grid-overlay.js +161 -0
- data/website/www/source/javascripts/jquery.js +2 -0
- data/website/www/source/javascripts/less-1.3.0.min.js +9 -0
- data/website/www/source/javascripts/modernizr.js +1384 -0
- data/website/www/source/javascripts/vagrantup.js +58 -0
- data/website/www/source/layouts/blog_post.erb +42 -0
- data/website/www/source/layouts/inner.erb +34 -0
- data/website/www/source/layouts/layout.erb +107 -0
- data/website/www/source/sponsors.html.erb +23 -0
- data/website/www/source/stylesheets/_base.less +326 -0
- data/website/www/source/stylesheets/_components.less +74 -0
- data/website/www/source/stylesheets/_footer.less +101 -0
- data/website/www/source/stylesheets/_media-queries.less +549 -0
- data/website/www/source/stylesheets/_mixins.less +175 -0
- data/website/www/source/stylesheets/_modules.less +37 -0
- data/website/www/source/stylesheets/_nav.less +74 -0
- data/website/www/source/stylesheets/_pages.less +467 -0
- data/website/www/source/stylesheets/_sidebar.less +137 -0
- data/website/www/source/stylesheets/_type.less +36 -0
- data/website/www/source/stylesheets/_variables.less +39 -0
- data/website/www/source/stylesheets/bootstrap.css +5946 -0
- data/website/www/source/stylesheets/vagrantup.less +17 -0
- data/website/www/source/support.html.erb +25 -0
- data/website/www/source/support/community.html.erb +28 -0
- data/website/www/source/support/professional.html.erb +17 -0
- data/website/www/source/vmware/eula.html.md +21 -0
- data/website/www/source/vmware/index.html.erb +185 -0
- data/website/www/source/vmware/privacy-policy.html.md +71 -0
- data/website/www/source/vmware/terms-of-service.html.md +50 -0
- metadata +436 -186
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
require_relative "base"
|
4
|
+
require_relative "mixin_install_opts"
|
5
|
+
|
6
|
+
module VagrantPlugins
|
7
|
+
module CommandPlugin
|
8
|
+
module Command
|
9
|
+
class Update < Base
|
10
|
+
include MixinInstallOpts
|
11
|
+
|
12
|
+
def execute
|
13
|
+
options = {}
|
14
|
+
|
15
|
+
opts = OptionParser.new do |o|
|
16
|
+
o.banner = "Usage: vagrant plugin update <name> [-h]"
|
17
|
+
o.separator ""
|
18
|
+
build_install_opts(o, options)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Parse the options
|
22
|
+
argv = parse_options(opts)
|
23
|
+
return if !argv
|
24
|
+
raise Vagrant::Errors::CLIInvalidUsage, :help => opts.help.chomp if argv.length < 1
|
25
|
+
|
26
|
+
# Update the gem
|
27
|
+
action(Action.action_update, {
|
28
|
+
:plugin_entry_point => options[:entry_point],
|
29
|
+
:plugin_prerelease => options[:plugin_prerelease],
|
30
|
+
:plugin_version => options[:plugin_version],
|
31
|
+
:plugin_sources => options[:plugin_sources],
|
32
|
+
:plugin_name => argv[0]
|
33
|
+
})
|
34
|
+
|
35
|
+
# Success, exit status 0
|
36
|
+
0
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -13,6 +13,7 @@ module VagrantPlugins
|
|
13
13
|
|
14
14
|
def execute
|
15
15
|
options = {}
|
16
|
+
options[:provision_ignore_sentinel] = false
|
16
17
|
|
17
18
|
opts = OptionParser.new do |o|
|
18
19
|
o.banner = "Usage: vagrant reload [vm-name]"
|
@@ -24,6 +25,9 @@ module VagrantPlugins
|
|
24
25
|
argv = parse_options(opts)
|
25
26
|
return if !argv
|
26
27
|
|
28
|
+
# Validate the provisioners
|
29
|
+
validate_provisioner_flags!(options)
|
30
|
+
|
27
31
|
@logger.debug("'reload' each target VM...")
|
28
32
|
with_target_vms(argv) do |machine|
|
29
33
|
machine.action(:reload, options)
|
@@ -12,11 +12,16 @@ module VagrantPlugins
|
|
12
12
|
argv = parse_options(opts)
|
13
13
|
return if !argv
|
14
14
|
|
15
|
+
max_name_length = 25
|
16
|
+
with_target_vms(argv) do |machine|
|
17
|
+
max_name_length = machine.name.length if machine.name.length > max_name_length
|
18
|
+
end
|
19
|
+
|
15
20
|
state = nil
|
16
21
|
results = []
|
17
22
|
with_target_vms(argv) do |machine|
|
18
23
|
state = machine.state if !state
|
19
|
-
results << "#{machine.name.to_s.ljust(
|
24
|
+
results << "#{machine.name.to_s.ljust(max_name_length)} #{machine.state.short_description} (#{machine.provider_name})"
|
20
25
|
end
|
21
26
|
|
22
27
|
message = nil
|
@@ -11,7 +11,9 @@ module VagrantPlugins
|
|
11
11
|
|
12
12
|
def execute
|
13
13
|
options = {}
|
14
|
+
options[:destroy_on_error] = true
|
14
15
|
options[:parallel] = true
|
16
|
+
options[:provision_ignore_sentinel] = false
|
15
17
|
|
16
18
|
opts = OptionParser.new do |o|
|
17
19
|
o.banner = "Usage: vagrant up [vm-name] [options] [-h]"
|
@@ -19,6 +21,11 @@ module VagrantPlugins
|
|
19
21
|
|
20
22
|
build_start_options(o, options)
|
21
23
|
|
24
|
+
o.on("--[no-]destroy-on-error",
|
25
|
+
"Destroy machine if any fatal error happens (default to true).") do |destroy|
|
26
|
+
options[:destroy_on_error] = destroy
|
27
|
+
end
|
28
|
+
|
22
29
|
o.on("--[no-]parallel",
|
23
30
|
"Enable or disable parallelism if provider supports it.") do |parallel|
|
24
31
|
options[:parallel] = parallel
|
@@ -34,6 +41,9 @@ module VagrantPlugins
|
|
34
41
|
argv = parse_options(opts)
|
35
42
|
return if !argv
|
36
43
|
|
44
|
+
# Validate the provisioners
|
45
|
+
validate_provisioner_flags!(options)
|
46
|
+
|
37
47
|
# Go over each VM and bring it up
|
38
48
|
@logger.debug("'Up' each target VM...")
|
39
49
|
|
@@ -8,7 +8,6 @@ module VagrantPlugins
|
|
8
8
|
# @param [Hash] options
|
9
9
|
def build_start_options(parser, options)
|
10
10
|
# Setup the defaults
|
11
|
-
options[:provision_enabled] = true
|
12
11
|
options[:provision_types] = nil
|
13
12
|
|
14
13
|
# Add the options
|
@@ -21,6 +20,18 @@ module VagrantPlugins
|
|
21
20
|
options[:provision_types] = list.map { |type| type.to_sym }
|
22
21
|
end
|
23
22
|
end
|
23
|
+
|
24
|
+
# This validates the provisioner flags and raises an exception
|
25
|
+
# if there are invalid ones.
|
26
|
+
def validate_provisioner_flags!(options)
|
27
|
+
(options[:provision_types] || []).each do |type|
|
28
|
+
klass = Vagrant.plugin("2").manager.provisioners[type]
|
29
|
+
if !klass
|
30
|
+
raise Vagrant::Errors::ProvisionerFlagInvalid,
|
31
|
+
name: type.to_s
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
24
35
|
end
|
25
36
|
end
|
26
37
|
end
|
@@ -5,6 +5,7 @@ require 'timeout'
|
|
5
5
|
|
6
6
|
require 'log4r'
|
7
7
|
require 'net/ssh'
|
8
|
+
require 'net/ssh/proxy/command'
|
8
9
|
require 'net/scp'
|
9
10
|
|
10
11
|
require 'vagrant/util/ansi_escape_code_remover'
|
@@ -57,8 +58,18 @@ module VagrantPlugins
|
|
57
58
|
}.merge(opts || {})
|
58
59
|
|
59
60
|
# Connect via SSH and execute the command in the shell.
|
61
|
+
stdout = ""
|
62
|
+
stderr = ""
|
60
63
|
exit_status = connect do |connection|
|
61
|
-
shell_execute(connection, command, opts[:sudo],
|
64
|
+
shell_execute(connection, command, opts[:sudo]) do |type, data|
|
65
|
+
if type == :stdout
|
66
|
+
stdout += data
|
67
|
+
elsif type == :stderr
|
68
|
+
stderr += data
|
69
|
+
end
|
70
|
+
|
71
|
+
block.call(type, data) if block
|
72
|
+
end
|
62
73
|
end
|
63
74
|
|
64
75
|
# Check for any errors
|
@@ -66,7 +77,11 @@ module VagrantPlugins
|
|
66
77
|
# The error classes expect the translation key to be _key,
|
67
78
|
# but that makes for an ugly configuration parameter, so we
|
68
79
|
# set it here from `error_key`
|
69
|
-
error_opts = opts.merge(
|
80
|
+
error_opts = opts.merge(
|
81
|
+
:_key => opts[:error_key],
|
82
|
+
:stdout => stdout,
|
83
|
+
:stderr => stderr
|
84
|
+
)
|
70
85
|
raise opts[:error_class], error_opts
|
71
86
|
end
|
72
87
|
|
@@ -172,15 +187,16 @@ module VagrantPlugins
|
|
172
187
|
Errno::EADDRINUSE,
|
173
188
|
Errno::ECONNREFUSED,
|
174
189
|
Errno::ECONNRESET,
|
190
|
+
Errno::ENETUNREACH,
|
175
191
|
Errno::EHOSTUNREACH,
|
176
192
|
Net::SSH::Disconnect,
|
177
193
|
Timeout::Error
|
178
194
|
]
|
179
195
|
|
180
|
-
retries =
|
181
|
-
timeout =
|
196
|
+
retries = 5
|
197
|
+
timeout = 60
|
182
198
|
|
183
|
-
@logger.info("Attempting SSH
|
199
|
+
@logger.info("Attempting SSH connnection...")
|
184
200
|
connection = retryable(:tries => retries, :on => exceptions) do
|
185
201
|
Timeout.timeout(timeout) do
|
186
202
|
begin
|
@@ -191,9 +207,14 @@ module VagrantPlugins
|
|
191
207
|
# Setup logging for connections
|
192
208
|
connect_opts = opts.merge({
|
193
209
|
:logger => ssh_logger,
|
210
|
+
:timeout => 15,
|
194
211
|
:verbose => :debug
|
195
212
|
})
|
196
213
|
|
214
|
+
if ssh_info[:proxy_command]
|
215
|
+
connect_opts[:proxy] = Net::SSH::Proxy::Command.new(ssh_info[:proxy_command])
|
216
|
+
end
|
217
|
+
|
197
218
|
@logger.info("Attempting to connect to SSH...")
|
198
219
|
@logger.info(" - Host: #{ssh_info[:host]}")
|
199
220
|
@logger.info(" - Port: #{ssh_info[:port]}")
|
@@ -282,11 +303,40 @@ module VagrantPlugins
|
|
282
303
|
ch2.on_request("exit-status") do |ch3, data|
|
283
304
|
exit_status = data.read_long
|
284
305
|
@logger.debug("Exit status: #{exit_status}")
|
306
|
+
|
307
|
+
# Close the channel, since after the exit status we're
|
308
|
+
# probably done. This fixes up issues with hanging.
|
309
|
+
channel.close
|
285
310
|
end
|
286
311
|
|
287
312
|
# Set the terminal
|
288
313
|
ch2.send_data "export TERM=vt100\n"
|
289
314
|
|
315
|
+
# Set SSH_AUTH_SOCK if we are in sudo and forwarding agent.
|
316
|
+
# This is to work around often misconfigured boxes where
|
317
|
+
# the SSH_AUTH_SOCK env var is not preserved.
|
318
|
+
if @machine.ssh_info[:forward_agent] && sudo
|
319
|
+
auth_socket = ""
|
320
|
+
execute("echo; printf $SSH_AUTH_SOCK") do |type, data|
|
321
|
+
if type == :stdout
|
322
|
+
auth_socket += data
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
if auth_socket != ""
|
327
|
+
# Make sure we only read the last line which should be
|
328
|
+
# the $SSH_AUTH_SOCK env var we printed.
|
329
|
+
auth_socket = auth_socket.split("\n").last.chomp
|
330
|
+
end
|
331
|
+
|
332
|
+
if auth_socket == ""
|
333
|
+
@logger.warn("No SSH_AUTH_SOCK found despite forward_agent being set.")
|
334
|
+
else
|
335
|
+
@logger.info("Setting SSH_AUTH_SOCK remotely: #{auth_socket}")
|
336
|
+
ch2.send_data "export SSH_AUTH_SOCK=#{auth_socket}\n"
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
290
340
|
# Output the command
|
291
341
|
ch2.send_data "#{command}\n"
|
292
342
|
|
@@ -315,7 +365,12 @@ module VagrantPlugins
|
|
315
365
|
end
|
316
366
|
|
317
367
|
# Wait for the channel to complete
|
318
|
-
|
368
|
+
begin
|
369
|
+
channel.wait
|
370
|
+
rescue IOError
|
371
|
+
@logger.info("SSH connection unexpected closed. Assuming reboot or something.")
|
372
|
+
exit_status = 0
|
373
|
+
end
|
319
374
|
ensure
|
320
375
|
# Kill the keep-alive thread
|
321
376
|
keep_alive.kill if keep_alive
|
@@ -6,8 +6,7 @@ module VagrantPlugins
|
|
6
6
|
machine.communicate.tap do |comm|
|
7
7
|
# Only do this if the hostname is not already set
|
8
8
|
if !comm.test("sudo hostname | grep '#{name}'")
|
9
|
-
comm.sudo("
|
10
|
-
comm.sudo("hostname #{name}")
|
9
|
+
comm.sudo("hostnamectl set-hostname #{name}")
|
11
10
|
comm.sudo("sed -i 's@^\\(127[.]0[.]0[.]1[[:space:]]\\+\\)@\\1#{name} @' /etc/hosts")
|
12
11
|
end
|
13
12
|
end
|
@@ -1,7 +1,13 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
|
3
|
+
require "vagrant/util/template_renderer"
|
4
|
+
|
1
5
|
module VagrantPlugins
|
2
6
|
module GuestArch
|
3
7
|
module Cap
|
4
8
|
class ConfigureNetworks
|
9
|
+
include Vagrant::Util
|
10
|
+
|
5
11
|
def self.configure_networks(machine, networks)
|
6
12
|
networks.each do |network|
|
7
13
|
entry = TemplateRenderer.render("guests/arch/network_#{network[:type]}",
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module GuestCoreOS
|
3
|
+
module Cap
|
4
|
+
class ChangeHostName
|
5
|
+
def self.change_host_name(machine, name)
|
6
|
+
machine.communicate.tap do |comm|
|
7
|
+
if !comm.test("sudo hostname --fqdn | grep '#{name}'")
|
8
|
+
comm.sudo("hostname #{name.split('.')[0]}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
|
3
|
+
require "vagrant/util/template_renderer"
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module GuestCoreOS
|
7
|
+
module Cap
|
8
|
+
class ConfigureNetworks
|
9
|
+
include Vagrant::Util
|
10
|
+
|
11
|
+
def self.configure_networks(machine, networks)
|
12
|
+
machine.communicate.tap do |comm|
|
13
|
+
# Disable default etcd
|
14
|
+
comm.sudo("systemctl stop etcd")
|
15
|
+
|
16
|
+
# Read network interface names
|
17
|
+
interfaces = []
|
18
|
+
comm.sudo("ifconfig | grep enp0 | cut -f1 -d:") do |_, result|
|
19
|
+
interfaces = result.split("\n")
|
20
|
+
end
|
21
|
+
|
22
|
+
# Configure interfaces
|
23
|
+
# FIXME: fix matching of interfaces with IP adresses
|
24
|
+
networks.each do |network|
|
25
|
+
comm.sudo("ifconfig #{interfaces[network[:interface].to_i]} #{network[:ip]} netmask #{network[:netmask]}")
|
26
|
+
end
|
27
|
+
|
28
|
+
primary_machine_config = machine.env.active_machines.first
|
29
|
+
primary_machine = machine.env.machine(*primary_machine_config, true)
|
30
|
+
|
31
|
+
get_ip = lambda do |machine|
|
32
|
+
ip = nil
|
33
|
+
machine.config.vm.networks.each do |type, opts|
|
34
|
+
if type == :private_network && opts[:ip]
|
35
|
+
ip = opts[:ip]
|
36
|
+
break
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
ip
|
41
|
+
end
|
42
|
+
|
43
|
+
primary_machine_ip = get_ip.(primary_machine)
|
44
|
+
current_ip = get_ip.(machine)
|
45
|
+
if current_ip == primary_machine_ip
|
46
|
+
entry = TemplateRenderer.render("guests/coreos/etcd.service", :options => {
|
47
|
+
:my_ip => current_ip
|
48
|
+
})
|
49
|
+
else
|
50
|
+
connection_string = "#{primary_machine_ip}:7001"
|
51
|
+
entry = TemplateRenderer.render("guests/coreos/etcd.service", :options => {
|
52
|
+
:connection_string => connection_string,
|
53
|
+
:my_ip => current_ip
|
54
|
+
})
|
55
|
+
end
|
56
|
+
|
57
|
+
Tempfile.open("vagrant") do |temp|
|
58
|
+
temp.binmode
|
59
|
+
temp.write(entry)
|
60
|
+
temp.close
|
61
|
+
comm.upload(temp.path, "/tmp/etcd-cluster.service")
|
62
|
+
end
|
63
|
+
|
64
|
+
comm.sudo("mv /tmp/etcd-cluster.service /media/state/units/")
|
65
|
+
comm.sudo("systemctl restart local-enable.service")
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "vagrant"
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module GuestCoreOS
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
6
|
+
name "CoreOS guest"
|
7
|
+
description "CoreOS guest support."
|
8
|
+
|
9
|
+
guest("coreos", "linux") do
|
10
|
+
require File.expand_path("../guest", __FILE__)
|
11
|
+
Guest
|
12
|
+
end
|
13
|
+
|
14
|
+
guest_capability("coreos", "change_host_name") do
|
15
|
+
require_relative "cap/change_host_name"
|
16
|
+
Cap::ChangeHostName
|
17
|
+
end
|
18
|
+
|
19
|
+
guest_capability("coreos", "configure_networks") do
|
20
|
+
require_relative "cap/configure_networks"
|
21
|
+
Cap::ConfigureNetworks
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module GuestDarwin
|
3
|
+
module Cap
|
4
|
+
class ChangeHostName
|
5
|
+
def self.change_host_name(machine, name)
|
6
|
+
if !machine.communicate.test("hostname -f | grep '^#{name}$' || hostname -s | grep '^#{name}$'")
|
7
|
+
machine.communicate.sudo("scutil --set HostName #{name}")
|
8
|
+
machine.communicate.sudo("hostname #{name}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
|
3
|
+
require "vagrant/util/template_renderer"
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module GuestDarwin
|
7
|
+
module Cap
|
8
|
+
class ConfigureNetworks
|
9
|
+
include Vagrant::Util
|
10
|
+
|
11
|
+
def self.configure_networks(machine, networks)
|
12
|
+
# Slightly different than other plugins, using the template to build commands
|
13
|
+
# rather than templating the files.
|
14
|
+
|
15
|
+
machine.communicate.sudo("networksetup -detectnewhardware")
|
16
|
+
machine.communicate.sudo("networksetup -listnetworkserviceorder > /tmp/vagrant.interfaces")
|
17
|
+
tmpints = File.join(Dir.tmpdir, File.basename("#{machine.id}.interfaces"))
|
18
|
+
machine.communicate.download("/tmp/vagrant.interfaces",tmpints)
|
19
|
+
|
20
|
+
devlist = []
|
21
|
+
ints = IO.read(tmpints)
|
22
|
+
ints.split(/\n\n/m).each do |i|
|
23
|
+
if i.match(/Hardware/) and not i.match(/Ethernet/).nil?
|
24
|
+
devmap = {}
|
25
|
+
# Ethernet, should be 2 lines,
|
26
|
+
# (3) Thunderbolt Ethernet
|
27
|
+
# (Hardware Port: Thunderbolt Ethernet, Device: en1)
|
28
|
+
|
29
|
+
# multiline, should match "Thunderbolt Ethernet", "en1"
|
30
|
+
devicearry = i.match(/\([0-9]+\) (.+)\n.*Device: (.+)\)/m)
|
31
|
+
devmap[:interface] = devicearry[2]
|
32
|
+
devmap[:service] = devicearry[1]
|
33
|
+
devlist << devmap
|
34
|
+
end
|
35
|
+
end
|
36
|
+
File.delete(tmpints)
|
37
|
+
|
38
|
+
networks.each do |network|
|
39
|
+
service_name = devlist[network[:interface]][:service]
|
40
|
+
if network[:type].to_sym == :static
|
41
|
+
command = "networksetup -setmanual \"#{service_name}\" #{network[:ip]} #{network[:netmask]}"
|
42
|
+
elsif network[:type].to_sym == :dhcp
|
43
|
+
command = "networksetup -setdhcp \"#{service_name}\""
|
44
|
+
end
|
45
|
+
|
46
|
+
machine.communicate.sudo(command)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|