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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb62e2541fe4750d85c6cad1d92f629b3cc59c7c
4
- data.tar.gz: ceab7ced54d9dd2f34e142bfc764d688cfcd062a
3
+ metadata.gz: adb1cdf6e7713709e685315f22141444da1bd719
4
+ data.tar.gz: cf3f3f6ee779b6f28a3b59c9f598b407a5c17072
5
5
  SHA512:
6
- metadata.gz: 8545fe8abb277e0051d8b9ea25a98ef24e6732180fc1ff52d129fe80227c761a42269582eebef538535ffd0a975a6c5f594d62c3b1e55284b370505754fa9786
7
- data.tar.gz: 76a6df69e886559c4d1a415f328bc1d9d454e20841e274cf7fc53ef1fefcd5169549c1b04ee5d7031eccf8cdf756e16d06e2c570988155c1be496537e8673d4d
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.3.1-1_amd64.deb
511
- manage: /root/dev/chef-packages/manage/chef-manage_2.1.1-1_amd64.deb
512
- # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.5-1_amd64.deb
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.2.0-1_amd64.deb
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
@@ -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.3.1-1_amd64.deb
21
- manage: /root/dev/chef-packages/manage/chef-manage_2.1.1-1_amd64.deb
22
- # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.5-1_amd64.deb
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.2.0-1_amd64.deb
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
@@ -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.3.1-1_amd64.deb
21
- manage: /root/dev/chef-packages/manage/chef-manage_2.1.1-1_amd64.deb
22
- # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.5-1_amd64.deb
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.2.0-1_amd64.deb
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
@@ -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)
@@ -1,3 +1,3 @@
1
1
  module DevLXC
2
- VERSION = "1.5.0"
2
+ VERSION = "1.5.1"
3
3
  end
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
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"])
19
+ options = ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"]
19
20
  when "p-ubuntu-1204"
20
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "precise", "-a", "amd64"])
21
+ options = ["-d", "ubuntu", "-r", "precise", "-a", "amd64"]
21
22
  when "p-ubuntu-1404"
22
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"])
23
+ options = ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"]
23
24
  when "p-ubuntu-1504"
24
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "vivid", "-a", "amd64"])
25
+ options = ["-d", "ubuntu", "-r", "vivid", "-a", "amd64"]
25
26
  when "p-centos-5"
26
- platform_image.create("centos", "btrfs", {}, 0, ["-R", "5"])
27
+ template = "centos"
28
+ options = ["-R", "5"]
27
29
  when "p-centos-6"
28
- platform_image.create("download", "btrfs", {}, 0, ["-d", "centos", "-r", "6", "-a", "amd64"])
30
+ options = ["-d", "centos", "-r", "6", "-a", "amd64"]
29
31
  when "p-centos-7"
30
- platform_image.create("download", "btrfs", {}, 0, ["-d", "centos", "-r", "7", "-a", "amd64"])
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.0
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-14 00:00:00.000000000 Z
11
+ date: 2016-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler