fhcap-cli 0.4.2 → 0.4.3

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +2 -0
  4. data/lib/cookbooks/provision/libraries/provision.rb +24 -0
  5. data/lib/cookbooks/provision/recipes/aws_cluster_create.rb +1 -2
  6. data/lib/cookbooks/provision/recipes/cluster_create_instances.rb +14 -0
  7. data/lib/cookbooks/provision/recipes/cluster_destroy_instances.rb +6 -6
  8. data/lib/cookbooks/provision/recipes/cluster_provision_instances.rb +7 -47
  9. data/lib/cookbooks/provision/recipes/openstack_cluster_create.rb +9 -9
  10. data/lib/cookbooks/provision/recipes/seed_cookbooks.rb +38 -0
  11. data/lib/fhcap/cli.rb +4 -0
  12. data/lib/fhcap/cluster.rb +13 -1
  13. data/lib/fhcap/config.rb +4 -0
  14. data/lib/fhcap/cookbook.rb +10 -0
  15. data/lib/fhcap/dns.rb +60 -0
  16. data/lib/fhcap/misc.rb +17 -24
  17. data/lib/fhcap/tasks/chef/chef_server_task.rb +105 -0
  18. data/lib/fhcap/tasks/chef/chef_task_base.rb +2 -40
  19. data/lib/fhcap/tasks/chef/chef_zero_server.rb +35 -0
  20. data/lib/fhcap/tasks/chef/cookbook/archive.rb +42 -0
  21. data/lib/fhcap/tasks/chef/cookbook/update_metadata.rb +1 -1
  22. data/lib/fhcap/tasks/chef/environments/destroy.rb +10 -10
  23. data/lib/fhcap/tasks/chef/provisioning/chef_provisioning_task.rb +3 -1
  24. data/lib/fhcap/tasks/chef/provisioning/chef_provisioning_task_base.rb +14 -7
  25. data/lib/fhcap/tasks/chef/provisioning/create.rb +12 -3
  26. data/lib/fhcap/tasks/chef/provisioning/destroy.rb +5 -2
  27. data/lib/fhcap/tasks/chef/provisioning/provision.rb +4 -2
  28. data/lib/fhcap/tasks/chef/server/bootstrap.rb +47 -122
  29. data/lib/fhcap/tasks/chef/server/info.rb +8 -7
  30. data/lib/fhcap/tasks/chef/server/provision.rb +17 -17
  31. data/lib/fhcap/tasks/cluster/chef_provisioning_task.rb +16 -0
  32. data/lib/fhcap/tasks/cluster/cluster_task_base.rb +8 -0
  33. data/lib/fhcap/tasks/cluster/create.rb +6 -5
  34. data/lib/fhcap/tasks/cluster/destroy.rb +15 -4
  35. data/lib/fhcap/tasks/cluster/destroy_environment.rb +1 -1
  36. data/lib/fhcap/tasks/cluster/info.rb +1 -1
  37. data/lib/fhcap/tasks/cluster/provision.rb +3 -3
  38. data/lib/fhcap/tasks/cluster/status.rb +1 -1
  39. data/lib/fhcap/tasks/dns/create_record.rb +79 -0
  40. data/lib/fhcap/tasks/dns/delete_record.rb +55 -0
  41. data/lib/fhcap/tasks/dns/list.rb +37 -0
  42. data/lib/fhcap/tasks/dns/route53_helper.rb +48 -0
  43. data/lib/fhcap/tasks/knife/add.rb +43 -8
  44. data/lib/fhcap/tasks/repo/checkout.rb +1 -0
  45. data/lib/fhcap/tasks/task_base.rb +25 -0
  46. data/lib/fhcap/version.rb +1 -1
  47. data/spec/fhcap/tasks/dns/create_record_spec.rb +34 -0
  48. data/spec/fhcap/tasks/dns/delete_record_spec.rb +30 -0
  49. data/templates/chef/environment_core.json.erb +1 -1
  50. data/templates/cluster/aws/common.json.erb +1 -1
  51. data/templates/cluster/aws/core-small-9node.json.erb +3 -3
  52. data/templates/cluster/aws/single-blank.json.erb +2 -1
  53. data/templates/cluster/openstack/core-3node.json.erb +1 -1
  54. data/templates/cluster/openstack/core-small-9node.json.erb +4 -4
  55. data/templates/cluster/openstack/mbaas-3node.json.erb +2 -2
  56. data/templates/cluster/openstack/single-blank.json.erb +0 -1
  57. data/templates/init/knife_local.rb.erb +9 -0
  58. metadata +19 -4
  59. data/lib/fhcap/tasks/misc/create_dns_record.rb +0 -100
