amigrind 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +72 -0
  5. data/.travis.yml +4 -0
  6. data/CODE_OF_CONDUCT.md +49 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +201 -0
  9. data/README.md +112 -0
  10. data/Rakefile +6 -0
  11. data/amigrind.gemspec +36 -0
  12. data/bin/amigrind +8 -0
  13. data/lib/amigrind.rb +29 -0
  14. data/lib/amigrind/blueprints/aws_config.rb +56 -0
  15. data/lib/amigrind/blueprints/base_ami_source.rb +15 -0
  16. data/lib/amigrind/blueprints/blueprint.rb +22 -0
  17. data/lib/amigrind/blueprints/evaluator.rb +269 -0
  18. data/lib/amigrind/blueprints/parent_blueprint_source.rb +10 -0
  19. data/lib/amigrind/blueprints/provisioner.rb +20 -0
  20. data/lib/amigrind/blueprints/provisioners/file_upload.rb +29 -0
  21. data/lib/amigrind/blueprints/provisioners/local_shell.rb +28 -0
  22. data/lib/amigrind/blueprints/provisioners/remote_shell.rb +57 -0
  23. data/lib/amigrind/build/packer_runner.rb +106 -0
  24. data/lib/amigrind/build/rackerizer.rb +134 -0
  25. data/lib/amigrind/builder.rb +46 -0
  26. data/lib/amigrind/cli.rb +12 -0
  27. data/lib/amigrind/cli/_helpers.rb +49 -0
  28. data/lib/amigrind/cli/_root.rb +43 -0
  29. data/lib/amigrind/cli/blueprints/_category.rb +15 -0
  30. data/lib/amigrind/cli/blueprints/list.rb +21 -0
  31. data/lib/amigrind/cli/blueprints/show.rb +22 -0
  32. data/lib/amigrind/cli/build/_category.rb +15 -0
  33. data/lib/amigrind/cli/build/execute.rb +32 -0
  34. data/lib/amigrind/cli/build/print_packer.rb +28 -0
  35. data/lib/amigrind/cli/environments/_category.rb +15 -0
  36. data/lib/amigrind/cli/environments/list.rb +23 -0
  37. data/lib/amigrind/cli/environments/show.rb +22 -0
  38. data/lib/amigrind/cli/inventory/_category.rb +15 -0
  39. data/lib/amigrind/cli/inventory/add_to_channel.rb +28 -0
  40. data/lib/amigrind/cli/inventory/get-image.rb +34 -0
  41. data/lib/amigrind/cli/inventory/list.rb +14 -0
  42. data/lib/amigrind/cli/inventory/remove_from_channel.rb +28 -0
  43. data/lib/amigrind/cli/repo/_category.rb +15 -0
  44. data/lib/amigrind/cli/repo/init.rb +22 -0
  45. data/lib/amigrind/config.rb +89 -0
  46. data/lib/amigrind/environments/channel.rb +9 -0
  47. data/lib/amigrind/environments/environment.rb +66 -0
  48. data/lib/amigrind/environments/rb_evaluator.rb +7 -0
  49. data/lib/amigrind/repo.rb +217 -0
  50. data/lib/amigrind/version.rb +3 -0
  51. data/sample_config/config.yaml +9 -0
  52. data/sample_repo/.amigrind_root +0 -0
  53. data/sample_repo/blueprints/dependent_ubuntu.rb +21 -0
  54. data/sample_repo/blueprints/simple_ubuntu.rb +37 -0
  55. data/sample_repo/environments/development.yaml.example +15 -0
  56. metadata +288 -0
