dev-lxc 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +11 -4
- data/files/configs/adhoc.yml +5 -0
- data/files/configs/open-source.yml +5 -0
- data/files/configs/standalone.yml +9 -4
- data/files/configs/tier.yml +9 -4
- data/lib/dev-lxc/cli.rb +2 -1
- data/lib/dev-lxc/server.rb +4 -3
- data/lib/dev-lxc/version.rb +1 -1
- data/lib/dev-lxc.rb +14 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adb1cdf6e7713709e685315f22141444da1bd719
|
4
|
+
data.tar.gz: cf3f3f6ee779b6f28a3b59c9f598b407a5c17072
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfc37aab34c3fda3b8dcb78512308479e3491453b337174e4729d7de1f2d8c2c2f325dabf226629a9f16e5619dadb18d37b843ace3a835bae473efca1f2ed5c4
|
7
|
+
data.tar.gz: 5ac66bb4a2669895356442ecc5c5e58f97d36d10cc3845c1008716d2353fb401e62c38ef00620253dbebcc79317051bcb5ae12f9efa44acd5754c6315a037380
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# dev-lxc Change Log
|
2
2
|
|
3
|
+
## 1.5.1 (2015-04-15)
|
4
|
+
|
5
|
+
* Add ability to pass options to LXC create calls
|
6
|
+
For example, this lets users pass the following options for more control over the creation process.
|
7
|
+
https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
8
|
+
|
3
9
|
## 1.5.0 (2015-04-14)
|
4
10
|
|
5
11
|
* Set lxc.network.hwaddr, if one doesn’t exist, instead of lxc.network.0.hwaddr
|
data/README.md
CHANGED
@@ -393,6 +393,13 @@ an Ubuntu 14.04 image now.
|
|
393
393
|
dev-lxc create p-ubuntu-1404
|
394
394
|
```
|
395
395
|
|
396
|
+
Note: It is possible to pass additional arguments to the underlying LXC create command.
|
397
|
+
For example:
|
398
|
+
|
399
|
+
```
|
400
|
+
dev-lxc create p-ubuntu-1404 -o -- '--no-validate --keyserver http://my.key.server.com'
|
401
|
+
```
|
402
|
+
|
396
403
|
#### Install Chef Client in a Container
|
397
404
|
|
398
405
|
Use the `-v` option to specify a particular version of Chef Client.
|
@@ -507,9 +514,9 @@ chef-server:
|
|
507
514
|
mounts:
|
508
515
|
- /root/dev root/dev
|
509
516
|
packages:
|
510
|
-
server: /root/dev/chef-packages/cs/chef-server-core_12.
|
511
|
-
manage: /root/dev/chef-packages/manage/chef-manage_2.
|
512
|
-
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.
|
517
|
+
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
518
|
+
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
519
|
+
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
513
520
|
# push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
514
521
|
|
515
522
|
api_fqdn: chef.lxc
|
@@ -531,7 +538,7 @@ analytics:
|
|
531
538
|
mounts:
|
532
539
|
- /root/dev root/dev
|
533
540
|
packages:
|
534
|
-
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.
|
541
|
+
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
535
542
|
|
536
543
|
analytics_fqdn: analytics.lxc
|
537
544
|
topology: tier
|
data/files/configs/adhoc.yml
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
## platform_image can be one of the following:
|
2
2
|
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
3
|
|
4
|
+
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
+
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
+
## for example:
|
7
|
+
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
+
|
4
9
|
## Make sure a mount's source directory exists in the LXC host
|
5
10
|
|
6
11
|
## Make sure a package's path is correct
|
@@ -1,6 +1,11 @@
|
|
1
1
|
## platform_image can be one of the following:
|
2
2
|
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
3
|
|
4
|
+
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
+
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
+
## for example:
|
7
|
+
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
+
|
4
9
|
## Make sure a mount's source directory exists in the LXC host
|
5
10
|
|
6
11
|
## Make sure a package's path is correct
|
@@ -1,6 +1,11 @@
|
|
1
1
|
## platform_image can be one of the following:
|
2
2
|
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
3
|
|
4
|
+
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
+
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
+
## for example:
|
7
|
+
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
+
|
4
9
|
## Make sure a mount's source directory exists in the LXC host
|
5
10
|
|
6
11
|
## Make sure a package's path is correct
|
@@ -17,9 +22,9 @@ chef-server:
|
|
17
22
|
mounts:
|
18
23
|
- /root/dev root/dev
|
19
24
|
packages:
|
20
|
-
server: /root/dev/chef-packages/cs/chef-server-core_12.
|
21
|
-
manage: /root/dev/chef-packages/manage/chef-manage_2.
|
22
|
-
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.
|
25
|
+
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
26
|
+
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
27
|
+
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
23
28
|
# push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
24
29
|
|
25
30
|
api_fqdn: chef.lxc
|
@@ -33,7 +38,7 @@ analytics:
|
|
33
38
|
mounts:
|
34
39
|
- /root/dev root/dev
|
35
40
|
packages:
|
36
|
-
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.
|
41
|
+
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
37
42
|
|
38
43
|
analytics_fqdn: analytics.lxc
|
39
44
|
topology: standalone
|
data/files/configs/tier.yml
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
## platform_image can be one of the following:
|
2
2
|
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
3
|
|
4
|
+
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
+
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
+
## for example:
|
7
|
+
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
+
|
4
9
|
## Make sure a mount's source directory exists in the LXC host
|
5
10
|
|
6
11
|
## Make sure a package's path is correct
|
@@ -17,9 +22,9 @@ chef-server:
|
|
17
22
|
mounts:
|
18
23
|
- /root/dev root/dev
|
19
24
|
packages:
|
20
|
-
server: /root/dev/chef-packages/cs/chef-server-core_12.
|
21
|
-
manage: /root/dev/chef-packages/manage/chef-manage_2.
|
22
|
-
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.
|
25
|
+
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
26
|
+
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
27
|
+
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
23
28
|
# push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
24
29
|
|
25
30
|
api_fqdn: chef.lxc
|
@@ -41,7 +46,7 @@ analytics:
|
|
41
46
|
mounts:
|
42
47
|
- /root/dev root/dev
|
43
48
|
packages:
|
44
|
-
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.
|
49
|
+
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
45
50
|
|
46
51
|
analytics_fqdn: analytics.lxc
|
47
52
|
topology: tier
|
data/lib/dev-lxc/cli.rb
CHANGED
@@ -26,6 +26,7 @@ module DevLXC::CLI
|
|
26
26
|
}
|
27
27
|
|
28
28
|
desc "create [PLATFORM_IMAGE_NAME]", "Create a platform image"
|
29
|
+
option :options, :aliases => "-o", :desc => "Specify additional options for the lxc create"
|
29
30
|
def create(platform_image_name=nil)
|
30
31
|
start_time = Time.now
|
31
32
|
platform_image_names = %w(p-ubuntu-1204 p-ubuntu-1404 p-ubuntu-1504 p-centos-5 p-centos-6 p-centos-7)
|
@@ -35,7 +36,7 @@ module DevLXC::CLI
|
|
35
36
|
selection = ask("Which platform image do you want to create?", :limited_to => platform_image_names_with_index.map{|c| c[0].to_s})
|
36
37
|
platform_image_name = platform_image_names[selection.to_i - 1]
|
37
38
|
end
|
38
|
-
::DevLXC.create_platform_image(platform_image_name)
|
39
|
+
::DevLXC.create_platform_image(platform_image_name, options[:options])
|
39
40
|
puts
|
40
41
|
print_elapsed_time(Time.now - start_time)
|
41
42
|
end
|
data/lib/dev-lxc/server.rb
CHANGED
@@ -3,7 +3,7 @@ require "dev-lxc/cluster"
|
|
3
3
|
|
4
4
|
module DevLXC
|
5
5
|
class Server
|
6
|
-
attr_reader :server, :platform_image_name, :shared_image_name
|
6
|
+
attr_reader :server, :platform_image_name, :platform_image_options, :shared_image_name
|
7
7
|
|
8
8
|
def initialize(name, server_type, cluster_config)
|
9
9
|
unless cluster_config[server_type]["servers"].keys.include?(name)
|
@@ -26,6 +26,7 @@ module DevLXC
|
|
26
26
|
@role = @config["role"] ? @config["role"] : cluster_config[@server_type]['topology']
|
27
27
|
@mounts = cluster_config[@server_type]["mounts"]
|
28
28
|
@platform_image_name = cluster_config[@server_type]["platform_image"]
|
29
|
+
@platform_image_options = cluster_config[@server_type]["platform_image_options"]
|
29
30
|
@packages = cluster_config[@server_type]["packages"]
|
30
31
|
|
31
32
|
case @server_type
|
@@ -163,7 +164,7 @@ module DevLXC
|
|
163
164
|
else
|
164
165
|
puts "Creating container '#{@server.name}'"
|
165
166
|
if @server_type == 'adhoc'
|
166
|
-
platform_image = DevLXC.create_platform_image(@platform_image_name, @lxc_config_path)
|
167
|
+
platform_image = DevLXC.create_platform_image(@platform_image_name, @platform_image_options, @lxc_config_path)
|
167
168
|
puts "Cloning platform image '#{platform_image.name}' into container '#{@server.name}'"
|
168
169
|
platform_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT})
|
169
170
|
else
|
@@ -232,7 +233,7 @@ module DevLXC
|
|
232
233
|
puts "Using existing shared image '#{shared_image.name}'"
|
233
234
|
return shared_image
|
234
235
|
end
|
235
|
-
platform_image = DevLXC.create_platform_image(@platform_image_name, @lxc_config_path)
|
236
|
+
platform_image = DevLXC.create_platform_image(@platform_image_name, @platform_image_options, @lxc_config_path)
|
236
237
|
puts "Cloning platform image '#{platform_image.name}' into shared image '#{shared_image.name}'"
|
237
238
|
platform_image.clone(shared_image.name, {:flags => LXC::LXC_CLONE_SNAPSHOT})
|
238
239
|
shared_image = DevLXC::Container.new(shared_image.name, @lxc_config_path)
|
data/lib/dev-lxc/version.rb
CHANGED
data/lib/dev-lxc.rb
CHANGED
@@ -6,28 +6,34 @@ require "dev-lxc/server"
|
|
6
6
|
require "dev-lxc/cluster"
|
7
7
|
|
8
8
|
module DevLXC
|
9
|
-
def self.create_platform_image(platform_image_name, lxc_config_path='/var/lib/lxc')
|
9
|
+
def self.create_platform_image(platform_image_name, platform_image_options, lxc_config_path='/var/lib/lxc')
|
10
10
|
platform_image = DevLXC::Container.new(platform_image_name, lxc_config_path)
|
11
11
|
if platform_image.defined?
|
12
12
|
puts "Using existing platform image '#{platform_image.name}'"
|
13
13
|
return platform_image
|
14
14
|
end
|
15
15
|
puts "Creating platform image '#{platform_image.name}'"
|
16
|
+
template = "download"
|
16
17
|
case platform_image.name
|
17
18
|
when "p-ubuntu-1004"
|
18
|
-
|
19
|
+
options = ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"]
|
19
20
|
when "p-ubuntu-1204"
|
20
|
-
|
21
|
+
options = ["-d", "ubuntu", "-r", "precise", "-a", "amd64"]
|
21
22
|
when "p-ubuntu-1404"
|
22
|
-
|
23
|
+
options = ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"]
|
23
24
|
when "p-ubuntu-1504"
|
24
|
-
|
25
|
+
options = ["-d", "ubuntu", "-r", "vivid", "-a", "amd64"]
|
25
26
|
when "p-centos-5"
|
26
|
-
|
27
|
+
template = "centos"
|
28
|
+
options = ["-R", "5"]
|
27
29
|
when "p-centos-6"
|
28
|
-
|
30
|
+
options = ["-d", "centos", "-r", "6", "-a", "amd64"]
|
29
31
|
when "p-centos-7"
|
30
|
-
|
32
|
+
options = ["-d", "centos", "-r", "7", "-a", "amd64"]
|
33
|
+
end
|
34
|
+
options.concat(platform_image_options.split) unless platform_image_options.nil?
|
35
|
+
platform_image.create(template, "btrfs", {}, 0, options)
|
36
|
+
if platform_image.name == "p-centos-7"
|
31
37
|
# Centos 7 needs setpcap capabilities
|
32
38
|
# ref: https://bugzilla.redhat.com/show_bug.cgi?id=1176816
|
33
39
|
# ref: https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/1339781
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dev-lxc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremiah Snapp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|