@@ -0,0 +1,79 @@
1
+ require 'fhcap/tasks/task_base'
2
+ require 'fhcap/tasks/dns/route53_helper'
3
+ require 'aws-sdk'
4
+
5
+ module Fhcap
6
+ module Tasks
7
+ module Dns
8
+ class CreateRecord < TaskBase
9
+
10
+ include Fhcap::Route53Helper
11
+
12
+ attr_reader :domain, :ipaddress, :alias_target, :ttl
13
+
14
+ def initialize(options)
15
+ super
16
+ @domain = options[:domain]
17
+ @alias_target = options[:'alias-target']
18
+ @ipaddress = options[:ipaddress]
19
+ @ttl = options[:ttl] || 300
20
+ end
21
+
22
+ def run
23
+ thor.say "Dns::CreateRecord: name = #{domain}, ipaddress = #{ipaddress}, ttl = #{ttl}", :yellow
24
+
25
+ with_hosted_zone(domain) do |client, zone|
26
+ resp = client.list_resource_record_sets({
27
+ hosted_zone_id: zone.id,
28
+ start_record_name: domain,
29
+ start_record_type: "A",
30
+ max_items: 1
31
+ })
32
+ record_set = resp.resource_record_sets.reject { |z| !(z.name =~ /^#{domain}/) }.first
33
+ action = 'created'
34
+ if record_set
35
+ value = record_set.resource_records.map(&:value).join(',')
36
+ alias_target = record_set.alias_target.dns_name rescue nil
37
+ thor.say "Found existing record set, id: name: #{record_set.name}, type: #{record_set.type}, value: #{alias_target || value}\n"
38
+ action = 'updated'
39
+ return unless thor.yes? 'Do you want to update this DNS record? (y/n)'
40
+ end
41
+ change_request = {
42
+ :action => 'UPSERT',
43
+ :resource_record_set => {
44
+ :name => domain,
45
+ :type => "A"
46
+ }
47
+ }
48
+
49
+ if @alias_target
50
+ change_request[:resource_record_set].merge!(
51
+ {
52
+ alias_target: {
53
+ evaluate_target_health: false
54
+ }.merge!(@alias_target)
55
+ }
56
+ )
57
+ else
58
+ change_request[:resource_record_set].merge!(
59
+ {
60
+ :ttl => ttl,
61
+ :resource_records => [{:value => ipaddress}]
62
+ }
63
+ )
64
+ end
65
+
66
+ client.change_resource_record_sets({
67
+ :hosted_zone_id => zone.id,
68
+ :change_batch => {
69
+ :changes => [change_request]
70
+ }
71
+ })
72
+ thor.say "DNS record #{action} for #{domain}"
73
+ end
74
+ end
75
+
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,55 @@
1
+ require 'fhcap/tasks/task_base'
2
+ require 'fhcap/tasks/dns/route53_helper'
3
+ require 'aws-sdk'
4
+
5
+ module Fhcap
6
+ module Tasks
7
+ module Dns
8
+ class DeleteRecord < TaskBase
9
+
10
+ include Fhcap::Route53Helper
11
+
12
+ attr_reader :domain
13
+
14
+ def initialize(options)
15
+ super
16
+ @domain = options[:domain]
17
+ end
18
+
19
+ def run
20
+ thor.say "Dns::DeleteRecord: name = #{domain}", :yellow
21
+
22
+ with_hosted_zone(domain) do |client, zone|
23
+ resp = client.list_resource_record_sets({
24
+ hosted_zone_id: zone.id,
25
+ start_record_name: domain,
26
+ start_record_type: "A",
27
+ max_items: 1
28
+ })
29
+ record_set = resp.resource_record_sets.reject { |z| !(z.name =~ /^#{domain}/) }.first
30
+ if record_set
31
+ value = record_set.resource_records.map(&:value).join(',')
32
+ alias_target = record_set.alias_target.dns_name rescue nil
33
+ thor.say "Found existing record set, id: name: #{record_set.name}, type: #{record_set.type}, value: #{alias_target || value}\n"
34
+ change_request = {
35
+ :action => 'DELETE',
36
+ :resource_record_set => record_set
37
+ }
38
+
39
+ client.change_resource_record_sets({
40
+ :hosted_zone_id => zone.id,
41
+ :change_batch => {
42
+ :changes => [change_request]
43
+ }
44
+ })
45
+ thor.say "DNS record deleted for #{domain}"
46
+ else
47
+ thor.say "No record set found for #{domain}"
48
+ end
49
+ end
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,37 @@
1
+ require 'fhcap/tasks/task_base'
2
+ require 'fhcap/tasks/dns/route53_helper'
3
+ require 'aws-sdk'
4
+
5
+ module Fhcap
6
+ module Tasks
7
+ module Dns
8
+ class List < TaskBase
9
+
10
+ include Fhcap::Route53Helper
11
+
12
+ def run
13
+ thor.say "Dns::List", :yellow
14
+
15
+ table_contents = [table_header('Domain', 'Type', 'TTL', 'Value')]
16
+
17
+ provider_names_for('dns').each do |provider|
18
+ with_provider_client(provider) do |client|
19
+ resp = client.list_hosted_zones
20
+ resp.hosted_zones.each do |zone|
21
+ resp = client.list_resource_record_sets(hosted_zone_id: zone.id)
22
+ resp.resource_record_sets.each do |record_set|
23
+ value = record_set.resource_records.map(&:value).join(',')
24
+ alias_target = record_set.alias_target.dns_name rescue nil
25
+ table_contents << table_row(record_set.name.gsub('\052', '*'), record_set.type, record_set.ttl, alias_target || value)
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ thor.print_table table_contents
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,48 @@
1
+ require 'aws-sdk'
2
+ require 'public_suffix'
3
+ require 'fhcap/providers_helper'
4
+
5
+ module Fhcap
6
+ module Route53Helper
7
+
8
+ include Fhcap::ProvidersHelper
9
+
10
+ def with_hosted_zone(domain)
11
+ host_domain = PublicSuffix.parse(domain).domain
12
+ provider = provider_for(host_domain)
13
+
14
+ if provider
15
+ begin
16
+ with_provider_client(provider) do |client|
17
+ resp = client.list_hosted_zones
18
+ zone = resp.hosted_zones.reject { |z| !(z.name =~ /#{host_domain}/) }.first
19
+
20
+ if zone
21
+ thor.say "Found zone id: #{zone.id}, name: #{zone.name}"
22
+ yield client, zone
23
+ else
24
+ thor.say_status 'error', "Can't get hosted zone for '#{host_domain}'", :red
25
+ end
26
+ end
27
+ rescue Aws::Route53::Errors::ServiceError => e
28
+ thor.say_status 'error', e.message, :red
29
+ end
30
+ else
31
+ thor.say_status 'error', "No DNS provider configured for '#{domain}'", :red
32
+ end
33
+ end
34
+
35
+ def with_provider_client(provider)
36
+ cfg = provider_config(provider)
37
+ region = provider_regions(provider).keys.first
38
+ creds = cfg[:credentials]
39
+ client = Aws::Route53::Client.new(
40
+ region: region,
41
+ access_key_id: creds[:'aws-access-key'],
42
+ secret_access_key: creds[:'aws-secret-key']
43
+ )
44
+ yield client
45
+ end
46
+
47
+ end
48
+ end
@@ -68,13 +68,48 @@ module Fhcap
68
68
  cookbook_path = repo_cookbook_paths
69
69
  cookbook_path << File.join(Fhcap.source_root, 'lib', 'cookbooks')
70
70
 
71
- thor.template(File.join("templates", "init", "knife.rb.erb"), knife_config_file,
72
- :name => name,
73
- :validation_client_name => knife_config[:validation_client_name],
74
- :chef_server_url => knife_config[:chef_server_url],
75
- :node_name => knife_config[:node_name],
76
- :cookbook_path => cookbook_path
77
- )
71
+ if name == 'local'
72
+ thor.template(File.join("templates", "init", "knife_local.rb.erb"), knife_config_file,
73
+ :name => name,
74
+ :node_name => knife_config[:node_name],
75
+ :cookbook_path => cookbook_path
76
+ )
77
+ private_key = '-----BEGIN RSA PRIVATE KEY-----
78
+ MIIEpAIBAAKCAQEA0sOY9tHvVtLZ6xmVmH8d8LrRrNcWOXbrvvCrai+T3GtRvRSL
79
+ hksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6yXR0hwsKuxKXqQ8SEmlhZZ9GiuggD
80
+ B/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqxoTXLyeJDF0sCyTdp3L8IZCUWodM8
81
+ oV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0/ftnwhTtwO52RkWA0uYOLGVayHsL
82
+ SCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0QsFzRLoTx6SRFI5dT2Nf8iiJe4WC
83
+ UG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41VQIDAQABAoIBAALhqbW2KQ+G0nPk
84
+ ZacwFbi01SkHx8YBWjfCEpXhEKRy0ytCnKW5YO+CFU2gHNWcva7+uhV9OgwaKXkw
85
+ KHLeUJH1VADVqI4Htqw2g5mYm6BPvWnNsjzpuAp+BR+VoEGkNhj67r9hatMAQr0I
86
+ itTvSH5rvd2EumYXIHKfz1K1SegUk1u1EL1RcMzRmZe4gDb6eNBs9Sg4im4ybTG6
87
+ pPIytA8vBQVWhjuAR2Tm+wZHiy0Az6Vu7c2mS07FSX6FO4E8SxWf8idaK9ijMGSq
88
+ FvIS04mrY6XCPUPUC4qm1qNnhDPpOr7CpI2OO98SqGanStS5NFlSFXeXPpM280/u
89
+ fZUA0AECgYEA+x7QUnffDrt7LK2cX6wbvn4mRnFxet7bJjrfWIHf+Rm0URikaNma
90
+ h0/wNKpKBwIH+eHK/LslgzcplrqPytGGHLOG97Gyo5tGAzyLHUWBmsNkRksY2sPL
91
+ uHq6pYWJNkqhnWGnIbmqCr0EWih82x/y4qxbJYpYqXMrit0wVf7yAgkCgYEA1twI
92
+ gFaXqesetTPoEHSQSgC8S4D5/NkdriUXCYb06REcvo9IpFMuiOkVUYNN5d3MDNTP
93
+ IdBicfmvfNELvBtXDomEUD8ls1UuoTIXRNGZ0VsZXu7OErXCK0JKNNyqRmOwcvYL
94
+ JRqLfnlei5Ndo1lu286yL74c5rdTLs/nI2p4e+0CgYB079ZmcLeILrmfBoFI8+Y/
95
+ gJLmPrFvXBOE6+lRV7kqUFPtZ6I3yQzyccETZTDvrnx0WjaiFavUPH27WMjY01S2
96
+ TMtO0Iq1MPsbSrglO1as8MvjB9ldFcvp7gy4Q0Sv6XT0yqJ/S+vo8Df0m+H4UBpU
97
+ f5o6EwBSd/UQxwtZIE0lsQKBgQCswfjX8Eg8KL/lJNpIOOE3j4XXE9ptksmJl2sB
98
+ jxDnQYoiMqVO808saHVquC/vTrpd6tKtNpehWwjeTFuqITWLi8jmmQ+gNTKsC9Gn
99
+ 1Pxf2Gb67PqnEpwQGln+TRtgQ5HBrdHiQIi+5am+gnw89pDrjjO5rZwhanAo6KPJ
100
+ 1zcPNQKBgQDxFu8v4frDmRNCVaZS4f1B6wTrcMrnibIDlnzrK9GG6Hz1U7dDv8s8
101
+ Nf4UmeMzDXjlPWZVOvS5+9HKJPdPj7/onv8B2m18+lcgTTDJBkza7R1mjL1Cje/Z
102
+ KcVGsryKN6cjE7yCDasnA7R2rVBV/7NWeJV77bmzT5O//rW4yIfUIg==
103
+ -----END RSA PRIVATE KEY-----'
104
+ else
105
+ thor.template(File.join("templates", "init", "knife.rb.erb"), knife_config_file,
106
+ :name => name,
107
+ :validation_client_name => knife_config[:validation_client_name],
108
+ :chef_server_url => knife_config[:chef_server_url],
109
+ :node_name => knife_config[:node_name],
110
+ :cookbook_path => cookbook_path
111
+ )
112
+ end
78
113
 
79
114
  thor.empty_directory File.join(knife_config_dir, name)
80
115
  thor.empty_directory File.join(knife_config_dir, 'keys')
@@ -82,7 +117,7 @@ module Fhcap
82
117
  thor.create_file(File.join(knife_config_dir, name, "#{knife_config[:node_name]}.pem"), private_key, :force => true) if private_key
83
118
  thor.create_file(File.join(knife_config_dir, name, "#{knife_config[:validation_client_name]}.pem"), private_key, :force => true) if validation_key
84
119
 
85
- validate_knife_config(knife_config_file)
120
+ validate_knife_config(knife_config_file) unless name == 'local'
86
121
 
87
122
  unless File.exists? File.join(knife_config_dir, "knife.rb")
88
123
  thor.create_link File.join(knife_config_dir, "knife.rb"), knife_config_file
@@ -80,6 +80,7 @@ module Fhcap
80
80
  thor.run(cmd, :capture => !verbose)
81
81
  status = $?.exitstatus
82
82
  end
83
+ repo_post_checkout(repo)
83
84
  status == 0
84
85
  end
85
86
 
@@ -42,6 +42,31 @@ module Fhcap
42
42
  exit(-1)
43
43
  end
44
44
 
45
+ def suppress_stdout(out=true, err=false)
46
+ timestamp = Time.now.to_i
47
+ err_file = File.join(Dir.tmpdir, "fhcap-cli-#{timestamp}.err")
48
+ out_file = File.join(Dir.tmpdir, "fhcap-cli-#{timestamp}.out")
49
+ begin
50
+ orig_stderr = $stderr.clone
51
+ orig_stdout = $stdout.clone
52
+ $stderr.reopen File.new(err_file, 'w') if err
53
+ $stdout.reopen File.new(out_file, 'w') if out
54
+ retval = yield
55
+ rescue Exception => e
56
+ $stdout.reopen orig_stdout
57
+ $stderr.reopen orig_stderr
58
+ puts File.open(out_file, "r").read if File.exists?(out_file) && out
59
+ puts File.open(err_file, "r").read if File.exists?(err_file) && err
60
+ raise e
61
+ ensure
62
+ $stdout.reopen orig_stdout
63
+ $stderr.reopen orig_stderr
64
+ FileUtils.rm(out_file) if File.exists?(out_file)
65
+ FileUtils.rm(err_file) if File.exists?(err_file)
66
+ end
67
+ retval
68
+ end
69
+
45
70
  def with_progress(title, &block)
46
71
  long_running_task = fork(&block)
47
72
 
data/lib/fhcap/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fhcap
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+ require "fhcap/tasks/dns/create_record"
3
+
4
+ describe Fhcap::Tasks::Dns::CreateRecord do
5
+
6
+ subject {
7
+ Fhcap::Tasks::Dns::CreateRecord.new(options)
8
+ }
9
+
10
+ let(:thor) do
11
+ DummyThor.new
12
+ end
13
+
14
+ let(:config) do
15
+ {}
16
+ end
17
+
18
+ let(:options) do
19
+ {
20
+ :config => config,
21
+ :thor => thor,
22
+ :domain => 'test.example.com',
23
+ :ipaddress => '127.0.0.1'
24
+ }
25
+ end
26
+
27
+ describe "#initialize" do
28
+ specify { expect(subject.domain).to eq(options[:domain]) }
29
+ specify { expect(subject.ipaddress).to eq(options[:ipaddress]) }
30
+ specify { expect(subject.alias_target).to eq(nil) }
31
+ specify { expect(subject.ttl).to eq(300) }
32
+ end
33
+
34
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require "fhcap/tasks/dns/delete_record"
3
+
4
+ describe Fhcap::Tasks::Dns::DeleteRecord do
5
+
6
+ subject {
7
+ Fhcap::Tasks::Dns::DeleteRecord.new(options)
8
+ }
9
+
10
+ let(:thor) do
11
+ DummyThor.new
12
+ end
13
+
14
+ let(:config) do
15
+ {}
16
+ end
17
+
18
+ let(:options) do
19
+ {
20
+ :config => config,
21
+ :thor => thor,
22
+ :domain => 'test.example.com'
23
+ }
24
+ end
25
+
26
+ describe "#initialize" do
27
+ specify { expect(subject.domain).to eq(options[:domain]) }
28
+ end
29
+
30
+ end
@@ -33,7 +33,7 @@ end
33
33
  "enabled": false
34
34
  },
35
35
  "domain": "<%= config[:domain] %>",
36
- "baseurl": "<%= config[:name] %>.feedhenry.local",
36
+ "baseurl": "<%= config[:name] %>.<%= config[:domain] %>",
37
37
  "manage": {
38
38
  "denyhosts": false
39
39
  },
@@ -35,7 +35,7 @@
35
35
  "protocols": ["all"],
36
36
  "start": 0,
37
37
  "end": 65535,
38
- "sources": ["83.147.149.210/32", "46.38.161.225/32", "54.229.76.48/32", "79.125.117.182/32"]
38
+ "sources": ["83.147.149.210/32", "46.38.161.225/32", "54.229.76.48/32", "79.125.117.182/32", "78.137.150.209/32"]
39
39
  }
40
40
  ]
41
41
  },
@@ -298,7 +298,7 @@
298
298
  ]
299
299
  },
