fhcap-cli 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rakeTasks +7 -0
  4. data/.rspec +1 -0
  5. data/CHANGELOG.md +15 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +150 -0
  9. data/Rakefile +2 -0
  10. data/bin/fhcap +6 -0
  11. data/fhcap-cli.gemspec +44 -0
  12. data/lib/cookbooks/provision/libraries/provision.rb +140 -0
  13. data/lib/cookbooks/provision/metadata.rb +7 -0
  14. data/lib/cookbooks/provision/recipes/aws.rb +15 -0
  15. data/lib/cookbooks/provision/recipes/aws_cluster_create.rb +59 -0
  16. data/lib/cookbooks/provision/recipes/aws_cluster_create_elb.rb +61 -0
  17. data/lib/cookbooks/provision/recipes/aws_cluster_destroy.rb +52 -0
  18. data/lib/cookbooks/provision/recipes/cluster_create.rb +2 -0
  19. data/lib/cookbooks/provision/recipes/cluster_destroy.rb +2 -0
  20. data/lib/cookbooks/provision/recipes/cluster_destroy_instances.rb +11 -0
  21. data/lib/cookbooks/provision/recipes/cluster_provision.rb +4 -0
  22. data/lib/cookbooks/provision/recipes/cluster_provision_instances.rb +55 -0
  23. data/lib/cookbooks/provision/recipes/cluster_status.rb +24 -0
  24. data/lib/cookbooks/provision/recipes/common.rb +9 -0
  25. data/lib/cookbooks/provision/recipes/default.rb +5 -0
  26. data/lib/cookbooks/provision/recipes/openstack.rb +11 -0
  27. data/lib/cookbooks/provision/recipes/openstack_cluster_create.rb +11 -0
  28. data/lib/cookbooks/provision/recipes/openstack_cluster_destroy.rb +4 -0
  29. data/lib/cookbooks/provision/recipes/reset_rabbitmq.rb +49 -0
  30. data/lib/cookbooks/provision/recipes/restart_services.rb +24 -0
  31. data/lib/extensions/chef/provisioning.rb +21 -0
  32. data/lib/extensions/chef/provisioning/aws_driver/driver.rb +46 -0
  33. data/lib/extensions/chef/provisioning/chef_run_data.rb +18 -0
  34. data/lib/extensions/cheffish/merged_config.rb +9 -0
  35. data/lib/fhcap.rb +14 -0
  36. data/lib/fhcap/chef-dk/chef_runner.rb +94 -0
  37. data/lib/fhcap/cli.rb +75 -0
  38. data/lib/fhcap/cluster.rb +112 -0
  39. data/lib/fhcap/config.rb +104 -0
  40. data/lib/fhcap/cookbook.rb +75 -0
  41. data/lib/fhcap/dummy_node.rb +80 -0
  42. data/lib/fhcap/fhcap_helper.rb +9 -0
  43. data/lib/fhcap/kitchen.rb +235 -0
  44. data/lib/fhcap/knife.rb +74 -0
  45. data/lib/fhcap/knife_helper.rb +38 -0
  46. data/lib/fhcap/misc.rb +103 -0
  47. data/lib/fhcap/provider.rb +41 -0
  48. data/lib/fhcap/providers_helper.rb +60 -0
  49. data/lib/fhcap/repo.rb +52 -0
  50. data/lib/fhcap/repos_helper.rb +217 -0
  51. data/lib/fhcap/tasks/chef/chef_task_base.rb +82 -0
  52. data/lib/fhcap/tasks/chef/cookbook/list.rb +37 -0
  53. data/lib/fhcap/tasks/chef/cookbook/update_changelog.rb +63 -0
  54. data/lib/fhcap/tasks/chef/cookbook/update_metadata.rb +57 -0
  55. data/lib/fhcap/tasks/chef/cookbook/update_readme.rb +30 -0
  56. data/lib/fhcap/tasks/chef/cookbook/update_version.rb +90 -0
  57. data/lib/fhcap/tasks/chef/environments/create.rb +115 -0
  58. data/lib/fhcap/tasks/chef/environments/destroy.rb +37 -0
  59. data/lib/fhcap/tasks/chef/environments/promote_cookbooks.rb +47 -0
  60. data/lib/fhcap/tasks/chef/provisioning/chef_provisioning_task.rb +27 -0
  61. data/lib/fhcap/tasks/chef/provisioning/chef_provisioning_task_base.rb +38 -0
  62. data/lib/fhcap/tasks/chef/provisioning/create.rb +22 -0
  63. data/lib/fhcap/tasks/chef/provisioning/destroy.rb +21 -0
  64. data/lib/fhcap/tasks/chef/provisioning/provision.rb +19 -0
  65. data/lib/fhcap/tasks/chef/server/bootstrap.rb +165 -0
  66. data/lib/fhcap/tasks/chef/server/create_user.rb +97 -0
  67. data/lib/fhcap/tasks/chef/server/info.rb +82 -0
  68. data/lib/fhcap/tasks/chef/server/provision.rb +45 -0
  69. data/lib/fhcap/tasks/clean.rb +34 -0
  70. data/lib/fhcap/tasks/cluster/cluster_task_base.rb +57 -0
  71. data/lib/fhcap/tasks/cluster/create.rb +243 -0
  72. data/lib/fhcap/tasks/cluster/create_environment.rb +171 -0
  73. data/lib/fhcap/tasks/cluster/destroy.rb +30 -0
  74. data/lib/fhcap/tasks/cluster/destroy_environment.rb +28 -0
  75. data/lib/fhcap/tasks/cluster/info.rb +67 -0
  76. data/lib/fhcap/tasks/cluster/list.rb +40 -0
  77. data/lib/fhcap/tasks/cluster/provision.rb +46 -0
  78. data/lib/fhcap/tasks/cluster/status.rb +17 -0
  79. data/lib/fhcap/tasks/cluster/test.rb +15 -0
  80. data/lib/fhcap/tasks/knife/add.rb +111 -0
  81. data/lib/fhcap/tasks/knife/list.rb +22 -0
  82. data/lib/fhcap/tasks/knife/remove.rb +39 -0
  83. data/lib/fhcap/tasks/misc/create_dns_record.rb +100 -0
  84. data/lib/fhcap/tasks/misc/create_ssl_cert.rb +82 -0
  85. data/lib/fhcap/tasks/provider/add.rb +136 -0
  86. data/lib/fhcap/tasks/provider/list.rb +31 -0
  87. data/lib/fhcap/tasks/provider/remove.rb +28 -0
  88. data/lib/fhcap/tasks/repo/add.rb +57 -0
  89. data/lib/fhcap/tasks/repo/checkout.rb +144 -0
  90. data/lib/fhcap/tasks/repo/list.rb +22 -0
  91. data/lib/fhcap/tasks/repo/remove.rb +34 -0
  92. data/lib/fhcap/tasks/setup.rb +59 -0
  93. data/lib/fhcap/tasks/task_base.rb +89 -0
  94. data/lib/fhcap/thor_base.rb +121 -0
  95. data/lib/fhcap/version.rb +3 -0
  96. data/spec/fhcap/cli_spec.rb +6 -0
  97. data/spec/fhcap/tasks/cluster/create_spec.rb +46 -0
  98. data/spec/fhcap/tasks/knife/add_spec.rb +35 -0
  99. data/spec/fhcap/tasks/knife/remove_spec.rb +25 -0
  100. data/spec/fhcap/tasks/provider/add_spec.rb +61 -0
  101. data/spec/fhcap/tasks/provider/remove_spec.rb +25 -0
  102. data/spec/fhcap/tasks/repo/add_spec.rb +32 -0
  103. data/spec/fhcap/tasks/repo/remove_spec.rb +25 -0
  104. data/spec/fhcap/tasks/task_base_spec.rb +51 -0
  105. data/spec/fhcap/thor_base_spec.rb +9 -0
  106. data/spec/spec_helper.rb +23 -0
  107. data/spec/support/dummy_config.rb +7 -0
  108. data/spec/support/dummy_thor.rb +3 -0
  109. data/templates/chef/cookbook/changelog.md.erb +12 -0
  110. data/templates/chef/cookbook/metadata.erb +45 -0
  111. data/templates/chef/environment_core.json.erb +278 -0
  112. data/templates/chef/environment_empty.json.erb +10 -0
  113. data/templates/chef/environment_mbaas.json.erb +120 -0
  114. data/templates/chef/environment_single.json.erb +300 -0
  115. data/templates/cluster/aws/common.json.erb +43 -0
  116. data/templates/cluster/aws/core-3node.json.erb +106 -0
  117. data/templates/cluster/aws/core-small-9node.json.erb +333 -0
  118. data/templates/cluster/aws/mbaas-3node.json.erb +116 -0
  119. data/templates/cluster/aws/nginx-test.json.erb +93 -0
  120. data/templates/cluster/aws/single-blank.json.erb +41 -0
  121. data/templates/cluster/aws/single.json.erb +88 -0
  122. data/templates/cluster/core-3node.json.erb +8 -0
  123. data/templates/cluster/core-mbaas-6node.json.erb +13 -0
  124. data/templates/cluster/core-small-9node.json.erb +8 -0
  125. data/templates/cluster/mbaas-3node.json.erb +9 -0
  126. data/templates/cluster/nginx-test.json.erb +8 -0
  127. data/templates/cluster/openstack/common.json.erb +7 -0
  128. data/templates/cluster/openstack/core-3node.json.erb +14 -0
  129. data/templates/cluster/openstack/core-small-9node.json.erb +32 -0
  130. data/templates/cluster/openstack/mbaas-3node.json.erb +14 -0
  131. data/templates/cluster/openstack/nginx-test.json.erb +11 -0
  132. data/templates/cluster/openstack/single-blank.json.erb +10 -0
  133. data/templates/cluster/openstack/single.json.erb +10 -0
  134. data/templates/cluster/single-blank.json.erb +8 -0
  135. data/templates/cluster/single.json.erb +8 -0
  136. data/templates/init/knife.rb.erb +13 -0
  137. data/templates/kitchen/Cheffile.erb +11 -0
  138. data/templates/kitchen/kitchen.aws.yml.erb +35 -0
  139. data/templates/kitchen/kitchen.docker.yml.erb +24 -0
  140. data/templates/kitchen/kitchen.generate.yml.erb +2 -0
  141. data/templates/kitchen/kitchen.openstack.yml.erb +31 -0
  142. metadata +506 -0
