vagrant 0.6.8 → 0.6.9
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 +3 -1
- data/CHANGELOG.md +16 -1
- data/lib/vagrant/action.rb +1 -1
- data/lib/vagrant/action/box/download.rb +1 -1
- data/lib/vagrant/action/box/unpackage.rb +1 -1
- data/lib/vagrant/action/box/verify.rb +1 -1
- data/lib/vagrant/action/builder.rb +1 -1
- data/lib/vagrant/action/general/package.rb +10 -4
- data/lib/vagrant/action/vm/boot.rb +1 -1
- data/lib/vagrant/action/vm/check_box.rb +2 -2
- data/lib/vagrant/action/vm/export.rb +1 -1
- data/lib/vagrant/action/vm/forward_ports.rb +8 -8
- data/lib/vagrant/action/vm/import.rb +1 -1
- data/lib/vagrant/action/vm/network.rb +6 -2
- data/lib/vagrant/action/vm/nfs.rb +3 -3
- data/lib/vagrant/action/vm/provision.rb +4 -3
- data/lib/vagrant/action/warden.rb +5 -4
- data/lib/vagrant/box.rb +1 -1
- data/lib/vagrant/command/box.rb +2 -2
- data/lib/vagrant/command/helpers.rb +5 -5
- data/lib/vagrant/command/package.rb +3 -3
- data/lib/vagrant/command/ssh.rb +3 -3
- data/lib/vagrant/command/ssh_config.rb +2 -2
- data/lib/vagrant/config.rb +2 -2
- data/lib/vagrant/config/vm.rb +7 -0
- data/lib/vagrant/downloaders/file.rb +1 -1
- data/lib/vagrant/downloaders/http.rb +1 -1
- data/lib/vagrant/environment.rb +21 -5
- data/lib/vagrant/errors.rb +16 -0
- data/lib/vagrant/hosts/bsd.rb +1 -1
- data/lib/vagrant/provisioners/chef.rb +2 -2
- data/lib/vagrant/provisioners/chef_server.rb +3 -3
- data/lib/vagrant/provisioners/puppet.rb +85 -0
- data/lib/vagrant/ssh.rb +23 -21
- data/lib/vagrant/systems/linux.rb +1 -1
- data/lib/vagrant/systems/solaris.rb +7 -4
- data/lib/vagrant/util/hash_with_indifferent_access.rb +1 -1
- data/lib/vagrant/util/platform.rb +18 -1
- data/lib/vagrant/version.rb +1 -1
- data/lib/vagrant/vm.rb +4 -4
- data/templates/locales/en.yml +34 -4
- data/test/vagrant/action/general/package_test.rb +14 -0
- data/test/vagrant/action/vm/network_test.rb +18 -0
- data/test/vagrant/action/vm/provision_test.rb +4 -0
- data/test/vagrant/command/helpers_test.rb +2 -2
- data/test/vagrant/config/vm_test.rb +8 -0
- data/test/vagrant/provisioners/puppet_test.rb +135 -0
- data/test/vagrant/ssh_test.rb +18 -10
- data/test/vagrant/vm_test.rb +2 -1
- metadata +6 -5
- data/Gemfile.lock +0 -76
data/lib/vagrant/errors.rb
CHANGED
@@ -183,6 +183,13 @@ module Vagrant
|
|
183
183
|
error_key(:not_found, "vagrant.actions.vm.network")
|
184
184
|
end
|
185
185
|
|
186
|
+
# Note: This is a temporary error for Windows users while host-only
|
187
|
+
# networking doesn't quite work.
|
188
|
+
class NetworkNotImplemented < VagrantError
|
189
|
+
status_code(49)
|
190
|
+
error_key(:windows_not_implemented, "vagrant.actions.vm.network")
|
191
|
+
end
|
192
|
+
|
186
193
|
class NFSHostRequired < VagrantError
|
187
194
|
status_code(31)
|
188
195
|
error_key(:host_required, "vagrant.actions.vm.nfs")
|
@@ -283,6 +290,15 @@ module Vagrant
|
|
283
290
|
error_key(:virtualbox_not_detected)
|
284
291
|
end
|
285
292
|
|
293
|
+
# Note that this is a subclass of VirtualBoxNotDetected, so developers
|
294
|
+
# who script Vagrant or use it as a library in any way can rescue from
|
295
|
+
# "VirtualBoxNotDetected" and catch both errors, which represent the
|
296
|
+
# same thing. This subclass simply has a specialized error message.
|
297
|
+
class VirtualBoxNotDetected_Win64 < VirtualBoxNotDetected
|
298
|
+
status_code(48)
|
299
|
+
error_key(:virtualbox_not_detected_win64)
|
300
|
+
end
|
301
|
+
|
286
302
|
class VMBaseMacNotSpecified < VagrantError
|
287
303
|
status_code(47)
|
288
304
|
error_key(:no_base_mac, "vagrant.actions.vm.match_mac")
|
data/lib/vagrant/hosts/bsd.rb
CHANGED
@@ -42,7 +42,7 @@ module Vagrant
|
|
42
42
|
if $?.to_i == 0
|
43
43
|
# Use sed to just strip out the block of code which was inserted
|
44
44
|
# by Vagrant
|
45
|
-
system("sudo sed -e '/^# VAGRANT-BEGIN: #{env.vm.uuid}/,/^# VAGRANT-END: #{env.vm.uuid}/ d' -
|
45
|
+
system("sudo sed -e '/^# VAGRANT-BEGIN: #{env.vm.uuid}/,/^# VAGRANT-END: #{env.vm.uuid}/ d' -ibak /etc/exports")
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module Vagrant
|
2
2
|
module Provisioners
|
3
|
-
# This class is a base class where the common
|
3
|
+
# This class is a base class where the common functionality shared between
|
4
4
|
# chef-solo and chef-client provisioning are stored. This is **not an actual
|
5
5
|
# provisioner**. Instead, {ChefSolo} or {ChefServer} should be used.
|
6
6
|
class Chef < Base
|
7
7
|
def prepare
|
8
|
-
raise ChefError
|
8
|
+
raise ChefError, :invalid_provisioner
|
9
9
|
end
|
10
10
|
|
11
11
|
def verify_binary(binary)
|
@@ -6,9 +6,9 @@ module Vagrant
|
|
6
6
|
# with a chef server.
|
7
7
|
class ChefServer < Chef
|
8
8
|
def prepare
|
9
|
-
raise ChefError
|
10
|
-
raise ChefError
|
11
|
-
raise ChefError
|
9
|
+
raise ChefError, :server_validation_key_required if env.config.chef.validation_key_path.nil?
|
10
|
+
raise ChefError, :server_validation_key_doesnt_exist if !File.file?(validation_key_path)
|
11
|
+
raise ChefError, :server_url_required if env.config.chef.chef_server_url.nil?
|
12
12
|
end
|
13
13
|
|
14
14
|
def provision!
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Provisioners
|
3
|
+
|
4
|
+
class PuppetError < Vagrant::Errors::VagrantError
|
5
|
+
error_namespace("vagrant.provisioners.puppet")
|
6
|
+
end
|
7
|
+
|
8
|
+
class PuppetConfig < Vagrant::Config::Base
|
9
|
+
configures :puppet
|
10
|
+
|
11
|
+
attr_accessor :manifest_file
|
12
|
+
attr_accessor :manifests_path
|
13
|
+
attr_accessor :pp_path
|
14
|
+
attr_accessor :options
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@manifest_file = ""
|
18
|
+
@manifests_path = "manifests"
|
19
|
+
@pp_path = "/tmp/vagrant-puppet"
|
20
|
+
@options = []
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
class Puppet < Base
|
25
|
+
def prepare
|
26
|
+
check_manifest_dir
|
27
|
+
share_manifests
|
28
|
+
end
|
29
|
+
|
30
|
+
def provision!
|
31
|
+
verify_binary("puppet")
|
32
|
+
create_pp_path
|
33
|
+
set_manifest
|
34
|
+
run_puppet_client
|
35
|
+
end
|
36
|
+
|
37
|
+
def check_manifest_dir
|
38
|
+
Dir.mkdir(env.config.puppet.manifests_path) unless File.directory?(env.config.puppet.manifests_path)
|
39
|
+
end
|
40
|
+
|
41
|
+
def share_manifests
|
42
|
+
env.config.vm.share_folder("manifests", env.config.puppet.pp_path, env.config.puppet.manifests_path)
|
43
|
+
end
|
44
|
+
|
45
|
+
def verify_binary(binary)
|
46
|
+
vm.ssh.execute do |ssh|
|
47
|
+
ssh.exec!("which #{binary}", :error_class => PuppetError, :_key => :puppet_not_detected, :binary => binary)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_pp_path
|
52
|
+
vm.ssh.execute do |ssh|
|
53
|
+
ssh.exec!("sudo mkdir -p #{env.config.puppet.pp_path}")
|
54
|
+
ssh.exec!("sudo chown #{env.config.ssh.username} #{env.config.puppet.pp_path}")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def set_manifest
|
59
|
+
@manifest = !env.config.puppet.manifest_file.empty? ? env.config.puppet.manifest_file : "#{env.config.vm.box}.pp"
|
60
|
+
|
61
|
+
if File.exists?("#{env.config.puppet.manifests_path}/#{@manifest}")
|
62
|
+
env.ui.info I18n.t("vagrant.provisioners.puppet.manifest_to_run", :manifest => @manifest)
|
63
|
+
return @manifest
|
64
|
+
else
|
65
|
+
raise PuppetError, :_key => :manifest_missing, :manifest => @manifest
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def run_puppet_client
|
70
|
+
options = env.config.puppet.options
|
71
|
+
options = options.join(" ") if options.is_a?(Array)
|
72
|
+
command = "cd #{env.config.puppet.pp_path} && sudo -E puppet #{options} #{@manifest}"
|
73
|
+
|
74
|
+
env.ui.info I18n.t("vagrant.provisioners.puppet.running_puppet")
|
75
|
+
|
76
|
+
vm.ssh.execute do |ssh|
|
77
|
+
ssh.exec!(command) do |channel, type, data|
|
78
|
+
ssh.check_exit_status(data, command) if type == :exit_status
|
79
|
+
env.ui.info("#{data}: #{type}") if type != :exit_status
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/vagrant/ssh.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'timeout'
|
1
2
|
require 'net/ssh'
|
2
3
|
require 'net/scp'
|
3
4
|
require 'mario'
|
@@ -22,11 +23,11 @@ module Vagrant
|
|
22
23
|
# of options which override the configuration values.
|
23
24
|
def connect(opts={})
|
24
25
|
if Mario::Platform.windows?
|
25
|
-
raise Errors::SSHUnavailableWindows
|
26
|
-
|
26
|
+
raise Errors::SSHUnavailableWindows, :key_path => env.config.ssh.private_key_path,
|
27
|
+
:ssh_port => port(opts)
|
27
28
|
end
|
28
29
|
|
29
|
-
raise Errors::SSHUnavailable
|
30
|
+
raise Errors::SSHUnavailable if !Kernel.system("which ssh > /dev/null 2>&1")
|
30
31
|
|
31
32
|
options = {}
|
32
33
|
options[:port] = port(opts)
|
@@ -60,12 +61,12 @@ module Vagrant
|
|
60
61
|
# Merge in any additional options
|
61
62
|
opts = opts.dup
|
62
63
|
opts[:forward_agent] = true if env.config.ssh.forward_agent
|
64
|
+
opts[:port] ||= port
|
63
65
|
|
64
66
|
retryable(:tries => 5, :on => Errno::ECONNREFUSED) do
|
65
67
|
Net::SSH.start(env.config.ssh.host,
|
66
68
|
env.config.ssh.username,
|
67
|
-
opts.merge( :
|
68
|
-
:keys => [env.config.ssh.private_key_path],
|
69
|
+
opts.merge( :keys => [env.config.ssh.private_key_path],
|
69
70
|
:user_known_hosts_file => [],
|
70
71
|
:paranoid => false,
|
71
72
|
:config => false)) do |ssh|
|
@@ -73,7 +74,7 @@ module Vagrant
|
|
73
74
|
end
|
74
75
|
end
|
75
76
|
rescue Errno::ECONNREFUSED
|
76
|
-
raise Errors::SSHConnectionRefused
|
77
|
+
raise Errors::SSHConnectionRefused
|
77
78
|
end
|
78
79
|
|
79
80
|
# Uploads a file from `from` to `to`. `from` is expected to be a filename
|
@@ -92,21 +93,22 @@ module Vagrant
|
|
92
93
|
#
|
93
94
|
# @return [Boolean]
|
94
95
|
def up?
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
96
|
+
# We have to determine the port outside of the block since it uses
|
97
|
+
# API calls which can only be used from the main thread in JRuby on
|
98
|
+
# Windows
|
99
|
+
ssh_port = port
|
100
|
+
|
101
|
+
Timeout.timeout(env.config.ssh.timeout) do
|
102
|
+
execute(:timeout => env.config.ssh.timeout,
|
103
|
+
:port => ssh_port) { |ssh| }
|
104
104
|
end
|
105
105
|
|
106
|
-
|
107
|
-
return check_thread[:result]
|
106
|
+
true
|
108
107
|
rescue Net::SSH::AuthenticationFailed
|
109
|
-
raise Errors::SSHAuthenticationFailed
|
108
|
+
raise Errors::SSHAuthenticationFailed
|
109
|
+
rescue Timeout::Error, Errno::ECONNREFUSED, Net::SSH::Disconnect,
|
110
|
+
Errors::SSHConnectionRefused, Net::SSH::AuthenticationFailed
|
111
|
+
return false
|
110
112
|
end
|
111
113
|
|
112
114
|
# Checks the file permissions for the private key, resetting them
|
@@ -120,12 +122,12 @@ module Vagrant
|
|
120
122
|
if stat.owned? && file_perms(key_path) != "600"
|
121
123
|
File.chmod(0600, key_path)
|
122
124
|
|
123
|
-
raise Errors::SSHKeyBadPermissions
|
125
|
+
raise Errors::SSHKeyBadPermissions, :key_path => key_path if file_perms(key_path) != "600"
|
124
126
|
end
|
125
127
|
rescue Errno::EPERM
|
126
128
|
# This shouldn't happen since we verify we own the file, but just
|
127
129
|
# in case.
|
128
|
-
raise Errors::SSHKeyBadPermissions
|
130
|
+
raise Errors::SSHKeyBadPermissions, :key_path => key_path
|
129
131
|
end
|
130
132
|
|
131
133
|
# Returns the file permissions of a given file. This is fairly unix specific
|
@@ -227,7 +229,7 @@ module Vagrant
|
|
227
229
|
:command => command
|
228
230
|
}.merge(options || {})
|
229
231
|
|
230
|
-
raise options[:_error_class]
|
232
|
+
raise options[:_error_class], options
|
231
233
|
end
|
232
234
|
end
|
233
235
|
end
|
@@ -13,10 +13,13 @@ module Vagrant
|
|
13
13
|
|
14
14
|
attr_accessor :halt_timeout
|
15
15
|
attr_accessor :halt_check_interval
|
16
|
+
# This sets the command to use to execute items as a superuser. sudo is default
|
17
|
+
attr_accessor :suexec_cmd
|
16
18
|
|
17
19
|
def initialize
|
18
20
|
@halt_timeout = 30
|
19
21
|
@halt_check_interval = 1
|
22
|
+
@suexec_cmd = 'sudo'
|
20
23
|
end
|
21
24
|
end
|
22
25
|
|
@@ -33,7 +36,7 @@ module Vagrant
|
|
33
36
|
def halt
|
34
37
|
vm.env.ui.info I18n.t("vagrant.systems.solaris.attempting_halt")
|
35
38
|
vm.ssh.execute do |ssh|
|
36
|
-
ssh.exec!("
|
39
|
+
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} /usr/sbin/poweroff")
|
37
40
|
end
|
38
41
|
|
39
42
|
# Wait until the VM's state is actually powered off. If this doesn't
|
@@ -49,10 +52,10 @@ module Vagrant
|
|
49
52
|
end
|
50
53
|
|
51
54
|
def mount_shared_folder(ssh, name, guestpath)
|
52
|
-
ssh.exec!("
|
55
|
+
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} mkdir -p #{guestpath}")
|
53
56
|
# Using a custom mount method here; could use improvement.
|
54
|
-
ssh.exec!("
|
55
|
-
ssh.exec!("
|
57
|
+
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} /sbin/mount -F vboxfs #{name} #{guestpath}")
|
58
|
+
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} chown #{vm.env.config.ssh.username} #{guestpath}")
|
56
59
|
end
|
57
60
|
end
|
58
61
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Vagrant
|
2
2
|
module Util
|
3
3
|
# A hash with indifferent access. Mostly taken from Thor/Rails (thanks).
|
4
|
-
# Normally I'm not a fan of using an indifferent access hash
|
4
|
+
# Normally I'm not a fan of using an indifferent access hash since Symbols
|
5
5
|
# are basically memory leaks in Ruby, but since Vagrant is typically a quick
|
6
6
|
# one-off binary run and it doesn't use too many hash keys where this is
|
7
7
|
# used, the effect should be minimal.
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rbconfig'
|
1
2
|
require 'mario'
|
2
3
|
|
3
4
|
module Vagrant
|
@@ -27,13 +28,29 @@ module Vagrant
|
|
27
28
|
false
|
28
29
|
end
|
29
30
|
|
31
|
+
# Returns boolean noting whether this is a 64-bit CPU. This
|
32
|
+
# is not 100% accurate and there could easily be false negatives.
|
33
|
+
#
|
34
|
+
# @return [Boolean]
|
35
|
+
def bit64?
|
36
|
+
["x86_64", "amd64"].include?(RbConfig::CONFIG["host_cpu"])
|
37
|
+
end
|
38
|
+
|
39
|
+
# Returns boolean noting whether this is a 32-bit CPU. This
|
40
|
+
# can easily throw false positives since it relies on {#bit64?}.
|
41
|
+
#
|
42
|
+
# @return [Boolean]
|
43
|
+
def bit32?
|
44
|
+
!bit64?
|
45
|
+
end
|
46
|
+
|
30
47
|
def tar_file_options
|
31
48
|
# create, write only, fail if the file exists, binary if windows
|
32
49
|
File::WRONLY|File::EXCL|File::CREAT|(Mario::Platform.windows? ? File::BINARY : 0)
|
33
50
|
end
|
34
51
|
|
35
52
|
def platform
|
36
|
-
|
53
|
+
RbConfig::CONFIG["host_os"].downcase
|
37
54
|
end
|
38
55
|
end
|
39
56
|
end
|
data/lib/vagrant/version.rb
CHANGED
data/lib/vagrant/vm.rb
CHANGED
@@ -53,15 +53,15 @@ module Vagrant
|
|
53
53
|
|
54
54
|
if system.is_a?(Class)
|
55
55
|
@system = system.new(self)
|
56
|
-
raise Errors::VMSystemError
|
56
|
+
raise Errors::VMSystemError, :_key => :invalid_class, :system => system.to_s if !@system.is_a?(Systems::Base)
|
57
57
|
elsif system.is_a?(Symbol)
|
58
58
|
# Hard-coded internal systems
|
59
|
-
mapping = { :linux => Systems::Linux }
|
59
|
+
mapping = { :linux => Systems::Linux, :solaris => Systems::Solaris }
|
60
60
|
|
61
|
-
raise Errors::VMSystemError
|
61
|
+
raise Errors::VMSystemError, :_key => :unknown_type, :system => system.to_s if !mapping.has_key?(system)
|
62
62
|
@system = mapping[system].new(self)
|
63
63
|
else
|
64
|
-
raise Errors::VMSystemError
|
64
|
+
raise Errors::VMSystemError, :unspecified
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
data/templates/locales/en.yml
CHANGED
@@ -13,6 +13,9 @@ en:
|
|
13
13
|
The chef (either `chef-solo` or `chef-client`) binary was not found on
|
14
14
|
the VM and is required for chef provisioning. Please verify that chef
|
15
15
|
is installed and that the binary is available on the PATH.
|
16
|
+
puppet_not_detected: |-
|
17
|
+
The `puppet` binary was not found on the VM and is required for Puppet provisioning.
|
18
|
+
Please verify that Puppet is installed and that the binary is available on the PATH.
|
16
19
|
cli_missing_env: This command requires that a Vagrant environment be properly passed in as the last parameter.
|
17
20
|
config_validation: |-
|
18
21
|
There was a problem with the configuration of Vagrant. The error message(s)
|
@@ -67,7 +70,7 @@ en:
|
|
67
70
|
|
68
71
|
For a more detailed guide please consult:
|
69
72
|
|
70
|
-
http://vagrantup.com/docs/getting-started/windows
|
73
|
+
http://vagrantup.com/docs/getting-started/windows
|
71
74
|
|
72
75
|
system:
|
73
76
|
invalid_class: |-
|
@@ -99,6 +102,18 @@ en:
|
|
99
102
|
Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
|
100
103
|
If VirtualBox is installed, it may be an incorrect version. Vagrant currently
|
101
104
|
requires VirtualBox 3.2.x. Please install the proper version to continue.
|
105
|
+
virtualbox_not_detected_win64: |-
|
106
|
+
Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed
|
107
|
+
with version 3.2.0 or higher.
|
108
|
+
|
109
|
+
Additionally, it appears you're on 64-bit Windows. If this is the case, and
|
110
|
+
VirtualBox is properly installed with the correct version, then please make
|
111
|
+
sure you're running Vagrant via JRuby on a 64-bit Java runtime. For more
|
112
|
+
information on how to set this up and how to verify it is properly setup,
|
113
|
+
please view the guide online at:
|
114
|
+
|
115
|
+
http://vagrantup.com/docs/getting-started/setup/windows_x64.html
|
116
|
+
|
102
117
|
vm_creation_required: "VM must be created before running this command. Run `vagrant up` first."
|
103
118
|
vm_not_found: "A VM by the name of %{name} was not found."
|
104
119
|
vm_not_running: "VM must be running to open SSH connection."
|
@@ -289,14 +304,19 @@ en:
|
|
289
304
|
This will cause your specified IP to be inaccessible. Please change
|
290
305
|
the IP or name of your host only network to not match that of
|
291
306
|
a bridged or non-hostonly network.
|
292
|
-
creating: Creating new host only network for environment...
|
293
|
-
enabling: Enabling host only network...
|
307
|
+
creating: "Creating new host only network for environment..."
|
308
|
+
enabling: "Enabling host only network..."
|
294
309
|
not_found: |-
|
295
310
|
The specified host network could not be found: '%{name}.'
|
296
311
|
If the name specification is removed, Vagrant will create a new
|
297
312
|
host only network for you. Alternatively, please create the
|
298
313
|
specified network manually.
|
299
|
-
preparing: Preparing host only network...
|
314
|
+
preparing: "Preparing host only network..."
|
315
|
+
windows_not_implemented: |-
|
316
|
+
Host only networking is currently broken on Windows due to a bug
|
317
|
+
in jruby-win32ole. When the bug is fixed, a patch release for Vagrant
|
318
|
+
will be released to remove this error. Until then, please just use
|
319
|
+
forwarded ports.
|
300
320
|
nfs:
|
301
321
|
host_required: |-
|
302
322
|
A host class is required for NFS shared folders. By default, these
|
@@ -416,6 +436,16 @@ en:
|
|
416
436
|
The validation key set for `config.chef.validation_key_path` does not exist! This
|
417
437
|
file needs to exist so it can be uploaded to the virtual machine.
|
418
438
|
|
439
|
+
puppet:
|
440
|
+
not_detected: |-
|
441
|
+
The `%{binary}` binary appears to not be in the PATH of the guest. This
|
442
|
+
could be because the PATH is not properly setup or perhaps Puppet is not
|
443
|
+
installed on this guest. Puppet provisioning can not continue without
|
444
|
+
Puppet properly installed.
|
445
|
+
running_puppet: "Running Puppet..."
|
446
|
+
manifest_to_run: "Puppet will use the %{manifest} manifest to configure your box."
|
447
|
+
manifest_missing: "The Puppet %{manifest} manifest is missing. You cannot configure this box."
|
448
|
+
|
419
449
|
systems:
|
420
450
|
linux:
|
421
451
|
attempting_halt: "Attempting graceful shutdown of linux..."
|