300
300
  "load_balancers": ["git"],
301
- "run_list": ["role[mount_data_volumes]", "role[gitlab_shell_server"],
301
+ "run_list": ["role[mount_data_volumes]", "role[gitlab-shell_server]"],
302
302
  "source_dest_check": true
303
303
  },
304
304
  "git2": {
@@ -326,8 +326,8 @@
326
326
  }
327
327
  ]
328
328
  },
329
- "run_list": ["role[mount_data_volumes]", "role[gitlab_shell_server"],
329
+ "run_list": ["role[mount_data_volumes]", "role[gitlab-shell_server]"],
330
330
  "source_dest_check": true
331
331
  }
332
332
  }
333
- }
333
+ }
@@ -35,7 +35,8 @@
35
35
  "private_ip_address": "",
36
36
  "subnet": "1a"
37
37
  },
38
- "run_list": ["recipe[apt::default]"]
38
+ "run_list": [
39
+ ]
39
40
  }
40
41
  }
41
42
  }
@@ -8,7 +8,7 @@
8
8
  "run_list": ["role[platform_mongo_server]", "role[rabbitmq_server]", "role[app_server]", "role[fh-scm]", "role[fh-messaging]", "role[fh-metrics]", "recipe[feedhenry_common::fhctl]"]
9
9
  },