@@ -0,0 +1,37 @@
1
+ description 'an empty Ubuntu build with no provisioners'
2
+
3
+ source :ami do
4
+ family :ubuntu
5
+ version '14.04'
6
+
7
+ ids \
8
+ 'ap-northeast-1': 'ami-7eddd510',
9
+ 'ap-southeast-1': 'ami-4ad81329',
10
+ 'ap-southeast-2': 'ami-5e72523d',
11
+ 'eu-central-1': 'ami-d19e79be',
12
+ 'eu-west-1': 'ami-b0c379c3',
13
+ 'sa-east-1': 'ami-d86ae7b4',
14
+ 'us-east-1': 'ami-c80b0aa2',
15
+ 'us-west-1': 'ami-fb394b9b',
16
+ 'us-west-2': 'ami-21b85141',
17
+ 'cn-north-1': 'ami-3378b15e',
18
+ 'us-gov-west-1': 'ami-d6bbd9f5'
19
+ end
20
+
21
+ build_channel :prerelease
22
+
23
+ aws do
24
+ instance_type 't2.micro'
25
+ ssh_username 'ubuntu'
26
+
27
+ associate_public_ip_address true
28
+ end
29
+
30
+ provisioner :drop_time, RemoteShell do
31
+ run_as_root!
32
+
33
+ command <<-CMD
34
+ echo "`date`" > /BUILD_TIME
35
+ echo "built by Amigrind v#{Amigrind::VERSION}" > /AMIGRIND
36
+ CMD
37
+ end
@@ -0,0 +1,15 @@
1
+ amigrind:
2
+ channels:
3
+ prerelease: {}
4
+ live: {}
5
+
6
+ aws:
7
+ region: us-west-2
8
+ copy_regions: []
9
+ vpc: vpc-AABBCCDD
10
+ subnets:
11
+ - subnet-AABBCCDD
12
+ ssh_keypair_name: ~
13
+
14
+ properties:
15
+ a: 5
metadata ADDED
@@ -0,0 +1,288 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: amigrind
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Ed Ropple
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: cri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.7.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.7.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: os
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.9.6
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.9.6
83
+ - !ruby/object:Gem::Dependency
84
+ name: racker
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.2.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: virtus
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.5
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.0.5
111
+ - !ruby/object:Gem::Dependency
112
+ name: activesupport
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 4.2.6
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 4.2.6
125
+ - !ruby/object:Gem::Dependency
126
+ name: activemodel
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 4.2.6
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 4.2.6
139
+ - !ruby/object:Gem::Dependency
140
+ name: erubis
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 2.7.0
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 2.7.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: ptools
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.3'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 1.3.3
163
+ type: :runtime
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '1.3'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 1.3.3
173
+ - !ruby/object:Gem::Dependency
174
+ name: settingslogic
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: 2.0.9
180
+ type: :runtime
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: 2.0.9
187
+ - !ruby/object:Gem::Dependency
188
+ name: amigrind-core
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: 0.1.0
194
+ type: :runtime
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: 0.1.0
201
+ description:
202
+ email:
203
+ - ed@edropple.com
204
+ executables:
205
+ - amigrind
206
+ extensions: []
207
+ extra_rdoc_files: []
208
+ files:
209
+ - ".gitignore"
210
+ - ".rspec"
211
+ - ".rubocop.yml"
212
+ - ".travis.yml"
213
+ - CODE_OF_CONDUCT.md
214
+ - Gemfile
215
+ - LICENSE.txt
216
+ - README.md
217
+ - Rakefile
218
+ - amigrind.gemspec
219
+ - bin/amigrind
220
+ - lib/amigrind.rb
221
+ - lib/amigrind/blueprints/aws_config.rb
222
+ - lib/amigrind/blueprints/base_ami_source.rb
223
+ - lib/amigrind/blueprints/blueprint.rb
224
+ - lib/amigrind/blueprints/evaluator.rb
225
+ - lib/amigrind/blueprints/parent_blueprint_source.rb
226
+ - lib/amigrind/blueprints/provisioner.rb
227
+ - lib/amigrind/blueprints/provisioners/file_upload.rb
228
+ - lib/amigrind/blueprints/provisioners/local_shell.rb
229
+ - lib/amigrind/blueprints/provisioners/remote_shell.rb
230
+ - lib/amigrind/build/packer_runner.rb
231
+ - lib/amigrind/build/rackerizer.rb
232
+ - lib/amigrind/builder.rb
233
+ - lib/amigrind/cli.rb
234
+ - lib/amigrind/cli/_helpers.rb
235
+ - lib/amigrind/cli/_root.rb
236
+ - lib/amigrind/cli/blueprints/_category.rb
237
+ - lib/amigrind/cli/blueprints/list.rb
238
+ - lib/amigrind/cli/blueprints/show.rb
239
+ - lib/amigrind/cli/build/_category.rb
240
+ - lib/amigrind/cli/build/execute.rb
241
+ - lib/amigrind/cli/build/print_packer.rb
242
+ - lib/amigrind/cli/environments/_category.rb
243
+ - lib/amigrind/cli/environments/list.rb
244
+ - lib/amigrind/cli/environments/show.rb
245
+ - lib/amigrind/cli/inventory/_category.rb
246
+ - lib/amigrind/cli/inventory/add_to_channel.rb
247
+ - lib/amigrind/cli/inventory/get-image.rb
248
+ - lib/amigrind/cli/inventory/list.rb
249
+ - lib/amigrind/cli/inventory/remove_from_channel.rb
250
+ - lib/amigrind/cli/repo/_category.rb
251
+ - lib/amigrind/cli/repo/init.rb
252
+ - lib/amigrind/config.rb
253
+ - lib/amigrind/environments/channel.rb
254
+ - lib/amigrind/environments/environment.rb
255
+ - lib/amigrind/environments/rb_evaluator.rb
256
+ - lib/amigrind/repo.rb
257
+ - lib/amigrind/version.rb
258
+ - sample_config/config.yaml
259
+ - sample_repo/.amigrind_root
260
+ - sample_repo/blueprints/dependent_ubuntu.rb
261
+ - sample_repo/blueprints/simple_ubuntu.rb
262
+ - sample_repo/environments/development.yaml.example
263
+ homepage: https://github.com/eropple/amigrind
264
+ licenses:
265
+ - Apache 2.0
266
+ metadata: {}
267
+ post_install_message:
268
+ rdoc_options: []
269
+ require_paths:
270
+ - lib
271
+ required_ruby_version: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - ">="
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
276
+ required_rubygems_version: !ruby/object:Gem::Requirement
277
+ requirements:
278
+ - - ">="
279
+ - !ruby/object:Gem::Version
280
+ version: '0'
281
+ requirements: []
282
+ rubyforge_project:
283
+ rubygems_version: 2.5.1
284
+ signing_key:
285
+ specification_version: 4
286
+ summary: An easy, convention-over-configuration builder for Packer images.
287
+ test_files: []
288
+ has_rdoc: