dev-lxc 2.2.7 → 2.3.0

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: c366d04f4b11604fc0a7cada4f816fb0370c0c08
4
- data.tar.gz: 10268c9dbca5599d53e994b2eefab384af73c926
3
+ metadata.gz: 80dd5ce814277d70504316af75ab5a801489356a
4
+ data.tar.gz: 62c7bb81010529e775615c8e31da47b1360686c4
5
5
  SHA512:
6
- metadata.gz: 264909fca8a04477df027ae188b3b24d47ee25a1dd4f7a2992644d7cf6756f629c1b6140c7d33bdca391a14535b10d129f3b2fe60d863591b1a4c5e35b80369c
7
- data.tar.gz: 3e42f0ff9e45c8d4c21a4409660605e917cfe1b6b73016a4caf2cc79c65e2e1f788c23312d0f02a7292119409b52458b299031197aa45be2551bf03a56867333
6
+ metadata.gz: b4ce050e1637a22d0dc990560ebf43b39527600bdacf6a048b01a37e8aa45505c327255f59c45f4829576d07c45ea8cf74dd15497e243a638cc90d71eec91c69
7
+ data.tar.gz: 62b58c1d3956bed13dd7c08a819ac73abaced1cf76e8c7dbe82f055bd3af2e485523b62dfeac5e8f6816b1b79d9d810f2d55cf9131c1cffb87da9acc546ca36f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # dev-lxc Change Log
2
2
 
3
+ ## 2.3.0 (2016-11-22)
4
+
5
+ * Create DNS records for all servers before starting a server
6
+ * Delete DNS records for all servers if all are stopped
7
+ * Add ability to build Automate Job Dispatch Runners
8
+ * Enable Compliance profiles asset store in Automate
9
+ * Enable Automate Compliance profiles proxy in Chef Server
10
+ * Add ability to setup Compliance and create admin user
11
+ * Fix dev-lxc.yml parsing bug
12
+ * Allow for snapshot comments to be empty
13
+ * Fix 'up' command's output so there is a blank line between each server
14
+
3
15
  ## 2.2.7 (2016-09-26)
4
16
 
5
17
  * Improve file existence test during dev-lxc.yml validation
data/README.md CHANGED
@@ -119,10 +119,10 @@ mkdir -p /root/work/clusters/automate
119
119
 
120
120
  Then use the `init` subcommand to generate a sample configuration using the available options. Run `dl help init` to see what options are available.
121
121
 
122
- The following command configures a standalone Chef Server, a Chef Automate server and a build node.
122
+ The following command configures a standalone Chef Server, a Chef Automate server and a job dispatch runner.
123
123
 
124
124
  ```
125
- dl init --chef --automate --build-nodes -f /root/work/clusters/automate/dev-lxc.yml
125
+ dl init --chef --automate --runners -f /root/work/clusters/automate/dev-lxc.yml
126
126
  ```
127
127
 
128
128
  We can easily append additional configurations to this file. For example, the following command appends an infrastructure node.
@@ -161,7 +161,7 @@ cluster-view /root/work/clusters/automate
161
161
 
162
162
  Many dev-lxc subcommands can act on a subset of the cluster's servers by specifying a regular expression that matches the desired server names.
163
163
 
164
- For example, the following command will show the status of the build node and the infrastructure node.
164
+ For example, the following command will show the status of the infrastructure node.
165
165
 
166
166
  ```
167
167
  dl status node
@@ -5,10 +5,10 @@ dev-lxc uses a YAML configuration file named `dev-lxc.yml` to define a cluster.
5
5
  The `init` command generates sample config files for various server types.
6
6
 
7
7
  Let's generate a config for a cluster with a standalone Chef Server, Chef Automate server,
8
- private Supermarket server, build node and an infrastructure node.
8
+ private Supermarket server, job dispatch runner and an infrastructure node.
9
9
 
10
10
  ```