10
10
  "mgt1": {
11
- "run_list": ["role[platform_mongo_server]", "role[mysql_server]", "role[gitlab-shell_server]", "role[management_server]", "recipe[feedhenry_common::fhctl]", "recipe[nginx_feedhenry::load_balancer]"]
11
+ "run_list": ["role[platform_mongo_server]", "role[mysql_server]", "role[gitlab-shell_server]", "role[management_server]", "recipe[feedhenry_common::fhctl]", "recipe[nginx_feedhenry::loadbalancer]"]
12
12
  }
13
13
  }
14
14
  }
@@ -8,7 +8,7 @@
8
8
  "run_list": ["role[app_server]"]
9
9
  },
10
10
  "mgt1": {
11
- "run_list": ["role[platform_mongo_server]", "role[galera_backup_server]", "role[galera_arbiter_server]", "role[management_server]", "role[mount_data_volumes]", "role[mongo_backup_server]", "recipe[nginx_feedhenry::load_balancer]"]
11
+ "run_list": ["role[platform_mongo_server]", "role[galera_backup_server]", "role[galera_arbiter_server]", "role[management_server]", "role[mount_data_volumes]", "role[mongo_backup_server]", "recipe[nginx_feedhenry::loadbalancer]"]
12
12
  },
13
13
  "db1": {
14
14
  "run_list": ["role[galera_server]", "role[platform_mongo_server]", "role[rabbitmq_server]"]
@@ -23,10 +23,10 @@
23
23
  "run_list": ["role[fh-scm]", "role[fh-messaging]", "role[fh-metrics]", "role[fh-stats]"]
24
24
  },
