vagrant-parallels 1.3.10 → 1.3.12
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.
- checksums.yaml +4 -4
- data/lib/vagrant-parallels/driver/base.rb +23 -2
- data/lib/vagrant-parallels/driver/meta.rb +4 -11
- data/lib/vagrant-parallels/driver/pd_8.rb +8 -8
- data/lib/vagrant-parallels/version.rb +1 -1
- data/test/unit/support/shared/parallels_context.rb +5 -0
- data/website/docs/build/404.html +134 -0
- data/website/docs/build/docs/boxes/base.html +207 -0
- data/website/docs/build/docs/boxes/index.html +161 -0
- data/website/docs/build/docs/boxes/packer.html +181 -0
- data/website/docs/build/docs/boxes/veewee.html +225 -0
- data/website/docs/build/docs/configuration.html +231 -0
- data/website/docs/build/docs/contacts.html +134 -0
- data/website/docs/build/docs/getting-started.html +164 -0
- data/website/docs/build/docs/index.html +157 -0
- data/website/docs/build/docs/installation/index.html +152 -0
- data/website/docs/build/docs/installation/uninstallation.html +141 -0
- data/website/docs/build/docs/installation/updating.html +139 -0
- data/website/docs/build/docs/networking/forwarded_ports.html +196 -0
- data/website/docs/build/docs/networking/index.html +155 -0
- data/website/docs/build/docs/networking/private_network.html +177 -0
- data/website/docs/build/docs/networking/public_network.html +173 -0
- data/website/docs/build/docs/share.html +151 -0
- data/website/docs/build/docs/usage.html +146 -0
- data/website/docs/build/images/current_pointer-539d41b3.png +0 -0
- data/website/docs/build/images/footer_pd_logo-6ec6c3c6.png +0 -0
- data/website/docs/build/images/footer_vagrant_logo-8c7e7b39.png +0 -0
- data/website/docs/build/images/logo_docs-7e96bb5e.png +0 -0
- data/website/docs/build/images/logo_docs_small-c0512386.png +0 -0
- data/website/docs/build/images/nav_divider-0c73f644.png +0 -0
- data/website/docs/build/images/open_close-8d5572c4.png +0 -0
- data/website/docs/build/index.html +157 -0
- data/website/docs/build/javascripts/backstretch-f9c163c1.js +4 -0
- data/website/docs/build/javascripts/bootstrap.min-98cc7a22.js +7 -0
- data/website/docs/build/javascripts/fittext-b487af57.js +10 -0
- data/website/docs/build/javascripts/grid-overlay-19e89cad.js +19 -0
- data/website/docs/build/javascripts/jquery-15b079d7.js +3 -0
- data/website/docs/build/javascripts/less-1.3.0.min-0bbbfaf9.js +3 -0
- data/website/docs/build/javascripts/modernizr-d56a170f.js +8 -0
- data/website/docs/build/javascripts/vagrant-parallels-966ff22c.js +1 -0
- data/website/docs/build/stylesheets/bootstrap-8082a218.css +9 -0
- data/website/docs/build/stylesheets/vagrant-parallels-a389b6ea.css +1 -0
- metadata +38 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34465669a7296fe6bf908b039f849e9221202c8b
|
4
|
+
data.tar.gz: 77b42b45473b87cd97917cba693100b7c9be71c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21acbf45f344cb8a1fbbff871f6285d6eff031ee7b1440a13e3fbc638e8d7f05ac41923669bf21df7d33c918b131af58719592b0c68fbdac92e9d659cf3d512c
|
7
|
+
data.tar.gz: 4dbd6eb8a9264d84e391b73569295017749fa38c7479ec7cf9589b7ef0d31af520b377946b3d30c128be74b348b3dcc13957c607f83072bd55919c6ee998e1fc
|
@@ -4,6 +4,7 @@ require 'vagrant/util/busy'
|
|
4
4
|
require 'vagrant/util/network_ip'
|
5
5
|
require 'vagrant/util/platform'
|
6
6
|
require 'vagrant/util/subprocess'
|
7
|
+
require 'vagrant/util/which'
|
7
8
|
|
8
9
|
module VagrantPlugins
|
9
10
|
module Parallels
|
@@ -23,8 +24,15 @@ module VagrantPlugins
|
|
23
24
|
# This flag is used to keep track of interrupted state (SIGINT)
|
24
25
|
@interrupted = false
|
25
26
|
|
26
|
-
@prlctl_path =
|
27
|
-
@prlsrvctl_path =
|
27
|
+
@prlctl_path = util_path('prlctl')
|
28
|
+
@prlsrvctl_path = util_path('prlsrvctl')
|
29
|
+
@prldisktool_path = util_path('prl_disk_tool')
|
30
|
+
|
31
|
+
if !@prlctl_path
|
32
|
+
# This means that Parallels Desktop was not found, so we raise this
|
33
|
+
# error here.
|
34
|
+
raise VagrantPlugins::Parallels::Errors::ParallelsNotDetected
|
35
|
+
end
|
28
36
|
|
29
37
|
@logger.info("prlctl path: #{@prlctl_path}")
|
30
38
|
@logger.info("prlsrvctl path: #{@prlsrvctl_path}")
|
@@ -306,6 +314,19 @@ module VagrantPlugins
|
|
306
314
|
Vagrant::Util::Subprocess.execute(*command, &block)
|
307
315
|
end
|
308
316
|
end
|
317
|
+
|
318
|
+
private
|
319
|
+
|
320
|
+
def util_path(bin)
|
321
|
+
path = Vagrant::Util::Which.which(bin)
|
322
|
+
return path if path
|
323
|
+
|
324
|
+
['/usr/local/bin', '/usr/bin'].each do |folder|
|
325
|
+
path = File.join(folder, bin)
|
326
|
+
return path if File.file?(path)
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
309
330
|
end
|
310
331
|
end
|
311
332
|
end
|
@@ -30,13 +30,7 @@ module VagrantPlugins
|
|
30
30
|
|
31
31
|
# Read and assign the version of Parallels Desktop we know which
|
32
32
|
# specific driver to instantiate.
|
33
|
-
|
34
|
-
@version = read_version || ""
|
35
|
-
rescue Vagrant::Errors::CommandUnavailable
|
36
|
-
# This means that Parallels Desktop was not found, so we raise this
|
37
|
-
# error here.
|
38
|
-
raise VagrantPlugins::Parallels::Errors::ParallelsNotDetected
|
39
|
-
end
|
33
|
+
@version = read_version || ''
|
40
34
|
|
41
35
|
# Instantiate the proper version driver for Parallels Desktop
|
42
36
|
@logger.debug("Finding driver for Parallels Desktop version: #{@version}")
|
@@ -82,7 +76,6 @@ module VagrantPlugins
|
|
82
76
|
:delete_unused_host_only_networks,
|
83
77
|
:disable_password_restrictions,
|
84
78
|
:enable_adapters,
|
85
|
-
:execute_prlctl,
|
86
79
|
:export,
|
87
80
|
:forward_ports,
|
88
81
|
:halt,
|
@@ -134,11 +127,11 @@ module VagrantPlugins
|
|
134
127
|
#
|
135
128
|
# But we need exactly the first 3 numbers: "x.x.x"
|
136
129
|
|
137
|
-
if
|
130
|
+
if execute_prlctl('--version') =~ /prlctl version (\d+\.\d+.\d+)/
|
138
131
|
return $1
|
139
|
-
else
|
140
|
-
return nil
|
141
132
|
end
|
133
|
+
|
134
|
+
nil
|
142
135
|
end
|
143
136
|
end
|
144
137
|
end
|
@@ -24,7 +24,7 @@ module VagrantPlugins
|
|
24
24
|
name.start_with? 'hdd'
|
25
25
|
end
|
26
26
|
used_drives.each_value do |drive_params|
|
27
|
-
execute(
|
27
|
+
execute(@prldisktool_path, 'compact', '--hdd', drive_params['image']) do |type, data|
|
28
28
|
lines = data.split("\r")
|
29
29
|
# The progress of the compact will be in the last line. Do a greedy
|
30
30
|
# regular expression to find what we're looking for.
|
@@ -168,9 +168,9 @@ module VagrantPlugins
|
|
168
168
|
end
|
169
169
|
|
170
170
|
def halt(force=false)
|
171
|
-
args = ['
|
171
|
+
args = ['stop', @uuid]
|
172
172
|
args << '--kill' if force
|
173
|
-
|
173
|
+
execute_prlctl(*args)
|
174
174
|
end
|
175
175
|
|
176
176
|
def import(tpl_name)
|
@@ -447,7 +447,7 @@ module VagrantPlugins
|
|
447
447
|
end
|
448
448
|
|
449
449
|
def register(pvm_file)
|
450
|
-
args = [
|
450
|
+
args = [@prlctl_path, 'register', pvm_file]
|
451
451
|
|
452
452
|
3.times do
|
453
453
|
result = raw(*args)
|
@@ -465,7 +465,7 @@ module VagrantPlugins
|
|
465
465
|
# If we reach this point, it means that we consistently got the
|
466
466
|
# failure, do a standard execute now. This will raise an
|
467
467
|
# exception if it fails again.
|
468
|
-
|
468
|
+
execute_prlctl(*args)
|
469
469
|
end
|
470
470
|
|
471
471
|
def registered?(uuid)
|
@@ -516,7 +516,7 @@ module VagrantPlugins
|
|
516
516
|
end
|
517
517
|
|
518
518
|
def unregister(uuid)
|
519
|
-
args = [
|
519
|
+
args = [@prlctl_path, 'unregister', uuid]
|
520
520
|
3.times do
|
521
521
|
result = raw(*args)
|
522
522
|
# Exit if everything is OK
|
@@ -534,7 +534,7 @@ module VagrantPlugins
|
|
534
534
|
# If we reach this point, it means that we consistently got the
|
535
535
|
# failure, do a standard execute now. This will raise an
|
536
536
|
# exception if it fails again.
|
537
|
-
|
537
|
+
execute_prlctl(*args)
|
538
538
|
end
|
539
539
|
|
540
540
|
def unshare_folders(names)
|
@@ -545,7 +545,7 @@ module VagrantPlugins
|
|
545
545
|
|
546
546
|
def vm_exists?(uuid)
|
547
547
|
5.times do |i|
|
548
|
-
result = raw(
|
548
|
+
result = raw(@prlctl_path, 'list', uuid)
|
549
549
|
return true if result.exit_code == 0
|
550
550
|
|
551
551
|
# Sometimes this happens. In this case, retry. If
|
@@ -31,6 +31,11 @@ shared_context 'parallels' do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
before do
|
34
|
+
# Consider that 'prlctl' and 'prlsrvctl' binaries are available
|
35
|
+
allow(Vagrant::Util::Which).to receive(:which).with('prlctl').and_return('prlctl')
|
36
|
+
allow(Vagrant::Util::Which).to receive(:which).with('prlsrvctl').and_return('prlsrvctl')
|
37
|
+
allow(Vagrant::Util::Which).to receive(:which).with('prl_disk_tool').and_return('prl_disk_tool')
|
38
|
+
|
34
39
|
# we don't want unit tests to ever run commands on the system; so we wire
|
35
40
|
# in a double to ensure any unexpected messages raise exceptions
|
36
41
|
stub_const('Vagrant::Util::Subprocess', subprocess)
|
@@ -0,0 +1,134 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
|
6
|
+
<title>Vagrant Parallels Provider Documentation</title>
|
7
|
+
|
8
|
+
<!-- meta -->
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
10
|
+
|
11
|
+
<!-- lib styles -->
|
12
|
+
<link href="stylesheets/bootstrap-8082a218.css" media="screen" rel="stylesheet" type="text/css" />
|
13
|
+
<link href="stylesheets/vagrant-parallels-a389b6ea.css" media="screen" rel="stylesheet" type="text/css" />
|
14
|
+
|
15
|
+
<!-- lib js -->
|
16
|
+
<script src="javascripts/jquery-15b079d7.js" type="text/javascript"></script>
|
17
|
+
<script src="javascripts/modernizr-d56a170f.js" type="text/javascript"></script>
|
18
|
+
<script src="javascripts/bootstrap.min-98cc7a22.js" type="text/javascript"></script>
|
19
|
+
<script src="javascripts/backstretch-f9c163c1.js" type="text/javascript"></script>
|
20
|
+
<script src="javascripts/vagrant-parallels-966ff22c.js" type="text/javascript"></script>
|
21
|
+
|
22
|
+
<!-- fonts -->
|
23
|
+
<link href='http://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
|
24
|
+
|
25
|
+
</head>
|
26
|
+
<body>
|
27
|
+
<!-- wrap everything -->
|
28
|
+
<div class="wrapper">
|
29
|
+
|
30
|
+
<!-- nav -->
|
31
|
+
|
32
|
+
<nav class="docs">
|
33
|
+
<div class="container">
|
34
|
+
<!-- vagrant logo -->
|
35
|
+
<a class="vagrant-docs-logo" href="docs/">Vagrant Parallels Documentation</a>
|
36
|
+
<!-- nav -->
|
37
|
+
<ul class="pull-right">
|
38
|
+
<li><a href="https://docs.vagrantup.com">Vagrant Docs</a></li>
|
39
|
+
<li><a href="https://github.com/Parallels/vagrant-parallels">Github</a></li>
|
40
|
+
</ul>
|
41
|
+
</div> <!-- container -->
|
42
|
+
</nav>
|
43
|
+
|
44
|
+
<div class="page docs docs-home">
|
45
|
+
<div class="container">
|
46
|
+
<div class="sidebar span4">
|
47
|
+
<!-- get the sidebar nav -->
|
48
|
+
<!-- side nav docs -->
|
49
|
+
<aside class="sidebar-nav">
|
50
|
+
|
51
|
+
<div class="toggle hidden-desktop">
|
52
|
+
<div class="open-close open"></div>
|
53
|
+
<a href="#">Contents</a>
|
54
|
+
</div>
|
55
|
+
|
56
|
+
<ul class="unstyled">
|
57
|
+
<li><a href="docs/">Overview</a></li>
|
58
|
+
|
59
|
+
<li><a href="docs/installation/">Installation</a></li>
|
60
|
+
|
61
|
+
|
62
|
+
<li><a href="docs/usage.html">Usage</a></li>
|
63
|
+
|
64
|
+
<li><a href="docs/getting-started.html">Getting Started</a></li>
|
65
|
+
|
66
|
+
<li><a href="docs/share.html">Vagrant Share</a></li>
|
67
|
+
|
68
|
+
<li><a href="docs/boxes/">Boxes</a></li>
|
69
|
+
|
70
|
+
|
71
|
+
<li><a href="docs/configuration.html">Configuration</a></li>
|
72
|
+
|
73
|
+
<li><a href="docs/networking/">Networking</a></li>
|
74
|
+
|
75
|
+
|
76
|
+
<li><a href="docs/contacts.html">Contacts</a></li>
|
77
|
+
|
78
|
+
</ul>
|
79
|
+
</aside> <!-- /.sidebar -->
|
80
|
+
</div> <!-- /.sidebar -->
|
81
|
+
|
82
|
+
<div class="page-contents span9">
|
83
|
+
<div class="page-background"></div>
|
84
|
+
|
85
|
+
<!-- start page content -->
|
86
|
+
<div class="row">
|
87
|
+
<div class="span8 offset1">
|
88
|
+
<h2>Page Not Found</h4>
|
89
|
+
|
90
|
+
<p>
|
91
|
+
Sorry, the page you tried to visit doesn't exist. This could be our fault,
|
92
|
+
and if so we'll fix that up right away. Please go back, or go back
|
93
|
+
<a href="/">home</a> to get back on track.
|
94
|
+
</p>
|
95
|
+
|
96
|
+
</div> <!-- /.span8 -->
|
97
|
+
</div> <!-- /.row -->
|
98
|
+
</div> <!-- /.page-contents -->
|
99
|
+
</div> <!-- /.container -->
|
100
|
+
</div> <!-- /.page -->
|
101
|
+
|
102
|
+
<!-- footer -->
|
103
|
+
<footer>
|
104
|
+
<div class="container">
|
105
|
+
<div class="row">
|
106
|
+
<ul class="unstyled logos">
|
107
|
+
<a href="http://www.vagrantup.com/downloads.html">
|
108
|
+
<li class="vagrant-logo-monochrome">
|
109
|
+
<p>Vagrant</p>
|
110
|
+
</li>
|
111
|
+
</a>
|
112
|
+
<a href="http://www.parallels.com/downloads/desktop/">
|
113
|
+
<li class="pd-logo-monochrome">
|
114
|
+
<p>Parallels Desktop</p>
|
115
|
+
</li>
|
116
|
+
</a>
|
117
|
+
</ul> <!-- /span -->
|
118
|
+
|
119
|
+
</div> <!-- /row -->
|
120
|
+
|
121
|
+
<div class="row">
|
122
|
+
<h6 class="legal">
|
123
|
+
© 2015 Parallels IP Holdings GmbH.
|
124
|
+
</h6>
|
125
|
+
</div> <!-- row -->
|
126
|
+
</div> <!-- container -->
|
127
|
+
</footer>
|
128
|
+
|
129
|
+
<!-- close .wrapper -->
|
130
|
+
</div>
|
131
|
+
|
132
|
+
<!-- load scripts -->
|
133
|
+
</body>
|
134
|
+
</html>
|
@@ -0,0 +1,207 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
|
6
|
+
<title> Creating a Base Box - Vagrant Parallels Provider Documentation</title>
|
7
|
+
|
8
|
+
<!-- meta -->
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
10
|
+
|
11
|
+
<!-- lib styles -->
|
12
|
+
<link href="../../stylesheets/bootstrap-8082a218.css" media="screen" rel="stylesheet" type="text/css" />
|
13
|
+
<link href="../../stylesheets/vagrant-parallels-a389b6ea.css" media="screen" rel="stylesheet" type="text/css" />
|
14
|
+
|
15
|
+
<!-- lib js -->
|
16
|
+
<script src="../../javascripts/jquery-15b079d7.js" type="text/javascript"></script>
|
17
|
+
<script src="../../javascripts/modernizr-d56a170f.js" type="text/javascript"></script>
|
18
|
+
<script src="../../javascripts/bootstrap.min-98cc7a22.js" type="text/javascript"></script>
|
19
|
+
<script src="../../javascripts/backstretch-f9c163c1.js" type="text/javascript"></script>
|
20
|
+
<script src="../../javascripts/vagrant-parallels-966ff22c.js" type="text/javascript"></script>
|
21
|
+
|
22
|
+
<!-- fonts -->
|
23
|
+
<link href='http://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
|
24
|
+
|
25
|
+
</head>
|
26
|
+
<body>
|
27
|
+
<!-- wrap everything -->
|
28
|
+
<div class="wrapper">
|
29
|
+
|
30
|
+
<!-- nav -->
|
31
|
+
|
32
|
+
<nav class="docs">
|
33
|
+
<div class="container">
|
34
|
+
<!-- vagrant logo -->
|
35
|
+
<a class="vagrant-docs-logo" href="../">Vagrant Parallels Documentation</a>
|
36
|
+
<!-- nav -->
|
37
|
+
<ul class="pull-right">
|
38
|
+
<li><a href="https://docs.vagrantup.com">Vagrant Docs</a></li>
|
39
|
+
<li><a href="https://github.com/Parallels/vagrant-parallels">Github</a></li>
|
40
|
+
</ul>
|
41
|
+
</div> <!-- container -->
|
42
|
+
</nav>
|
43
|
+
|
44
|
+
<div class="page docs docs-home">
|
45
|
+
<div class="container">
|
46
|
+
<div class="sidebar span4">
|
47
|
+
<!-- get the sidebar nav -->
|
48
|
+
<!-- side nav docs -->
|
49
|
+
<aside class="sidebar-nav">
|
50
|
+
|
51
|
+
<div class="toggle hidden-desktop">
|
52
|
+
<div class="open-close open"></div>
|
53
|
+
<a href="#">Contents</a>
|
54
|
+
</div>
|
55
|
+
|
56
|
+
<ul class="unstyled">
|
57
|
+
<li><a href="../">Overview</a></li>
|
58
|
+
|
59
|
+
<li><a href="../installation/">Installation</a></li>
|
60
|
+
|
61
|
+
|
62
|
+
<li><a href="../usage.html">Usage</a></li>
|
63
|
+
|
64
|
+
<li><a href="../getting-started.html">Getting Started</a></li>
|
65
|
+
|
66
|
+
<li><a href="../share.html">Vagrant Share</a></li>
|
67
|
+
|
68
|
+
<li><a href="./">Boxes</a></li>
|
69
|
+
|
70
|
+
<ul class="sub unstyled">
|
71
|
+
<li class="current"><a href="base.html">Creating a Base Box</a></li>
|
72
|
+
<li><a href="packer.html">Using Packer</a></li>
|
73
|
+
<li><a href="veewee.html">Using Veewee</a></li>
|
74
|
+
</ul>
|
75
|
+
|
76
|
+
|
77
|
+
<li><a href="../configuration.html">Configuration</a></li>
|
78
|
+
|
79
|
+
<li><a href="../networking/">Networking</a></li>
|
80
|
+
|
81
|
+
|
82
|
+
<li><a href="../contacts.html">Contacts</a></li>
|
83
|
+
|
84
|
+
</ul>
|
85
|
+
</aside> <!-- /.sidebar -->
|
86
|
+
</div> <!-- /.sidebar -->
|
87
|
+
|
88
|
+
<div class="page-contents span9">
|
89
|
+
<div class="page-background"></div>
|
90
|
+
|
91
|
+
<!-- start page content -->
|
92
|
+
<div class="row">
|
93
|
+
<div class="span8 offset1">
|
94
|
+
<h1>Creating a Base Box</h1>
|
95
|
+
|
96
|
+
<div class="alert alert-warn">
|
97
|
+
<p>
|
98
|
+
<strong>Warning: Advanced Topic!</strong> Creating a base box can be a
|
99
|
+
time consuming and tedious process, and is not recommended for new
|
100
|
+
Vagrant users. If you're just getting started with Vagrant, we
|
101
|
+
recommend trying to find <a href="https://atlas.hashicorp.com/parallels">
|
102
|
+
existing base boxes</a> to use first.
|
103
|
+
</p>
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<p>This page documents the box format so that you can create your own base boxes
|
107
|
+
manually.</p>
|
108
|
+
|
109
|
+
<p>Prior to reading this page, please check out the <a href="http://docs.vagrantup.com/v2/boxes/format.html">basics of the Vagrant
|
110
|
+
box file format</a>.</p>
|
111
|
+
|
112
|
+
<h2>Contents</h2>
|
113
|
+
|
114
|
+
<p>A Parallels base box is a compressed archive of the necessary contents of
|
115
|
+
a Parallels "pvm" file. Here is an example of what is contained in such a box:</p>
|
116
|
+
|
117
|
+
<pre><code>$ tree
|
118
|
+
.
|
119
|
+
├── Vagrantfile
|
120
|
+
├── box.pvm
|
121
|
+
│ ├── NVRAM.dat
|
122
|
+
│ ├── VmInfo.pvi
|
123
|
+
│ ├── config.pvs
|
124
|
+
│ └── harddisk.hdd
|
125
|
+
│ └── ...
|
126
|
+
└── metadata.json
|
127
|
+
</code></pre>
|
128
|
+
|
129
|
+
<p><code>config.pvs</code> and <code>.hdd</code> files are strictly required for a Parallels virtual
|
130
|
+
machine.</p>
|
131
|
+
|
132
|
+
<p>There is also the "metadata.json" file used by Vagrant itself. This file
|
133
|
+
contains nothing but the defaults which are documented on the <a href="http://docs.vagrantup.com/v2/boxes/format.html">box format</a> page.</p>
|
134
|
+
|
135
|
+
<h2>Installed Software</h2>
|
136
|
+
|
137
|
+
<p>Base boxes for the Parallels provider should have the following software
|
138
|
+
installed, as a bare minimum:</p>
|
139
|
+
|
140
|
+
<ul>
|
141
|
+
<li><p>SSH server with key-based authentication setup. If you want the box to work
|
142
|
+
with default Vagrant settings, the SSH user must be set to accept the <a href="https://github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub">insecure
|
143
|
+
keypair</a>
|
144
|
+
that ships with Vagrant.</p></li>
|
145
|
+
<li><p><a href="http://download.parallels.com/desktop/v9/ga/docs/en_US/
|
146
|
+
Parallels%20Desktop%20User&#x27;s%20Guide/32791.htm">Parallels Tools</a> so that things such as shared
|
147
|
+
folders can function. There are many other benefits to installing the tools,
|
148
|
+
such as networking configuration and device mapping.</p></li>
|
149
|
+
</ul>
|
150
|
+
|
151
|
+
<h2>Optimizing the Box Size</h2>
|
152
|
+
|
153
|
+
<p>Prior to packaging up a box, you should shrink the hard drives as much as
|
154
|
+
possible. This can be done with <code>prl_disk_tool</code>:</p>
|
155
|
+
|
156
|
+
<pre><code>$ prl_disk_tool compact /path/to/harddisk.hdd
|
157
|
+
</code></pre>
|
158
|
+
|
159
|
+
<h2>Packaging</h2>
|
160
|
+
|
161
|
+
<p>Remove any extraneous files from the "pvm" folder and package it. Be sure to
|
162
|
+
compress the tar with gzip (done below in a single command) since Parallels
|
163
|
+
hard disks are not compressed by default.</p>
|
164
|
+
|
165
|
+
<pre><code>$ cd /path/to/my/box.pvm/..
|
166
|
+
$ tar cvzf custom.box ./box.pvm ./Vagrantfile ./metadata.json
|
167
|
+
</code></pre>
|
168
|
+
|
169
|
+
</div> <!-- /.span8 -->
|
170
|
+
</div> <!-- /.row -->
|
171
|
+
</div> <!-- /.page-contents -->
|
172
|
+
</div> <!-- /.container -->
|
173
|
+
</div> <!-- /.page -->
|
174
|
+
|
175
|
+
<!-- footer -->
|
176
|
+
<footer>
|
177
|
+
<div class="container">
|
178
|
+
<div class="row">
|
179
|
+
<ul class="unstyled logos">
|
180
|
+
<a href="http://www.vagrantup.com/downloads.html">
|
181
|
+
<li class="vagrant-logo-monochrome">
|
182
|
+
<p>Vagrant</p>
|
183
|
+
</li>
|
184
|
+
</a>
|
185
|
+
<a href="http://www.parallels.com/downloads/desktop/">
|
186
|
+
<li class="pd-logo-monochrome">
|
187
|
+
<p>Parallels Desktop</p>
|
188
|
+
</li>
|
189
|
+
</a>
|
190
|
+
</ul> <!-- /span -->
|
191
|
+
|
192
|
+
</div> <!-- /row -->
|
193
|
+
|
194
|
+
<div class="row">
|
195
|
+
<h6 class="legal">
|
196
|
+
© 2015 Parallels IP Holdings GmbH.
|
197
|
+
</h6>
|
198
|
+
</div> <!-- row -->
|
199
|
+
</div> <!-- container -->
|
200
|
+
</footer>
|
201
|
+
|
202
|
+
<!-- close .wrapper -->
|
203
|
+
</div>
|
204
|
+
|
205
|
+
<!-- load scripts -->
|
206
|
+
</body>
|
207
|
+
</html>
|