fhcap-cli 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
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