25
25
  "git1": {
26
- "run_list": ["role[gitlab_shell_server"]
26
+ "run_list": ["role[gitlab-shell_server]"]
27
27
  },
28
28
  "git2": {
29
- "run_list": ["role[gitlab_shell_server"]
29
+ "run_list": ["role[gitlab-shell_server]"]
30
30
  }
31
31
  }
32
- }
32
+ }
@@ -8,7 +8,7 @@
8
8
  "run_list": ["role[mongo_server]", "role[dyno_server]", "role[fh-ditch]", "recipe[feedhenry_common::fhctl]"]
9
9
  },
10
10
  "mgt1": {
11
- "run_list": ["role[platform_mongo_server]", "role[mongo_server]", "role[fh-stats]", "role[management_server]"]
11
+ "run_list": ["role[platform_mongo_server]", "role[mongo_server]", "role[fh-stats]", "role[management_server]", "recipe[nginx_feedhenry::loadbalancer]"]
12
12
  }
13
13
  }
14
- }
14
+ }
@@ -3,7 +3,6 @@
3
3
  "instances": {
4
4
  "node1": {
5
5
  "run_list": [
6
- "recipe[apt::default]"
7
6
  ]
8
7
  }
9
8
  }
@@ -0,0 +1,9 @@
1
+ current_dir = File.dirname(__FILE__)
2
+ chef_repo = "<%= config[:chef_repo] %>"
3
+
4
+ chef_server_url "http://127.0.0.1:7799"
5
+ node_name "<%= config[:node_name] %>"
6
+ client_key "#{current_dir}/<%= config[:name] %>/<%= config[:node_name] %>.pem"
7
+ cache_type "BasicFile"
8
+ cache_options :path => "#{chef_repo}/checksums"
9
+ cookbook_path <%= config[:cookbook_path] %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fhcap-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Nairn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-11 00:00:00.000000000 Z
11
+ date: 2015-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -357,6 +357,7 @@ files:
357
357
  - lib/cookbooks/provision/recipes/aws_cluster_create_elb.rb