11
- dev-lxc init --chef --automate --supermarket --build-nodes --nodes > dev-lxc.yml
11
+ dev-lxc init --chef --automate --supermarket --runners --nodes > dev-lxc.yml
12
12
  ```
13
13
 
14
14
  The contents of `dev-lxc.yml` should look like this.
@@ -63,9 +63,9 @@ automate:
63
63
  chef_org: delivery
64
64
  enterprise_name: demo-ent
65
65
 
66
- build-nodes:
66
+ runners:
67
67
  servers:
68
- build-node-1.lxc:
68
+ runner-1.lxc:
69
69
  products:
70
70
  chefdk: # downloaded only
71
71
 
data/lib/dev-lxc/cli.rb CHANGED
@@ -55,6 +55,7 @@ module DevLXC::CLI
55
55
  option :supermarket, :type => :boolean, :desc => "Supermarket Server"
56
56
  option :automate, :type => :boolean, :desc => "Automate Server"
57
57
  option :build_nodes, :type => :boolean, :desc => "Build Nodes"
58
+ option :runners, :type => :boolean, :desc => "Runners"
58
59
  option :adhoc, :type => :boolean, :desc => "Adhoc Servers"
59
60
  option :append, :aliases => "-a", :type => :boolean, :desc => "Do not generate the global config header"
60
61
  option :filename, :aliases => "-f", :desc => "Write generated content to FILE rather than standard output."
@@ -140,6 +141,13 @@ build-nodes:
140
141
  build-node-1.lxc:
141
142
  products:
142
143
  chefdk: # downloaded only
144
+ )
145
+ runners_config = %Q(
146
+ runners:
147
+ servers:
148
+ runner-1.lxc:
149
+ products:
150
+ chefdk: # downloaded only
143
151
  )
144
152
  analytics_config = %Q(
145
153
  analytics:
@@ -151,6 +159,7 @@ analytics:
151
159
  )
152
160
  compliance_config = %Q(
153
161
  compliance:
162
+ admin_user: admin # the password will be the same as the username
154
163
  servers:
155
164
  compliance.lxc:
156
165
  ipaddress: 10.0.3.205
@@ -228,6 +237,7 @@ nodes:
228
237
  config += supermarket_config if options[:supermarket]
229
238
  config += automate_config if options[:automate]
230
239
  config += build_nodes_config if options[:build_nodes]
240
+ config += runners_config if options[:runners]
231
241
  config += adhoc_config if options[:adhoc]
232
242
  config += chef_backend_config if options[:chef_backend]
233
243
  config += nodes_config if options[:nodes]
@@ -330,7 +340,6 @@ nodes:
330
340
  def up(server_name_regex=nil)
331
341
  start_time = Time.now
332
342
  get_cluster(options[:config]).up(server_name_regex)
333
- puts
334
343
  print_elapsed_time(Time.now - start_time)
335
344
  end
336
345
 
@@ -338,7 +347,7 @@ nodes:
338
347
  option :config, :desc => "Specify a cluster's YAML config file. `./dev-lxc.yml` will be used by default"
339
348
  def halt(server_name_regex=nil)
340
349
  start_time = Time.now
341
- get_cluster(options[:config]).get_sorted_servers(server_name_regex).reverse_each { |s| s.stop; puts }
350
+ get_cluster(options[:config]).halt(server_name_regex)
342
351
  print_elapsed_time(Time.now - start_time)
343
352
  end
344
353
 
@@ -394,19 +403,8 @@ nodes:
394
403
  option :config, :desc => "Specify a cluster's YAML config file. `./dev-lxc.yml` will be used by default"
395
404
  option :force, :aliases => "-f", :type => :boolean, :desc => "Destroy servers without confirmation"
396
405
  def destroy(server_name_regex=nil)
397
- servers = get_cluster(options[:config]).get_sorted_servers(server_name_regex)
398
- if servers.empty?
399
- puts "No matching server names were found"
400
- exit
401
- end
402
- unless options[:force]
403
- confirmation_string = String.new
404
- servers.reverse_each { |s| confirmation_string += "#{s.name}\n" }
405
- confirmation_string += "Are you sure you want to destroy these servers? (y/N)\n"
406
- return unless yes?(confirmation_string)
407
- end
408
406
  start_time = Time.now
409
- servers.reverse_each { |s| s.destroy; puts }
407
+ get_cluster(options[:config]).destroy(server_name_regex, options[:force])
410
408
  print_elapsed_time(Time.now - start_time)
411
409
  end
412
410
 
@@ -12,27 +12,31 @@ module DevLXC
12
12
  @config = Hash.new { |hash, key| hash[key] = {} }
13
13
  @server_configs = Hash.new
14
14
 
15
- %w(adhoc analytics automate build-nodes chef-backend chef-server compliance nodes supermarket).each do |server_type|
15
+ %w(adhoc analytics automate build-nodes chef-backend chef-server compliance nodes runners supermarket).each do |server_type|
16
16
  if cluster_config[server_type]
17
- mounts = ["/var/dev-lxc var/dev-lxc"]
18
- if cluster_config[server_type]["mounts"]
19
- mounts.concat(cluster_config[server_type]["mounts"])
20
- elsif cluster_config["mounts"]
21
- mounts.concat(cluster_config["mounts"])
22
- end
23
- ssh_keys = cluster_config[server_type]["ssh-keys"]
24
- ssh_keys ||= cluster_config["ssh-keys"]
25
- base_container_name = cluster_config[server_type]["base_container"]
26
- base_container_name ||= cluster_config["base_container"]
27
-
28
17
  if cluster_config[server_type]["servers"]
29
18
  cluster_config[server_type]["servers"].each do |server_name, server_config|
30
19
  server_config ||= Hash.new
20
+
31
21
  products = server_config['products']
32
22
  products ||= Hash.new
23
+
24
+ mounts = ["/var/dev-lxc var/dev-lxc"]
25
+ if cluster_config[server_type]["mounts"]
26
+ mounts.concat(cluster_config[server_type]["mounts"])
27
+ elsif cluster_config["mounts"]
28
+ mounts.concat(cluster_config["mounts"])
29
+ end
33
30
  mounts = ["/var/dev-lxc var/dev-lxc"] + server_config["mounts"] if server_config["mounts"]
31
+
32
+ ssh_keys = cluster_config[server_type]["ssh-keys"]
33
+ ssh_keys ||= cluster_config["ssh-keys"]
34
34
  ssh_keys = server_config["ssh-keys"] if server_config["ssh-keys"]
35
+
36
+ base_container_name = cluster_config[server_type]["base_container"]
37
+ base_container_name ||= cluster_config["base_container"]
35
38
  base_container_name = server_config["base_container"] if server_config["base_container"]
39
+
36
40
  @server_configs[server_name] = {
37
41
  server_type: server_type,
38
42
  products: products,
@@ -143,6 +147,11 @@ module DevLXC
143
147
  (server_name, server_config) = cluster_config[server_type]["servers"].first
144
148
  @config[server_type][:fqdn] = server_name
145
149
  end
150
+ when "compliance"
151
+ unless cluster_config[server_type]["servers"].first.nil?
152
+ (server_name, server_config) = cluster_config[server_type]["servers"].first
153
+ @server_configs[server_name][:admin_user] = cluster_config[server_type]["admin_user"]
154
+ end
146
155
  when "automate"
147
156
  unless cluster_config[server_type]["servers"].first.nil?
148
157
  (server_name, server_config) = cluster_config[server_type]["servers"].first
@@ -260,7 +269,7 @@ module DevLXC
260
269
 
261
270
  # the order of this list of server_types matters
262
271
  # it determines the order in which actions are applied to each server_type
263
- %w(chef-backend chef-server analytics compliance supermarket automate build-nodes nodes adhoc).each do |server_type|
272
+ %w(chef-backend chef-server analytics compliance supermarket automate build-nodes runners nodes adhoc).each do |server_type|
264
273
  unless @config[server_type].empty?
265
274
  case server_type
266
275
  when "chef-backend"
@@ -280,7 +289,7 @@ module DevLXC
280
289
  end
281
290
  end
282
291
  end
283
- if %w(adhoc automate build-nodes compliance nodes supermarket).include?(server_type)
292
+ if %w(adhoc automate build-nodes compliance nodes runners supermarket).include?(server_type)
284
293
  server_configs = @server_configs.select { |server_name, server_config| server_config[:server_type] == server_type }
285
294
  server_configs.each_key { |server_name| servers << get_server(server_name) }
286
295
  end
@@ -288,6 +297,33 @@ module DevLXC
288
297
  servers.select { |s| s.name =~ /#{server_name_regex}/ }
289
298
  end
290
299
 
300
+ def destroy(server_name_regex=nil, force=false)
301
+ servers = get_sorted_servers(server_name_regex)
302
+ if servers.empty?
303
+ puts "No matching server names were found"
304
+ exit
305
+ end
306
+ unless force
307
+ confirmation_string = String.new
308
+ servers.reverse_each { |s| confirmation_string += "#{s.name}\n" }
309
+ confirmation_string += "Are you sure you want to destroy these servers? (y/N)\n"
310
+ return unless yes?(confirmation_string)
311
+ end
312
+ servers.reverse_each { |s| s.destroy; puts }
313
+ delete_dns_records unless get_sorted_servers.any? { |s| s.container.state != :stopped }
314
+ end
315
+
316
+ def halt(server_name_regex=nil)
317
+ servers = get_sorted_servers(server_name_regex)
318
+ servers.reverse_each { |s| s.stop; puts }
319
+ delete_dns_records unless get_sorted_servers.any? { |s| s.container.state != :stopped }
320
+ end
321
+
322
+ def delete_dns_records
323
+ @server_configs.keys.each { |server_name| DevLXC::search_file_delete_line("/etc/lxc/addn-hosts.conf", /\s#{server_name}/) }
324
+ DevLXC::reload_dnsmasq
325
+ end
326
+
291
327
  def up(server_name_regex=nil)
292
328
  abort_up = false
293
329
  configured_servers = Array.new
@@ -359,7 +395,7 @@ module DevLXC
359
395
  abort_up = true
360
396
  end
361
397
  end
362
- if @server_configs[server.name][:server_type] == 'build-nodes'
398
+ if %w(build-nodes runners).include?(@server_configs[server.name][:server_type])
363
399
  if @config['chef-server'][:bootstrap_backend].nil?
364
400
  puts "ERROR: '#{server.name}' requires a Chef Server bootstrap backend to be configured first."
365
401
  abort_up = true
@@ -394,25 +430,26 @@ module DevLXC
394
430
  clone_from_base_container(server) unless server.container.defined?
395
431
  end
396
432
  servers = get_sorted_servers(server_name_regex)
433
+ create_dns_records unless servers.empty?
397
434
  servers.each do |server|
398
- if @server_configs[server.name][:server_type] == "build-nodes"
435
+ if %w(build-nodes runners).include?(@server_configs[server.name][:server_type])
399
436
  next if @server_configs[server.name][:required_products]["chefdk"] && @server_configs[server.name][:required_products].length == 1
400
437
  end
401
438
  install_products(server) unless @server_configs[server.name][:required_products].empty?
402
439
  end
403
440
  servers.each do |server|
404
- if server.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: completed") }.empty?
441
+ if server.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: completed") }.empty?
405
442
  if server.name == @config["chef-backend"][:bootstrap_frontend]
406
443
  running_backends = Array.new
407
444
  @config["chef-backend"][:backends].reverse_each do |server_name|
408
445
  backend = get_server(server_name)
409
- if backend.container.defined? && backend.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: backend cluster configured but frontend not bootstrapped") }.empty?
446
+ if backend.container.defined? && backend.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: backend cluster configured but frontend not bootstrapped") }.empty?
410
447
  if backend.container.running?
411
448
  running_backends << backend.name
412
449
  backend.stop
413
450
  end
414
451
  backend.snapshot("dev-lxc build: backend cluster configured but frontend not bootstrapped")
415
- snapshot = backend.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: completed") }.first
452
+ snapshot = backend.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: completed") }.first
416
453
  backend.snapshot_destroy(snapshot.first) if snapshot
417
454
  end
418
455
  end
@@ -439,6 +476,20 @@ module DevLXC
439
476
  end
440
477
  end
441
478
 
479
+ def create_dns_records
480
+ get_sorted_servers.each do |server|
481
+ ipaddress = server.container.ip_addresses.first
482
+ ipaddress ||= @server_configs[server.name][:ipaddress]
483
+ next unless ipaddress
484
+ additional_fqdn = @server_configs[server.name][:additional_fqdn]
485
+ dns_record = "#{ipaddress} #{server.name}"
486
+ dns_record += " #{additional_fqdn}\n" if additional_fqdn
487
+ DevLXC::search_file_delete_line("/etc/lxc/addn-hosts.conf", /\s#{server.name}/)
488
+ DevLXC::append_line_to_file("/etc/lxc/addn-hosts.conf", dns_record)
489
+ end
490
+ DevLXC::reload_dnsmasq
491
+ end
492
+
442
493
  def clone_from_base_container(server)
443
494
  server_type = @server_configs[server.name][:server_type]
444
495
  base_container = DevLXC::Container.new(@server_configs[server.name][:base_container_name])
@@ -491,10 +542,10 @@ module DevLXC
491
542
  servers.each do |server|
492
543
  products = @server_configs[server.name][:products]
493
544
  @server_configs[server.name][:required_products] = Hash.new
494
- if !force && !server.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: products installed") }.empty?
545
+ if !force && !server.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: products installed") }.empty?
495
546
  # Skipping product cache preparation for container because it has a 'products installed' snapshot
496
547
  next
497
- elsif !force && !server.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: completed") }.empty?
548
+ elsif !force && !server.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: completed") }.empty?
498
549
  # Skipping product cache preparation for container because it has a 'build: completed' snapshot
499
550
  next
500
551
  end
@@ -537,10 +588,10 @@ module DevLXC
537
588
  end
538
589
 
539
590
  def install_products(server)
540
- if !server.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: products installed") }.empty?
591
+ if !server.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: products installed") }.empty?
541
592
  puts "Skipping product installation for container '#{server.name}' because it already has a 'products installed' snapshot"
542
593
  return
543
- elsif !server.snapshot_list.select { |sn| sn[2].start_with?("dev-lxc build: completed") }.empty?
594
+ elsif !server.snapshot_list.select { |sn| sn[2].to_s.start_with?("dev-lxc build: completed") }.empty?
544
595
  puts "Skipping product installation for container '#{server.name}' because it already has a 'build: completed' snapshot"
545
596
  return
546
597
  end
@@ -551,7 +602,7 @@ module DevLXC
551
602
  server.start
552
603
  end
553
604
  @server_configs[server.name][:required_products].each do |product_name, package_source|
554
- next if @server_configs[server.name][:server_type] == "build-nodes" && product_name == "chefdk"
605
+ next if %w(build-nodes runners).include?(@server_configs[server.name][:server_type]) && product_name == "chefdk"
555
606
  server.install_package(package_source)
556
607
  end
557
608
  server.stop
@@ -575,6 +626,9 @@ module DevLXC
575
626
  when 'build-nodes'
576
627
  sleep 5 # give time for DNS resolution to be available
577
628
  configure_build_node(server)
629
+ when 'runners'
630
+ sleep 5 # give time for DNS resolution to be available
631
+ configure_runner(server)
578
632
  when 'chef-backend'
579
633
  configure_chef_backend(server) if required_products.include?('chef-backend')
580
634
  if required_products.include?('chef-server')
@@ -639,6 +693,9 @@ module DevLXC
639
693
  setup_cmd += " --no-build-node"
640
694
  setup_cmd += " --configure"
641
695
  run_ctl(server, "delivery", setup_cmd)
696
+
697
+ # enable Compliance profiles asset store
698
+ DevLXC::append_line_to_file("#{server.container.config_item('lxc.rootfs')}/etc/delivery/delivery.rb", "compliance_profiles['enable'] = true")
642
699
  end
643
700
 
644
701
  def print_automate_credentials
@@ -670,6 +727,18 @@ module DevLXC
670
727
  end
671
728
  end
672
729
 
730
+ def configure_runner(server)
731
+ automate_server_name = @server_configs.select {|name, config| config[:server_type] == 'automate'}.keys.first
732
+ if automate_server_name
733
+ automate_server = get_server(automate_server_name)
734
+ install_runner_cmd = "install-runner #{server.name} dev-lxc"
735
+ install_runner_cmd += " --password dev-lxc"
736
+ install_runner_cmd += " --installer #{@server_configs[server.name][:required_products]["chefdk"]}"
737
+ install_runner_cmd += " --yes"
738
+ run_ctl(automate_server, "delivery", install_runner_cmd)
739
+ end
740
+ end
741
+
673
742
  def configure_chef_client(server, dot_chef_path)
674
743
  puts "Configuring Chef Client in container '#{server.name}'"
675
744
 
@@ -816,6 +885,11 @@ data_collector.token "93a49a4f2482c64126f7b6015e6b0f30284287ee4054ff8807fb63d9cb
816
885
  FileUtils.mkdir_p("#{server.container.config_item('lxc.rootfs')}/var/opt/chef-compliance")
817
886
  FileUtils.touch("#{server.container.config_item('lxc.rootfs')}/var/opt/chef-compliance/.license.accepted")
818
887
  run_ctl(server, "chef-compliance", "reconfigure")
888
+ admin_user = @server_configs[server.name][:admin_user]
889
+ if admin_user
890
+ run_ctl(server, "chef-compliance", "user-create #{admin_user} #{admin_user}")
891
+ run_ctl(server, "chef-compliance", "restart core")
892
+ end
819
893
  end
820
894
 
821
895
  def configure_supermarket(server)
@@ -1034,6 +1108,7 @@ oc_id['applications']['supermarket'] = {
1034
1108
  chef_server_config += %Q(
1035
1109
  data_collector['root_url'] = "https://#{automate_server_name}/data-collector/v0/"
1036
1110
  data_collector['token'] = "93a49a4f2482c64126f7b6015e6b0f30284287ee4054ff8807fb63d9cbd1c506"
1111
+ profiles['root_url'] = "https://#{automate_server_name}"
1037
1112
  )
1038
1113
  end
1039
1114
  return chef_server_config
@@ -36,19 +36,17 @@ module DevLXC
36
36
 
37
37
  def start
38
38
  hwaddr = @container.config_item("lxc.network.0.hwaddr")
39
- if @ipaddress
40
- DevLXC.assign_ip_address(@ipaddress, @container.name, hwaddr)
41
- DevLXC.create_dns_record(@additional_fqdn, @container.name, @ipaddress) unless @additional_fqdn.nil?
42
- end
39
+ DevLXC.assign_ip_address(@ipaddress, @container.name, hwaddr) if @ipaddress
43
40
  @container.sync_mounts(@mounts)
44
41
  @container.start
45
42
  @container.sync_ssh_keys(@ssh_keys)
43
+ puts
46
44
  end
47
45
 
48
46
  def stop
49
47
  hwaddr = @container.config_item("lxc.network.0.hwaddr") if @container.defined?
50
48
  @container.stop
51
- deregister_from_dnsmasq(hwaddr)
49
+ deregister_from_dhcp(hwaddr)
52
50
  end
53
51
 
54
52
  def snapshot(comment=nil)
@@ -147,12 +145,11 @@ module DevLXC
147
145
  @container.snapshot_list.each { |snapshot| @container.snapshot_destroy(snapshot.first) }
148
146
  end
149
147
  @container.destroy
150
- deregister_from_dnsmasq(hwaddr)
148
+ deregister_from_dhcp(hwaddr)
151
149
  end
152
150
 
153
- def deregister_from_dnsmasq(hwaddr)
151
+ def deregister_from_dhcp(hwaddr)
154
152
  if @ipaddress
155
- DevLXC.search_file_delete_line("/etc/lxc/addn-hosts.conf", /^#{@ipaddress}\s/)
156
153
  DevLXC.search_file_delete_line("/etc/lxc/dhcp-hosts.conf", /,#{@ipaddress}$/)
157
154
  end
158
155
  unless hwaddr.nil?
@@ -1,3 +1,3 @@
1
1
  module DevLXC
2
- VERSION = "2.2.7"
2
+ VERSION = "2.3.0"
3
3
  end
data/lib/dev-lxc.rb CHANGED
@@ -104,14 +104,6 @@ module DevLXC
104
104
  reload_dnsmasq
105
105
  end
106
106
 
107
- def self.create_dns_record(fqdn, container_name, ipaddress)
108
- dns_record = "#{ipaddress} #{container_name} #{fqdn}\n"
109
- puts "Creating DNS record: #{dns_record}"
110
- search_file_delete_line("/etc/lxc/addn-hosts.conf", /^#{ipaddress}\s/)
111
- append_line_to_file("/etc/lxc/addn-hosts.conf", dns_record)
112
- reload_dnsmasq
113
- end
114
-
115
107
  def self.reload_dnsmasq
116
108
  system("pkill -HUP dnsmasq")
117
109
  end
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: 2.2.7
4
+ version: 2.3.0
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-09-26 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project:
132
- rubygems_version: 2.6.6
132
+ rubygems_version: 2.6.8
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: A tool for building Chef server clusters using LXC containers