@@ -0,0 +1,93 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "subnets": {
4
+ "1a": {
5
+ "cidr": "64/26",
6
+ "availability_zone": "1a"
7
+ },
8
+ "1b": {
9
+ "cidr": "128/26",
10
+ "availability_zone": "1b"
11
+ }
12
+ },
13
+ "security_groups": {
14
+ "<%= config[:environment_name] %>-studio-lb": {
15
+ "authorize_ingress": [
16
+ {
17
+ "protocols": ["tcp"],
18
+ "start": 80,
19
+ "end": 80,
20
+ "sources": ["0.0.0.0/0"]
21
+ },
22
+ {
23
+ "protocols": ["tcp"],
24
+ "start": 443,
25
+ "end": 443,
26
+ "sources": ["0.0.0.0/0"]
27
+ }
28
+ ]
29
+ },
30
+ "<%= config[:environment_name] %>": {
31
+ "authorize_ingress": [
32
+ {
33
+ "protocols": ["all"],
34
+ "start": 0,
35
+ "end": 65535,
36
+ "groups": ["<%= config[:environment_name] %>", "<%= config[:environment_name] %>-studio-lb"]
37
+ }
38
+ ]
39
+ },
40
+ "<%= config[:environment_name] %>-git": {
41
+ "authorize_ingress": [
42
+ {
43
+ "protocols": ["tcp"],
44
+ "start": 22,
45
+ "end": 22,
46
+ "sources": ["0.0.0.0/0"]
47
+ }
48
+ ]
49
+ }
50
+ },
51
+ "load_balancers": {
52
+ "studio": {
53
+ "security_groups": ["<%= config[:environment_name] %>-studio-lb"],
54
+ "subnets": ["1a", "1b"],
55
+ "scheme": "internet-facing",
56
+ "listeners": [
57
+ {
58
+ "port": 80,
59
+ "protocol": "http",
60
+ "instance_port": 80,
61
+ "instance_protocol": "http"
62
+ },
63
+ {
64
+ "port": 443,
65
+ "protocol": "https",
66
+ "instance_port": 80,
67
+ "instance_protocol": "http",
68
+ "server_certificate": ""
69
+ }
70
+ ]
71
+ }
72
+ },
73
+ "instances": {
74
+ "node1": {
75
+ "aws": {
76
+ "security_groups": ["ops-admin", "<%= config[:environment_name] %>", "<%= config[:environment_name] %>-git"],
77
+ "private_ip_address": "",
78
+ "subnet": "1a"
79
+ },
80
+ "load_balancers": ["studio"],
81
+ "run_list": ["recipe[nginx_feedhenry::default]"]
82
+ },
83
+ "node2": {
84
+ "aws": {
85
+ "security_groups": ["ops-admin", "<%= config[:environment_name] %>", "<%= config[:environment_name] %>-git"],
86
+ "private_ip_address": "",
87
+ "subnet": "1b"
88
+ },
89
+ "load_balancers": ["studio"],
90
+ "run_list": ["recipe[nginx_feedhenry::default]"]
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "subnets": {
4
+ "1a": {
5
+ "cidr": "0/26",
6
+ "availability_zone": "1a"
7
+ }
8
+ },
9
+ "security_groups": {
10
+ "<%= config[:environment_name] %>": {
11
+ "authorize_ingress": [
12
+ {
13
+ "protocols": ["all"],
14
+ "start": 0,
15
+ "end": 65535,
16
+ "groups": ["<%= config[:environment_name] %>"]
17
+ }
18
+ ]
19
+ },
20
+ "<%= config[:environment_name] %>-ssh": {
21
+ "authorize_ingress": [
22
+ {
23
+ "protocols": ["tcp"],
24
+ "start": 22,
25
+ "end": 22,
26
+ "sources": ["0.0.0.0/0"]
27
+ }
28
+ ]
29
+ }
30
+ },
31
+ "instances": {
32
+ "node1": {
33
+ "aws": {
34
+ "security_groups": ["ops-admin", "<%= config[:environment_name] %>", "<%= config[:environment_name] %>-ssh"],
35
+ "private_ip_address": "",
36
+ "subnet": "1a"
37
+ },
38
+ "run_list": ["recipe[apt::default]"]
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "subnets": {
4
+ "1a": {
5
+ "cidr": "64/26",
6
+ "availability_zone": "1a"
7
+ },
8
+ "1b": {
9
+ "cidr": "128/26",
10
+ "availability_zone": "1b"
11
+ },
12
+ "1c": {
13
+ "cidr": "192/26",
14
+ "availability_zone": "1c"
15
+ }
16
+ },
17
+ "security_groups": {
18
+ "<%= config[:environment_name] %>-studio-lb": {
19
+ "authorize_ingress": [
20
+ {
21
+ "protocols": ["tcp"],
22
+ "start": 80,
23
+ "end": 80,
24
+ "sources": ["0.0.0.0/0"]
25
+ },
26
+ {
27
+ "protocols": ["tcp"],
28
+ "start": 443,
29
+ "end": 443,
30
+ "sources": ["0.0.0.0/0"]
31
+ }
32
+ ]
33
+ },
34
+ "<%= config[:environment_name] %>": {
35
+ "authorize_ingress": [
36
+ {
37
+ "protocols": ["all"],
38
+ "start": 0,
39
+ "end": 65535,
40
+ "groups": ["<%= config[:environment_name] %>", "<%= config[:environment_name] %>-studio-lb"]
41
+ }
42
+ ]
43
+ },
44
+ "<%= config[:environment_name] %>-git": {
45
+ "authorize_ingress": [
46
+ {
47
+ "protocols": ["tcp"],
48
+ "start": 22,
49
+ "end": 22,
50
+ "sources": ["0.0.0.0/0"]
51
+ }
52
+ ]
53
+ }
54
+ },
55
+ "load_balancers": {
56
+ "studio": {
57
+ "security_groups": ["<%= config[:environment_name] %>-studio-lb"],
58
+ "subnets": ["1a", "1b"],
59
+ "scheme": "internet-facing",
60
+ "listeners": [
61
+ {
62
+ "port": 80,
63
+ "protocol": "http",
64
+ "instance_port": 80,
65
+ "instance_protocol": "http"
66
+ },
67
+ {
68
+ "port": 443,
69
+ "protocol": "https",
70
+ "instance_port": 80,
71
+ "instance_protocol": "http",
72
+ "server_certificate": ""
73
+ }
74
+ ]
75
+ }
76
+ },
77
+ "instances": {
78
+ "node1": {
79
+ "aws": {
80
+ "security_groups": ["ops-admin", "<%= config[:environment_name] %>", "<%= config[:environment_name] %>-git"],
81
+ "private_ip_address": "",
82
+ "subnet": "1a"
83
+ },
84
+ "load_balancers": ["studio"],
85
+ "run_list": ["role[fhcap]"]
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "core",
5
+ "template": "core-3node"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "core",
5
+ "template": "core-3node"
6
+ },
7
+ {
8
+ "name": "mbaas1",
9
+ "template": "mbaas-3node",
10
+ "domain-prefix": "mbaas"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "core",
5
+ "template": "core-small-9node"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "mbaas1",
5
+ "template": "mbaas-3node",
6
+ "domain-prefix": "mbaas1"
7
+ }
8
+ ]
9
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "nginx-test",
5
+ "template": "nginx-test"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "default_instance_options": {
3
+ "image_ref": "<%= config[:default_instance_options][:image_ref] %>",
4
+ "flavor_ref": "<%= config[:default_instance_options][:flavor_ref] %>",
5
+ "floating_ip_pool": "<%= config[:default_instance_options][:floating_ip_pool] %>"
6
+ }
7
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "instances": {
4
+ "node1": {
5
+ "run_list": ["role[platform_mongo_server]", "role[rabbitmq_server]", "role[app_server]", "role[fh-scm]", "role[fh-messaging]", "role[fh-metrics]", "role[fh-stats]", "recipe[feedhenry_common::fhctl]"]
6
+ },
7
+ "node2": {
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
+ },
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]"]
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "instances": {
4
+ "app1": {
5
+ "run_list": ["role[app_server]"]
6
+ },
7
+ "app2": {
8
+ "run_list": ["role[app_server]"]
9
+ },
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]"]
12
+ },
13
+ "db1": {
14
+ "run_list": ["role[galera_server]", "role[platform_mongo_server]", "role[rabbitmq_server]"]
15
+ },
16
+ "db2": {
17
+ "run_list": ["role[galera_server]", "role[platform_mongo_server]", "role[rabbitmq_server]"]
18
+ },
19
+ "util1": {
20
+ "run_list": ["role[fh-scm]", "role[fh-messaging]", "role[fh-metrics]", "role[fh-docs]", "role[fh-stats]"]
21
+ },
22
+ "util2": {
23
+ "run_list": ["role[fh-scm]", "role[fh-messaging]", "role[fh-metrics]", "role[fh-stats]"]
24
+ },
25
+ "git1": {
26
+ "run_list": ["role[gitlab_shell_server"]
27
+ },
28
+ "git2": {
29
+ "run_list": ["role[gitlab_shell_server"]
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "instances": {
4
+ "ship1": {
5
+ "run_list": ["role[mongo_server]", "role[dyno_server]", "role[fh-ditch]", "recipe[feedhenry_common::fhctl]"]
6
+ },
7
+ "ship2": {
8
+ "run_list": ["role[mongo_server]", "role[dyno_server]", "role[fh-ditch]", "recipe[feedhenry_common::fhctl]"]
9
+ },
10
+ "mgt1": {
11
+ "run_list": ["role[platform_mongo_server]", "role[mongo_server]", "role[fh-stats]", "role[management_server]"]
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "instances": {
4
+ "node1": {
5
+ "run_list": ["recipe[nginx_feedhenry::default]"]
6
+ },
7
+ "node2": {
8
+ "run_list": ["recipe[nginx_feedhenry::default]"]
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "instances": {
4
+ "node1": {
5
+ "run_list": [
6
+ "recipe[apt::default]"
7
+ ]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "domain": "<%= config[:domain] %>",
3
+ "instances": {
4
+ "node1": {
5
+ "run_list": [
6
+ "role[fhcap]"
7
+ ]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "single",
5
+ "template": "single-blank"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "environments": [
3
+ {
4
+ "name": "single",
5
+ "template": "single"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,13 @@
1
+ current_dir = File.dirname(__FILE__)
2
+ ssl_verify_mode :verify_none
3
+ log_level :error
4
+ log_location STDOUT
5
+ node_name "<%= config[:node_name] %>"
6
+ client_key "#{current_dir}/<%= config[:name] %>/<%= config[:node_name] %>.pem"
7
+ validation_client_name "<%= config[:validation_client_name] %>"
8
+ validation_key "#{current_dir}/<%= config[:name] %>/<%= config[:validation_client_name] %>.pem"
9
+ chef_server_url "<%= config[:chef_server_url] %>"
10
+ syntax_check_cache_path "#{current_dir}/syntax_check_cache"
11
+ cache_type 'BasicFile'
12
+ cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
13
+ cookbook_path <%= config[:cookbook_path] %>
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+ #^syntax detection
3
+
4
+ #Managed by Chef, DO NOT EDIT MANUALLY.
5
+ # To update run: bundle exec thor cookbook generate_kitchen -c <%= config[:name] %>
6
+
7
+ site 'http://community.opscode.com/api/v1'
8
+
9
+ <%- config[:cookbooks].each do |name, path| -%>
10
+ cookbook '<%= name %>', path: '<%= path %>'
11
+ <%- end -%>
@@ -0,0 +1,35 @@
1
+ ---
2
+ driver_config:
3
+ aws_access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
4
+ aws_secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
5
+ aws_ssh_key_id: <%= ENV['AWS_KEYPAIR_NAME'] %>
6
+ ssh_key: <%= ENV['EC2_SSH_KEY_PATH'] %>
7
+ security_group_ids:
8
+ - fhcap-test
9
+ tags:
10
+ Name: test-kitchen <%= Socket.gethostname %> (<%= Etc.getlogin %>)
11
+ OriginHostname: <%= Socket.gethostname %>
12
+ OriginUsername: <%= Etc.getlogin %>
13
+ OriginGitBranch: <%= `git name-rev --name-only HEAD` %>
14
+
15
+ provisioner:
16
+ name: chef_solo
17
+ data_bags_path: '../../data_bags'
18
+ environments_path: '../../environments'
19
+ client_rb:
20
+ environment: 'test-kitchen'
21
+ solo_rb:
22
+ environment: 'test-kitchen'
23
+ file_cache_path: /var/chef/cache
24
+ roles_path: '../../roles'
25
+ require_chef_omnibus: '11.10.4'
26
+
27
+ platforms:
28
+ - name: ubuntu-12.04
29
+ driver_plugin: ec2
30
+ driver_config:
31
+ flavor_id: <%= ENV['EC2_FLAVOR_ID'] || 'm1.small' %>
32
+ image_id: <%= ENV['EC2_IMAGE_ID'] || 'ami-92cc89e5' %>
33
+ availability_zone: <%= ENV['EC2_AVAILABILITY_ZONE'] || 'eu-west-1a' %>
34
+ region: <%= ENV['EC2_REGION'] || 'eu-west-1' %>
35
+ username: ubuntu