358
358
  - lib/cookbooks/provision/recipes/aws_cluster_destroy.rb
359
359
  - lib/cookbooks/provision/recipes/cluster_create.rb
360
+ - lib/cookbooks/provision/recipes/cluster_create_instances.rb
360
361
  - lib/cookbooks/provision/recipes/cluster_destroy.rb
361
362
  - lib/cookbooks/provision/recipes/cluster_destroy_instances.rb
362
363
  - lib/cookbooks/provision/recipes/cluster_provision.rb
@@ -369,6 +370,7 @@ files:
369
370
  - lib/cookbooks/provision/recipes/openstack_cluster_destroy.rb
370
371
  - lib/cookbooks/provision/recipes/reset_rabbitmq.rb
371
372
  - lib/cookbooks/provision/recipes/restart_services.rb
373
+ - lib/cookbooks/provision/recipes/seed_cookbooks.rb
372
374
  - lib/extensions/chef/provisioning.rb
373
375
  - lib/extensions/chef/provisioning/aws_driver/driver.rb
374
376
  - lib/extensions/chef/provisioning/chef_run_data.rb
@@ -380,6 +382,7 @@ files:
380
382
  - lib/fhcap/component.rb
381
383
  - lib/fhcap/config.rb
382
384
  - lib/fhcap/cookbook.rb
