vagrant-lxc 0.3.4 → 0.4.0
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/CHANGELOG.md +34 -14
- data/Gemfile +5 -4
- data/Gemfile.lock +33 -21
- data/Guardfile +4 -15
- data/README.md +76 -158
- data/boxes/common/lxc-template +229 -0
- data/boxes/common/lxc.conf +49 -0
- data/boxes/common/metadata.json +4 -0
- data/boxes/debian/finalize +195 -0
- data/boxes/debian/lxc-template +13 -9
- data/boxes/ubuntu/finalize +368 -0
- data/boxes/ubuntu/lxc-template +1 -2
- data/development/Vagrantfile +10 -6
- data/development/site.pp +1 -1
- data/example/Vagrantfile +13 -22
- data/lib/vagrant-lxc/action/boot.rb +2 -0
- data/lib/vagrant-lxc/action/create.rb +1 -0
- data/lib/vagrant-lxc/action/handle_box_metadata.rb +15 -2
- data/lib/vagrant-lxc/action/setup_package_files.rb +3 -0
- data/lib/vagrant-lxc/driver.rb +4 -2
- data/lib/vagrant-lxc/driver/cli.rb +7 -2
- data/lib/vagrant-lxc/errors.rb +2 -2
- data/lib/vagrant-lxc/version.rb +1 -1
- data/locales/en.yml +9 -1
- data/spec/Vagrantfile +1 -4
- data/spec/acceptance/sanity_check_spec.rb +1 -4
- data/spec/unit/action/clear_forwarded_ports_spec.rb +4 -3
- data/spec/unit/action/compress_rootfs_spec.rb +5 -5
- data/spec/unit/action/forward_ports_spec.rb +5 -5
- data/spec/unit/action/handle_box_metadata_spec.rb +5 -5
- data/spec/unit/action/setup_package_files_spec.rb +32 -14
- data/spec/unit/driver/cli_spec.rb +4 -2
- data/spec/unit/driver_spec.rb +13 -11
- data/tasks/boxes.rake +26 -96
- data/tasks/boxes.v2.rake +181 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70552f58b3dff461e6c8f585b581fcbe48eb8e33
|
4
|
+
data.tar.gz: 1e83aa6c65f3c3d82f78902db6def724fe13c262
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9c31869f568c381c36b49f5a2653d1479cb4598bb58c8b277afdd7e35b09f7db5613a493fe8eac58761cc23cc4dea52f93286a2883b3917fd59bbaaf8e29ee4
|
7
|
+
data.tar.gz: c82b8cb7240620f0d7e23e7969d73f16cf35752ef8044927de2fe3a027cf864cdb0b8819844bb6ace0d9f0afcc70dc07f1598db43b5f3d2707827e9af542e577
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,19 @@
|
|
1
|
-
## [0
|
1
|
+
## [0.4.0](https://github.com/fgrehm/vagrant-lxc/compare/v0.3.4...master) (unreleased)
|
2
|
+
|
3
|
+
FEATURES:
|
4
|
+
|
5
|
+
- New box format [#89](https://github.com/fgrehm/vagrant-lxc/issues/89)
|
6
|
+
|
7
|
+
BUG FIXES:
|
8
|
+
|
9
|
+
- Add translation for stopped status [#97](https://github.com/fgrehm/vagrant-lxc/issues/97)
|
10
|
+
- Enable retries when fetching container state [#74](https://github.com/fgrehm/vagrant-lxc/issues/74)
|
11
|
+
- Fix error when setting Debian boxes hostname from Vagrantfile [#91](https://github.com/fgrehm/vagrant-lxc/issues/91)
|
12
|
+
- BTRFS-friendly base boxes [#81](https://github.com/fgrehm/vagrant-lxc/issues/81)
|
13
|
+
- Extended templates path lookup [#77](https://github.com/fgrehm/vagrant-lxc/issues/77) (tks to @aries1980)
|
14
|
+
- Fix default group for packaged boxes tarballs on the rake task [#82](https://github.com/fgrehm/vagrant-lxc/issues/82) (tks to @cduez)
|
15
|
+
|
16
|
+
## [0.3.4](https://github.com/fgrehm/vagrant-lxc/compare/v0.3.3...v0.3.4) (May 08, 2013)
|
2
17
|
|
3
18
|
FEATURES:
|
4
19
|
|
@@ -7,16 +22,21 @@ FEATURES:
|
|
7
22
|
|
8
23
|
IMPROVEMENTS:
|
9
24
|
|
10
|
-
-
|
25
|
+
- Replace `lxc-wait` usage with a "[retry mechanism](https://github.com/fgrehm/vagrant-lxc/commit/3cca16824879731315dac32bc2df1c643f30d461#L2R88)" [#22](https://github.com/fgrehm/vagrant-lxc/issues/22)
|
26
|
+
- Remove `/tmp` files after the machine has been successfully shut down [#68](https://github.com/fgrehm/vagrant-lxc/issues/68)
|
11
27
|
- Clean up base boxes files after they've been configured, resulting in smaller packages
|
12
28
|
- Bump development dependency to Vagrant 1.2+ series
|
13
29
|
|
30
|
+
BUG FIXES:
|
31
|
+
|
32
|
+
- Issue a `lxc-stop` in case the container cannot shutdown gracefully [#72](https://github.com/fgrehm/vagrant-lxc/issues/72)
|
33
|
+
|
14
34
|
## [0.3.3](https://github.com/fgrehm/vagrant-lxc/compare/v0.3.2...v0.3.3) (April 23, 2013)
|
15
35
|
|
16
36
|
BUG FIXES:
|
17
37
|
|
18
|
-
- Properly kill `redir` child processes [#59]
|
19
|
-
- Use `uname -m` on base Ubuntu lxc-template [#53]
|
38
|
+
- Properly kill `redir` child processes [#59](https://github.com/fgrehm/vagrant-lxc/issues/59)
|
39
|
+
- Use `uname -m` on base Ubuntu lxc-template [#53](https://github.com/fgrehm/vagrant-lxc/issues/53)
|
20
40
|
|
21
41
|
IMPROVEMENTS:
|
22
42
|
|
@@ -39,20 +59,20 @@ BACKWARDS INCOMPATIBILITIES:
|
|
39
59
|
- `start_opts` config was renamed to `customize`, please check the README for the expected parameters
|
40
60
|
- V1 boxes are no longer supported
|
41
61
|
- `target_rootfs_path` is no longer supported, just symlink `/var/lib/lxc` to the desired folder in case you want to point it to another partition
|
42
|
-
- Removed support for configuring private networks. It will come back at some point in the future but if you need it you should be able to set using `customize 'network.ipv4', '1.2.3.4'`
|
62
|
+
- Removed support for configuring private networks. It will come back at some point in the future but if you need it you should be able to set using `customize 'network.ipv4', '1.2.3.4/24'`
|
43
63
|
|
44
64
|
IMPROVEMENTS:
|
45
65
|
|
46
66
|
- lxc templates are removed from lxc template dir after container is created
|
47
67
|
- Treat NFS shared folders as a normal shared folder instead of ignoring it so we can share the same Vagrantfile with VBox environments
|
48
|
-
- Support for lxc 0.7.5 (tested on Ubuntu 12.04) [#49]
|
49
|
-
- Remove `/tmp` files when packaging quantal64 base box [#48]
|
50
|
-
- Avoid picking the best mirror on quantal64 base box [#38]
|
68
|
+
- Support for lxc 0.7.5 (tested on Ubuntu 12.04) [#49](https://github.com/fgrehm/vagrant-lxc/issues/49)
|
69
|
+
- Remove `/tmp` files when packaging quantal64 base box [#48](https://github.com/fgrehm/vagrant-lxc/issues/48)
|
70
|
+
- Avoid picking the best mirror on quantal64 base box [#38](https://github.com/fgrehm/vagrant-lxc/issues/38)
|
51
71
|
|
52
72
|
BUG FIXES:
|
53
73
|
|
54
|
-
- Redirect `redir`'s stderr output to `/dev/null` [#51]
|
55
|
-
- Switch from `ifconfig` to `ip` to grab container's IP to avoid localization issues [#50]
|
74
|
+
- Redirect `redir`'s stderr output to `/dev/null` [#51](https://github.com/fgrehm/vagrant-lxc/issues/51)
|
75
|
+
- Switch from `ifconfig` to `ip` to grab container's IP to avoid localization issues [#50](https://github.com/fgrehm/vagrant-lxc/issues/50)
|
56
76
|
|
57
77
|
## [0.2.0](https://github.com/fgrehm/vagrant-lxc/compare/v0.1.1...v0.2.0) (March 30, 2013)
|
58
78
|
|
@@ -61,16 +81,16 @@ BUG FIXES:
|
|
61
81
|
## [0.1.1](https://github.com/fgrehm/vagrant-lxc/compare/v0.1.0...v0.1.1) (March 29, 2013)
|
62
82
|
|
63
83
|
- Removed support for development under Vagrant < 1.1
|
64
|
-
- Removed rsync from base quantal64 box to speed up containers creation [#40]
|
65
|
-
- Containers are now named after project's root dir [#14]
|
84
|
+
- Removed rsync from base quantal64 box to speed up containers creation [#40](https://github.com/fgrehm/vagrant-lxc/issues/40)
|
85
|
+
- Containers are now named after project's root dir [#14](https://github.com/fgrehm/vagrant-lxc/issues/14)
|
66
86
|
- Skip Vagrant's built in SSH redirect
|
67
|
-
- Allow setting rootfs from Vagrantfile [#30]
|
87
|
+
- Allow setting rootfs from Vagrantfile [#30](https://github.com/fgrehm/vagrant-lxc/issues/30)
|
68
88
|
|
69
89
|
## [0.1.0](https://github.com/fgrehm/vagrant-lxc/compare/v0.0.3...v0.1.0) (March 27, 2013)
|
70
90
|
|
71
91
|
- Support for chef added to base quantal64 box
|
72
92
|
- Puppet upgraded to 3.1.1 on base quantal64 box
|
73
|
-
- Port forwarding support added [#6]
|
93
|
+
- Port forwarding support added [#6](https://github.com/fgrehm/vagrant-lxc/issues/6)
|
74
94
|
|
75
95
|
## Previous
|
76
96
|
|
data/Gemfile
CHANGED
@@ -3,9 +3,10 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
|
7
|
-
gem 'vagrant',
|
8
|
-
gem 'vagrant-
|
6
|
+
gem 'vagrant', github: 'mitchellh/vagrant'
|
7
|
+
gem 'vagrant-cachier', github: 'fgrehm/vagrant-cachier'
|
8
|
+
gem 'vagrant-pristine', github: 'fgrehm/vagrant-pristine'
|
9
|
+
gem 'vagrant-omnibus'
|
9
10
|
gem 'guard'
|
10
11
|
gem 'guard-rspec'
|
11
12
|
gem 'rb-inotify'
|
@@ -14,7 +15,7 @@ end
|
|
14
15
|
|
15
16
|
group :development, :test do
|
16
17
|
gem 'rake'
|
17
|
-
gem 'rspec'
|
18
|
+
gem 'rspec', '~> 2.13.0'
|
18
19
|
gem 'rspec-fire', require: 'rspec/fire'
|
19
20
|
gem 'rspec-spies', require: false
|
20
21
|
gem 'coveralls', require: false
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,23 @@
|
|
1
1
|
GIT
|
2
|
-
remote:
|
3
|
-
revision:
|
2
|
+
remote: git://github.com/fgrehm/vagrant-cachier.git
|
3
|
+
revision: ae6cb5bcfbdbb2157867d77ded8f2b6f430c0f6c
|
4
4
|
specs:
|
5
|
-
vagrant (
|
5
|
+
vagrant-cachier (0.2.0)
|
6
|
+
|
7
|
+
GIT
|
8
|
+
remote: git://github.com/fgrehm/vagrant-pristine.git
|
9
|
+
revision: 45a8d75f048bd611e337583496eb2b48b6998bbd
|
10
|
+
specs:
|
11
|
+
vagrant-pristine (0.1.0)
|
12
|
+
|
13
|
+
GIT
|
14
|
+
remote: git://github.com/mitchellh/vagrant.git
|
15
|
+
revision: 6d26c86c4c3f65e2e59f4dda6bca9cd9235de704
|
16
|
+
specs:
|
17
|
+
vagrant (1.2.4.dev)
|
6
18
|
childprocess (~> 0.3.7)
|
7
19
|
erubis (~> 2.7.0)
|
8
20
|
i18n (~> 0.6.0)
|
9
|
-
json (>= 1.5.1, < 1.8.0)
|
10
21
|
log4r (~> 1.1.9)
|
11
22
|
net-scp (~> 1.1.0)
|
12
23
|
net-ssh (~> 2.6.6)
|
@@ -14,7 +25,7 @@ GIT
|
|
14
25
|
PATH
|
15
26
|
remote: .
|
16
27
|
specs:
|
17
|
-
vagrant-lxc (0.
|
28
|
+
vagrant-lxc (0.4.0)
|
18
29
|
|
19
30
|
GEM
|
20
31
|
remote: https://rubygems.org/
|
@@ -31,36 +42,35 @@ GEM
|
|
31
42
|
thor
|
32
43
|
diff-lcs (1.2.4)
|
33
44
|
erubis (2.7.0)
|
34
|
-
ffi (1.
|
45
|
+
ffi (1.9.0)
|
35
46
|
formatador (0.2.4)
|
36
|
-
guard (1.8.
|
47
|
+
guard (1.8.1)
|
37
48
|
formatador (>= 0.2.4)
|
38
49
|
listen (>= 1.0.0)
|
39
50
|
lumberjack (>= 1.0.2)
|
40
51
|
pry (>= 0.9.10)
|
41
52
|
thor (>= 0.14.6)
|
42
|
-
guard-rspec (
|
53
|
+
guard-rspec (3.0.2)
|
43
54
|
guard (>= 1.8)
|
44
55
|
rspec (~> 2.13)
|
45
56
|
i18n (0.6.4)
|
46
|
-
|
47
|
-
listen (1.0.3)
|
57
|
+
listen (1.2.2)
|
48
58
|
rb-fsevent (>= 0.9.3)
|
49
59
|
rb-inotify (>= 0.9)
|
50
60
|
rb-kqueue (>= 0.2)
|
51
61
|
log4r (1.1.10)
|
52
|
-
lumberjack (1.0.
|
62
|
+
lumberjack (1.0.4)
|
53
63
|
method_source (0.8.1)
|
54
64
|
mime-types (1.23)
|
55
|
-
multi_json (1.7.
|
56
|
-
net-scp (1.1.
|
65
|
+
multi_json (1.7.7)
|
66
|
+
net-scp (1.1.2)
|
57
67
|
net-ssh (>= 2.6.5)
|
58
|
-
net-ssh (2.6.
|
59
|
-
pry (0.9.12.
|
68
|
+
net-ssh (2.6.8)
|
69
|
+
pry (0.9.12.2)
|
60
70
|
coderay (~> 1.0.5)
|
61
71
|
method_source (~> 0.8)
|
62
72
|
slop (~> 3.4)
|
63
|
-
rake (10.0
|
73
|
+
rake (10.1.0)
|
64
74
|
rb-fsevent (0.9.3)
|
65
75
|
rb-inotify (0.9.0)
|
66
76
|
ffi (>= 0.5.0)
|
@@ -75,7 +85,7 @@ GEM
|
|
75
85
|
rspec-core (2.13.1)
|
76
86
|
rspec-expectations (2.13.0)
|
77
87
|
diff-lcs (>= 1.1.3, < 2.0)
|
78
|
-
rspec-fire (1.
|
88
|
+
rspec-fire (1.2.0)
|
79
89
|
rspec (~> 2.11)
|
80
90
|
rspec-mocks (2.13.1)
|
81
91
|
rspec-spies (2.1.4)
|
@@ -84,9 +94,9 @@ GEM
|
|
84
94
|
multi_json (~> 1.0)
|
85
95
|
simplecov-html (~> 0.7.1)
|
86
96
|
simplecov-html (0.7.1)
|
87
|
-
slop (3.4.
|
97
|
+
slop (3.4.5)
|
88
98
|
thor (0.18.1)
|
89
|
-
vagrant-
|
99
|
+
vagrant-omnibus (1.1.0)
|
90
100
|
|
91
101
|
PLATFORMS
|
92
102
|
ruby
|
@@ -97,9 +107,11 @@ DEPENDENCIES
|
|
97
107
|
guard-rspec
|
98
108
|
rake
|
99
109
|
rb-inotify
|
100
|
-
rspec
|
110
|
+
rspec (~> 2.13.0)
|
101
111
|
rspec-fire
|
102
112
|
rspec-spies
|
103
113
|
vagrant!
|
104
|
-
vagrant-cachier
|
114
|
+
vagrant-cachier!
|
105
115
|
vagrant-lxc!
|
116
|
+
vagrant-omnibus
|
117
|
+
vagrant-pristine!
|
data/Guardfile
CHANGED
@@ -1,18 +1,7 @@
|
|
1
|
-
guard '
|
2
|
-
watch(
|
3
|
-
watch(/^.+\.gemspec/)
|
4
|
-
end
|
5
|
-
|
6
|
-
guard 'ctags-bundler', :src_path => ["lib"] do
|
7
|
-
watch(/^(lib|spec\/support)\/.*\.rb$/)
|
8
|
-
watch('Gemfile.lock')
|
9
|
-
end
|
10
|
-
|
11
|
-
guard 'rspec' do
|
12
|
-
watch(%r{^spec/.+_spec\.rb$})
|
1
|
+
guard 'rspec', :spec_paths => ["spec/unit"] do
|
2
|
+
watch(%r{^spec/unit/.+_spec\.rb$})
|
13
3
|
watch(%r{^lib/vagrant-lxc/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
|
14
4
|
watch('spec/unit_helper.rb') { "spec/unit" }
|
15
|
-
watch('spec/
|
16
|
-
watch(
|
17
|
-
watch(%r{^spec/support/(.+)\.rb$}) { "spec/" }
|
5
|
+
watch('spec/spec_helper.rb') { "spec/unit" }
|
6
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec/unit" }
|
18
7
|
end
|
data/README.md
CHANGED
@@ -1,26 +1,46 @@
|
|
1
|
-
# vagrant-lxc
|
1
|
+
# vagrant-lxc
|
2
2
|
|
3
|
-
|
3
|
+
[](https://travis-ci.org/fgrehm/vagrant-lxc) [](http://badge.fury.io/rb/vagrant-lxc) [](https://codeclimate.com/github/fgrehm/vagrant-lxc) [](https://coveralls.io/r/fgrehm/vagrant-lxc)
|
4
|
+
|
5
|
+
[LXC](http://lxc.sourceforge.net/) provider for [Vagrant](http://www.vagrantup.com/) 1.1+
|
6
|
+
|
7
|
+
This is a Vagrant plugin that allows it to control and provision Linux Containers
|
8
|
+
as an alternative to the built in Vagrant VirtualBox provider for Linux hosts.
|
4
9
|
|
5
10
|
Check out this [blog post](http://fabiorehm.com/blog/2013/04/28/lxc-provider-for-vagrant)
|
6
11
|
to see the plugin in action and find out more about it.
|
7
12
|
|
8
|
-
##
|
13
|
+
## Features
|
14
|
+
|
15
|
+
* Vagrant's `up`, `halt`, `reload`, `destroy`, `ssh`, `provision` and `package`
|
16
|
+
* Shared folders
|
17
|
+
* Provisioning with any built-in Vagrant provisioner
|
18
|
+
* Port forwarding
|
19
|
+
* Setting container's host name
|
20
|
+
|
21
|
+
*Please refer to the [closed issues](https://github.com/fgrehm/vagrant-lxc/issues?labels=&milestone=&page=1&state=closed)
|
22
|
+
and the [changelog](CHANGELOG.md) for most up to date information.*
|
9
23
|
|
10
|
-
|
11
|
-
|
24
|
+
|
25
|
+
## Requirements
|
26
|
+
|
27
|
+
* [Vagrant 1.1+](http://downloads.vagrantup.com/)
|
28
|
+
* lxc 0.7.5+
|
12
29
|
* redir (if you are planning to use port forwarding)
|
13
|
-
* A
|
30
|
+
* A [bug-free](#help-im-unable-to-restart-containers) kernel
|
14
31
|
|
15
|
-
|
32
|
+
The plugin is known to work better and pretty much out of the box on Ubuntu 12.04+
|
33
|
+
hosts and installing the dependencies on it basically means a `apt-get install lxc redir`
|
34
|
+
and a `apt-get update && apt-get dist-upgrade` to upgrade the kernel.
|
16
35
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
36
|
+
Some manual steps are required to set up a Linode machine prior to using this
|
37
|
+
plugin, please check https://github.com/fgrehm/vagrant-lxc/wiki/Usage-on-Linode
|
38
|
+
for more information. The same applies to Debian hosts and documentation will be
|
39
|
+
provided soon.
|
40
|
+
|
41
|
+
If you are on a Mac or Windows machine, you might want to have a look at this
|
42
|
+
blog post for some ideas on how to set things up: http://the.taoofmac.com/space/HOWTO/Vagrant
|
43
|
+
or use use the same [Ubuntu 12.10 VirtualBox machine I use for development](https://github.com/fgrehm/vagrant-lxc/wiki/Development#using-virtualbox-for-development).
|
24
44
|
|
25
45
|
|
26
46
|
## Installation
|
@@ -32,185 +52,82 @@ vagrant plugin install vagrant-lxc
|
|
32
52
|
|
33
53
|
## Usage
|
34
54
|
|
35
|
-
After installing, add a [base box](#
|
55
|
+
After installing, add a [base box](#base-boxes) using any name you want, for example:
|
36
56
|
|
37
57
|
```
|
38
|
-
vagrant box add
|
58
|
+
vagrant box add quantal64 http://dl.dropbox.com/u/13510779/lxc-quantal-amd64-2013-07-12.box
|
39
59
|
```
|
40
60
|
|
41
|
-
|
61
|
+
Then create a Vagrantfile that looks like the following, changing the box name
|
62
|
+
to the one you've just added:
|
42
63
|
|
43
64
|
```ruby
|
44
65
|
Vagrant.configure("2") do |config|
|
45
|
-
|
46
|
-
config.vm.box = "lxc-quantal64"
|
47
|
-
|
48
|
-
# You can omit this block if you don't need to override any container setting
|
49
|
-
config.vm.provider :lxc do |lxc|
|
50
|
-
# OPTIONAL: Same effect as as 'customize ["modifyvm", :id, "--memory", "1024"]' for VirtualBox
|
51
|
-
lxc.customize 'cgroup.memory.limit_in_bytes', '1024M'
|
52
|
-
# OPTIONAL: Limits swap size
|
53
|
-
lxc.customize 'cgroup.memory.memsw.limit_in_bytes', '512M'
|
54
|
-
end
|
66
|
+
config.vm.box = "quantal64"
|
55
67
|
end
|
56
68
|
```
|
57
69
|
|
58
|
-
And finally run `vagrant up --provider=lxc`.
|
59
|
-
also set `VAGRANT_DEFAULT_PROVIDER` environmental variable to `lxc`.
|
60
|
-
|
61
|
-
If you are on a mac or window host and still want to try this plugin out, you
|
62
|
-
can use the [same Vagrant VirtualBox machine I use for development](#using-virtualbox-for-development).
|
70
|
+
And finally run `vagrant up --provider=lxc`.
|
63
71
|
|
64
|
-
|
72
|
+
If you are using Vagrant 1.2+ you can also set `VAGRANT_DEFAULT_PROVIDER`
|
73
|
+
environmental variable to `lxc` in order to avoid typing `--provider=lxc` all
|
74
|
+
the time.
|
65
75
|
|
66
|
-
| LINK | DESCRIPTION |
|
67
|
-
| --- | --- |
|
68
|
-
| [lxc-raring-amd64-2013-05-08.box](http://dl.dropbox.com/u/13510779/lxc-raring-amd64-2013-05-08.box) | Ubuntu 13.04 Raring x86_64 (Puppet 3.1.1) |
|
69
|
-
| [lxc-quantal-amd64-2013-05-08.box](http://dl.dropbox.com/u/13510779/lxc-quantal-amd64-2013-05-08.box) | Ubuntu 12.10 Quantal x86_64 (Puppet 3.1.1 & Chef 11.4.0) |
|
70
|
-
| [lxc-precise-amd64-2013-05-08.box](http://dl.dropbox.com/u/13510779/lxc-precise-amd64-2013-05-08.box) | Ubuntu 12.04 Precise x86_64 (Puppet 3.1.1 & Chef 11.4.0) |
|
71
|
-
| [lxc-sid-amd64-2013-05-08.box](http://dl.dropbox.com/u/13510779/lxc-sid-amd64-2013-05-08.box) | Debian Sid (Puppet 3.1.1) |
|
72
|
-
| [lxc-wheezy-amd64-2013-05-08.box](http://dl.dropbox.com/u/13510779/lxc-wheezy-amd64-2013-05-08.box) | Debian Wheezy (Puppet 3.1.1) |
|
73
|
-
| [lxc-squeeze-amd64-2013-05-08.box](http://dl.dropbox.com/u/13510779/lxc-squeeze-amd64-2013-05-08.box) | Debian Squeeze (Puppet 3.1.1) |
|
74
76
|
|
75
|
-
|
76
|
-
and I've only done some basic testing with the others*
|
77
|
+
### Advanced configuration
|
77
78
|
|
78
|
-
|
79
|
-
|
80
|
-
pick the one you want by providing some environment variables.
|
79
|
+
If you want, you can modify container configurations from within your Vagrantfile
|
80
|
+
using the [provider block](http://docs.vagrantup.com/v2/providers/configuration.html):
|
81
81
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
82
|
+
```ruby
|
83
|
+
Vagrant.configure("2") do |config|
|
84
|
+
config.vm.box = "quantal64"
|
85
|
+
config.vm.provider :lxc do |lxc|
|
86
|
+
# Same effect as as 'customize ["modifyvm", :id, "--memory", "1024"]' for VirtualBox
|
87
|
+
lxc.customize 'cgroup.memory.limit_in_bytes', '1024M'
|
88
|
+
end
|
89
|
+
end
|
86
90
|
```
|
87
91
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
Before the 0.3.0 version of this plugin, there used to be a support for specifying
|
93
|
-
the container's rootfs path from the `Vagrantfile`, on 0.3.0 this was removed as you
|
94
|
-
can achieve the same effect by symlinking or mounting `/var/lib/lxc` on a separate
|
95
|
-
partition.
|
92
|
+
This will make vagrant-lxc pass in `-s lxc.cgroup.memory.limit_in_bytes=1024M`
|
93
|
+
to `lxc-start` when booting containers. This will override any previously value
|
94
|
+
set from container's configuration file that is usually kept under
|
95
|
+
`/var/lib/lxc/<container-name>/config`.
|
96
96
|
|
97
|
-
|
97
|
+
For other configuration options, please check [lxc.conf manpages](http://manpages.ubuntu.com/manpages/quantal/man5/lxc.conf.5.html).
|
98
98
|
|
99
|
-
NFS shared folders are not supported and will behave as a "normal" shared folder
|
100
|
-
so we can share the same Vagrantfile with VBox environments.
|
101
99
|
|
100
|
+
### Base boxes
|
102
101
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
* Vagrant's `up`, `halt`, `reload`, `destroy`, `ssh` and `package` commands (box packaging is kind of experimental)
|
108
|
-
* Shared folders
|
109
|
-
* Provisioning
|
110
|
-
* Setting container's host name
|
111
|
-
* Port forwarding
|
112
|
-
|
113
|
-
*Please refer to the [closed issues](https://github.com/fgrehm/vagrant-lxc/issues?labels=&milestone=&page=1&state=closed)
|
114
|
-
and the [changelog](CHANGELOG.md) for most up to date information.*
|
102
|
+
Please check [the wiki](https://github.com/fgrehm/vagrant-lxc/wiki/Base-boxes)
|
103
|
+
for a list of [pre built](https://github.com/fgrehm/vagrant-lxc/wiki/Base-boxes#available-boxes)
|
104
|
+
base boxes and information on [how to build your own](https://github.com/fgrehm/vagrant-lxc/wiki/Base-boxes#building-your-own).
|
115
105
|
|
116
106
|
|
117
107
|
## Current limitations
|
118
108
|
|
119
|
-
*
|
120
|
-
|
109
|
+
* The plugin does not detect forwarded ports collision, right now you are
|
110
|
+
responsible for taking care of that.
|
111
|
+
* There is a hell lot of `sudo`s involved and this will probably be around until
|
112
|
+
[user namespaces](https://wiki.ubuntu.com/LxcSecurity) are supported or I'm able to handle [#90](https://github.com/fgrehm/vagrant-lxc/issues/90)
|
121
113
|
* [Does not tell you if dependencies are not met](https://github.com/fgrehm/vagrant-lxc/issues/11)
|
122
114
|
(will probably just throw up some random error)
|
123
115
|
* + bunch of other [core features](https://github.com/fgrehm/vagrant-lxc/issues?labels=core&milestone=&page=1&state=open)
|
124
116
|
and some known [bugs](https://github.com/fgrehm/vagrant-lxc/issues?labels=bug&page=1&state=open)
|
125
117
|
|
126
118
|
|
127
|
-
##
|
128
|
-
|
129
|
-
If want to develop from your physical machine, just sing that same old song:
|
130
|
-
|
131
|
-
```
|
132
|
-
git clone git://github.com/fgrehm/vagrant-lxc.git
|
133
|
-
cd vagrant-lxc
|
134
|
-
bundle install
|
135
|
-
bundle exec rake # to run unit specs
|
136
|
-
```
|
137
|
-
|
138
|
-
To run acceptance specs, you'll have to ssh into one of the [development boxes](development/Vagrantfile) and run:
|
139
|
-
|
140
|
-
```
|
141
|
-
bundle exec rake spec:acceptance
|
142
|
-
```
|
143
|
-
|
144
|
-
To build the provided quantal64 box:
|
145
|
-
|
146
|
-
```
|
147
|
-
bundle exec rake boxes:quantal64:build
|
148
|
-
vagrant box add quantal64 boxes/output/lxc-quantal64.box
|
149
|
-
```
|
150
|
-
|
151
|
-
### Using `vagrant-lxc` to develop itself
|
152
|
-
|
153
|
-
Yes! The gem has been [bootstrapped](http://en.wikipedia.org/wiki/Bootstrapping_(compilers)
|
154
|
-
and since you can boot a container from within another, after cloning the
|
155
|
-
project you can run the commands below from the host machine to get a container
|
156
|
-
ready for development:
|
157
|
-
|
158
|
-
```sh
|
159
|
-
# Required in order to allow nested containers to be started
|
160
|
-
sudo apt-get install apparmor-utils
|
161
|
-
sudo aa-complain /usr/bin/lxc-start
|
162
|
-
bundle install
|
163
|
-
cd development
|
164
|
-
bundle exec vagrant up lxc --provider=lxc
|
165
|
-
bundle exec vagrant ssh lxc
|
166
|
-
```
|
167
|
-
|
168
|
-
That should result in a container ready to be `bundle exec vagrant ssh`ed.
|
169
|
-
Once you've SSH into the guest container, you'll be already on the project's root.
|
170
|
-
Keep in mind that you'll probably need to run `sudo aa-complain /usr/bin/lxc-start`
|
171
|
-
on the host whenever you want to hack on it, otherwise you won't be able to
|
172
|
-
start nested containers there to try things out.
|
173
|
-
|
174
|
-
### Using VirtualBox for development
|
175
|
-
|
176
|
-
```
|
177
|
-
cd development
|
178
|
-
bundle exec vagrant up vbox
|
179
|
-
# A reload is needed to ensure the updated kernel gets loaded
|
180
|
-
bundle exec vagrant reload vbox
|
181
|
-
bundle exec vagrant ssh vbox
|
182
|
-
```
|
183
|
-
|
184
|
-
|
185
|
-
## Protips
|
186
|
-
|
187
|
-
If you want to find out more about what's going on under the hood on vagrant,
|
188
|
-
prepend `VAGRANT_LOG=debug` to your `vagrant` commands. For `lxc-start`s
|
189
|
-
debugging set `LXC_START_LOG_FILE`:
|
190
|
-
|
191
|
-
```
|
192
|
-
LXC_START_LOG_FILE=/tmp/lxc-start.log VAGRANT_LOG=debug vagrant up
|
193
|
-
```
|
194
|
-
|
195
|
-
This will output A LOT of information on your terminal and some useful information
|
196
|
-
about `lxc-start` to `/tmp/lxc-start.log`.
|
119
|
+
## More information
|
197
120
|
|
121
|
+
Please refer the [wiki](https://github.com/fgrehm/vagrant-lxc/wiki) for more
|
122
|
+
information.
|
198
123
|
|
199
|
-
## Help! I'm unable to restart containers!
|
200
124
|
|
201
|
-
|
202
|
-
to a bug on linux kernel, so make sure you are using a bug-free kernel
|
203
|
-
(>= 3.5.0-17.28). More information can be found on:
|
125
|
+
## Problems / ideas?
|
204
126
|
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
Sometimes the dev boxes I'm using are not able to `lxc-start` containers
|
210
|
-
anymore. Most of the times it was an issue with the arguments I provided
|
211
|
-
to it for customization (or a *buggy* kernel). If you run into that, rollback your changes
|
212
|
-
and try to `vagrant reload` the dev box. If it still doesn't work,
|
213
|
-
please file a bug at the [issue tracker](https://github.com/fgrehm/vagrant-lxc/issues).
|
127
|
+
Please review the [Troubleshooting](https://github.com/fgrehm/vagrant-lxc/wiki/Troubleshooting)
|
128
|
+
wiki page + [known bugs](https://github.com/fgrehm/vagrant-lxc/issues?labels=bug&page=1&state=open)
|
129
|
+
list if you have a problem and feel free to use the [issue tracker](https://github.com/fgrehm/vagrant-lxc/issues)
|
130
|
+
to ask questions, propose new functionality and / or report bugs.
|
214
131
|
|
215
132
|
|
216
133
|
## Similar projects
|
@@ -218,6 +135,7 @@ please file a bug at the [issue tracker](https://github.com/fgrehm/vagrant-lxc/i
|
|
218
135
|
* [vagabond](https://github.com/chrisroberts/vagabond) - "a tool integrated with Chef to build local nodes easily"
|
219
136
|
* [vagueant](https://github.com/neerolyte/vagueant) - "vaguely like Vagrant for linux containers (lxc)"
|
220
137
|
|
138
|
+
|
221
139
|
## Contributing
|
222
140
|
|
223
141
|
1. Fork it
|