385
+ - lib/fhcap/dns.rb
383
386
  - lib/fhcap/dummy_node.rb
384
387
  - lib/fhcap/fhcap_helper.rb
385
388
  - lib/fhcap/kitchen.rb
@@ -393,7 +396,10 @@ files:
393
396
  - lib/fhcap/providers_helper.rb
394
397
  - lib/fhcap/repo.rb
395
398
  - lib/fhcap/repos_helper.rb
399
+ - lib/fhcap/tasks/chef/chef_server_task.rb
396
400
  - lib/fhcap/tasks/chef/chef_task_base.rb
401
+ - lib/fhcap/tasks/chef/chef_zero_server.rb
402
+ - lib/fhcap/tasks/chef/cookbook/archive.rb
397
403
  - lib/fhcap/tasks/chef/cookbook/list.rb
398
404
  - lib/fhcap/tasks/chef/cookbook/list_artifacts.rb
399
405
  - lib/fhcap/tasks/chef/cookbook/update_artifact.rb
@@ -415,6 +421,7 @@ files:
415
421
  - lib/fhcap/tasks/chef/server/info.rb
416
422
  - lib/fhcap/tasks/chef/server/provision.rb
417
423
  - lib/fhcap/tasks/clean.rb
424
+ - lib/fhcap/tasks/cluster/chef_provisioning_task.rb
418
425
  - lib/fhcap/tasks/cluster/cluster_task_base.rb
419
426
  - lib/fhcap/tasks/cluster/create.rb
420
427
  - lib/fhcap/tasks/cluster/create_environment.rb
@@ -425,10 +432,13 @@ files:
425
432
  - lib/fhcap/tasks/cluster/provision.rb
426
433
  - lib/fhcap/tasks/cluster/status.rb
427
434
  - lib/fhcap/tasks/cluster/test.rb
435
+ - lib/fhcap/tasks/dns/create_record.rb
436
+ - lib/fhcap/tasks/dns/delete_record.rb
437
+ - lib/fhcap/tasks/dns/list.rb
438
+ - lib/fhcap/tasks/dns/route53_helper.rb
428
439
  - lib/fhcap/tasks/knife/add.rb
429
440
  - lib/fhcap/tasks/knife/list.rb
430
441
  - lib/fhcap/tasks/knife/remove.rb
431
- - lib/fhcap/tasks/misc/create_dns_record.rb
432
442
  - lib/fhcap/tasks/misc/create_ssl_cert.rb
433
443
  - lib/fhcap/tasks/provider/add.rb
434
444
  - lib/fhcap/tasks/provider/list.rb
@@ -446,6 +456,8 @@ files:
446
456
  - spec/fhcap/tasks/chef/cookbook/update_artifact_spec.rb
447
457
  - spec/fhcap/tasks/chef/cookbook/update_config_spec.rb
448
458
  - spec/fhcap/tasks/cluster/create_spec.rb
459
+ - spec/fhcap/tasks/dns/create_record_spec.rb
460
+ - spec/fhcap/tasks/dns/delete_record_spec.rb
449
461
  - spec/fhcap/tasks/knife/add_spec.rb
450
462
  - spec/fhcap/tasks/knife/remove_spec.rb
451
463
  - spec/fhcap/tasks/provider/add_spec.rb
@@ -485,6 +497,7 @@ files:
485
497
  - templates/cluster/single-blank.json.erb
486
498
  - templates/cluster/single.json.erb
487
499
  - templates/init/knife.rb.erb
500
+ - templates/init/knife_local.rb.erb
488
501
  - templates/kitchen/Cheffile.erb
489
502
  - templates/kitchen/kitchen.aws.yml.erb
490
503
  - templates/kitchen/kitchen.docker.yml.erb
@@ -510,7 +523,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
510
523
  version: '0'
511
524
  requirements: []
512
525
  rubyforge_project:
513
- rubygems_version: 2.4.8
526
+ rubygems_version: 2.5.0
514
527
  signing_key:
515
528
  specification_version: 4
516
529
  summary: FHCAP Command Line Tool
@@ -520,6 +533,8 @@ test_files:
520
533
  - spec/fhcap/tasks/chef/cookbook/update_artifact_spec.rb
521
534
  - spec/fhcap/tasks/chef/cookbook/update_config_spec.rb
522
535
  - spec/fhcap/tasks/cluster/create_spec.rb
536
+ - spec/fhcap/tasks/dns/create_record_spec.rb
537
+ - spec/fhcap/tasks/dns/delete_record_spec.rb
523
538
  - spec/fhcap/tasks/knife/add_spec.rb
524
539
  - spec/fhcap/tasks/knife/remove_spec.rb
525
540
  - spec/fhcap/tasks/provider/add_spec.rb