stemcell_builder 1.0.8

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 (95) hide show
  1. data/.gitignore +20 -0
  2. data/.rvmrc +1 -0
  3. data/.travis.yml +1 -0
  4. data/Gemfile +14 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +123 -0
  7. data/Rakefile +10 -0
  8. data/assets/box.ovf.erb +81 -0
  9. data/assets/stemcell_mf_schema.yaml +30 -0
  10. data/bin/stemcell_builder +138 -0
  11. data/lib/stemcell.rb +3 -0
  12. data/lib/stemcell/builder.rb +445 -0
  13. data/lib/stemcell/builders/centos.rb +33 -0
  14. data/lib/stemcell/builders/redhat.rb +34 -0
  15. data/lib/stemcell/builders/ubuntu.rb +36 -0
  16. data/lib/stemcell/const.rb +12 -0
  17. data/lib/stemcell/version.rb +10 -0
  18. data/spec/spec_helper.rb +10 -0
  19. data/spec/stemcell_builder/builder_spec.rb +186 -0
  20. data/spec/stemcell_builder/centos_spec.rb +39 -0
  21. data/spec/stemcell_builder/redhat_spec.rb +53 -0
  22. data/spec/stemcell_builder/ubuntu_spec.rb +38 -0
  23. data/stemcell_builder.gemspec +42 -0
  24. data/templates/centos/_60-bosh-sysctl.conf +5 -0
  25. data/templates/centos/_empty_state.yml +9 -0
  26. data/templates/centos/_monitrc +8 -0
  27. data/templates/centos/_ntpdate +10 -0
  28. data/templates/centos/_runonce +46 -0
  29. data/templates/centos/_sysstat +18 -0
  30. data/templates/centos/_variables.sh.erb +31 -0
  31. data/templates/centos/base.sh +23 -0
  32. data/templates/centos/bosh_agent.sh +39 -0
  33. data/templates/centos/cleanup.sh +28 -0
  34. data/templates/centos/definition.rb.erb +37 -0
  35. data/templates/centos/harden.sh +8 -0
  36. data/templates/centos/ks.cfg +43 -0
  37. data/templates/centos/micro.sh +57 -0
  38. data/templates/centos/monit.sh +21 -0
  39. data/templates/centos/postinstall.sh +27 -0
  40. data/templates/centos/ruby.sh +42 -0
  41. data/templates/centos/setup-bosh.sh +20 -0
  42. data/templates/centos/sudo.sh +13 -0
  43. data/templates/centos/timestamp.sh +15 -0
  44. data/templates/centos/vmware-tools.sh +17 -0
  45. data/templates/centos/zerodisk.sh +9 -0
  46. data/templates/noop/erbtest.txt.erb +1 -0
  47. data/templates/noop/test.txt +1 -0
  48. data/templates/redhat/_60-bosh-sysctl.conf +5 -0
  49. data/templates/redhat/_empty_state.yml +9 -0
  50. data/templates/redhat/_monitrc +8 -0
  51. data/templates/redhat/_ntpdate +10 -0
  52. data/templates/redhat/_runonce +46 -0
  53. data/templates/redhat/_sysstat +18 -0
  54. data/templates/redhat/_variables.sh.erb +31 -0
  55. data/templates/redhat/base.sh +41 -0
  56. data/templates/redhat/bosh_agent.sh +37 -0
  57. data/templates/redhat/cleanup.sh +30 -0
  58. data/templates/redhat/definition.rb.erb +38 -0
  59. data/templates/redhat/harden.sh +8 -0
  60. data/templates/redhat/ks.cfg +86 -0
  61. data/templates/redhat/micro.sh +57 -0
  62. data/templates/redhat/monit.sh +21 -0
  63. data/templates/redhat/postinstall.sh +27 -0
  64. data/templates/redhat/rhnreg.sh.erb +15 -0
  65. data/templates/redhat/ruby.sh +42 -0
  66. data/templates/redhat/setup-bosh.sh +20 -0
  67. data/templates/redhat/sudo.sh +13 -0
  68. data/templates/redhat/timestamp.sh +15 -0
  69. data/templates/redhat/vmware-tools.sh +17 -0
  70. data/templates/redhat/zerodisk.sh +9 -0
  71. data/templates/ubuntu/_60-bosh-sysctl.conf +5 -0
  72. data/templates/ubuntu/_empty_state.yml +9 -0
  73. data/templates/ubuntu/_helpers.sh +40 -0
  74. data/templates/ubuntu/_monitrc +8 -0
  75. data/templates/ubuntu/_ntpdate +10 -0
  76. data/templates/ubuntu/_runonce +46 -0
  77. data/templates/ubuntu/_sysstat +18 -0
  78. data/templates/ubuntu/_variables.sh.erb +30 -0
  79. data/templates/ubuntu/apt-upgrade.sh +19 -0
  80. data/templates/ubuntu/base-stemcell.sh +95 -0
  81. data/templates/ubuntu/bosh_agent.sh +39 -0
  82. data/templates/ubuntu/definition.rb.erb +63 -0
  83. data/templates/ubuntu/harden.sh +9 -0
  84. data/templates/ubuntu/micro.sh +57 -0
  85. data/templates/ubuntu/monit.sh +22 -0
  86. data/templates/ubuntu/network-cleanup.sh +17 -0
  87. data/templates/ubuntu/postinstall.sh +45 -0
  88. data/templates/ubuntu/preseed.cfg +87 -0
  89. data/templates/ubuntu/ruby.sh +54 -0
  90. data/templates/ubuntu/setup-bosh.sh +14 -0
  91. data/templates/ubuntu/sudo.sh +14 -0
  92. data/templates/ubuntu/timestamp.sh +13 -0
  93. data/templates/ubuntu/vmware-tools.sh +22 -0
  94. data/templates/ubuntu/zero-disk.sh +10 -0
  95. metadata +375 -0
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+ set -x
3
+
4
+ source _variables.sh
5
+
6
+ ### stage bosh_debs
7
+ apt-get -y -qq --force-yes install scsitools mg htop module-assistant debhelper runit
8
+ # `rescan-scsi-bus` doesn't have the `.sh` suffix on Ubuntu Precise
9
+ pushd /sbin
10
+ if [ ! -f rescan-scsi-bus.sh ]
11
+ then
12
+ ln -s rescan-scsi-bus rescan-scsi-bus.sh
13
+ fi
14
+ popd
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+ set -x
3
+
4
+ cp /etc/sudoers /etc/sudoers.orig
5
+ sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
6
+ sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers
7
+ cp -p /etc/sudoers /etc/sudoers.save
8
+ echo '#includedir /etc/sudoers.d' >> /etc/sudoers
9
+ visudo -c
10
+ if [ $? -ne 0 ]; then
11
+ echo "ERROR: bad sudoers file"
12
+ exit 1
13
+ fi
14
+ rm /etc/sudoers.save
@@ -0,0 +1,13 @@
1
+ #!/bin/bash
2
+ set -x
3
+
4
+ source _variables.sh
5
+
6
+ apt-get -y install ntp
7
+
8
+ # Synchronize time with pool.ntp.org
9
+ ntpdate pool.ntp.org
10
+
11
+ date > /etc/box_build_time
12
+
13
+
@@ -0,0 +1,22 @@
1
+ #!/bin/bash
2
+ set -x
3
+
4
+ source _variables.sh
5
+ ### stage system_open_vm_tools
6
+ ### -> vmware-tools to be fetched from the apt repo <find this repo>
7
+ # open-vm-tools needed to be backported to work with the 2.6.38 kernel
8
+ # https://bugs.launchpad.net/ubuntu/+source/open-vm-tools/+bug/746152
9
+ echo "deb http://packages.vmware.com/tools/esx/5.0/ubuntu natty main" >> /etc/apt/sources.list
10
+ wget -q http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-DSA-KEY.pub -O- | sudo apt-key add -
11
+ wget -q http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub -O- | sudo apt-key add -
12
+
13
+ apt-get update
14
+
15
+ apt-get -y -qq --force-yes install vmware-tools-vmxnet3-modules-source vmware-tools-vmxnet3-common \
16
+ vmware-tools-pvscsi-modules-source vmware-tools-pvscsi-common vmware-tools-vmmemctl-modules-source \
17
+ vmware-tools-vmmemctl-common vmware-tools-vmci-modules-source vmware-tools-vmci-common vmware-tools-esx-nox \
18
+ vmware-tools-foundation debhelper
19
+
20
+ module-assistant prepare
21
+
22
+ for i in vmware-tools-vmxnet3-modules-source vmware-tools-pvscsi-modules-source vmware-tools-vmmemctl-modules-source vmware-tools-vmci-modules-source; do module-assistant build $i; module-assistant install $i; done
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+ set -x
3
+
4
+ apt-get clean
5
+ apt-get autoremove
6
+
7
+ # Zero out the free space to save space in the final image:
8
+ dd if=/dev/zero of=/EMPTY bs=1M
9
+ rm -f /EMPTY
10
+
metadata ADDED
@@ -0,0 +1,375 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stemcell_builder
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.8
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ankur Chauhan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: net-scp
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.4
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.0.4
30
+ - !ruby/object:Gem::Dependency
31
+ name: net-ssh
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.2.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.2.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: thor
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: deep_merge
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: logger-colors
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: kwalify
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: retryable
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: veewee
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - '='
132
+ - !ruby/object:Gem::Version
133
+ version: 0.3.3
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - '='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.3.3
142
+ - !ruby/object:Gem::Dependency
143
+ name: fog
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - '='
148
+ - !ruby/object:Gem::Version
149
+ version: 1.9.0
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - '='
156
+ - !ruby/object:Gem::Version
157
+ version: 1.9.0
158
+ - !ruby/object:Gem::Dependency
159
+ name: vagrant
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 1.0.7
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 1.0.7
174
+ - !ruby/object:Gem::Dependency
175
+ name: thor
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: bundler
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: rspec
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: rubygems-tasks
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ description: Stemcell builder for Bosh
239
+ email:
240
+ - ankur@malloc64.com
241
+ executables:
242
+ - stemcell_builder
243
+ extensions: []
244
+ extra_rdoc_files: []
245
+ files:
246
+ - .gitignore
247
+ - .rvmrc
248
+ - .travis.yml
249
+ - Gemfile
250
+ - Gemfile.lock
251
+ - LICENSE.txt
252
+ - README.md
253
+ - Rakefile
254
+ - assets/box.ovf.erb
255
+ - assets/stemcell_mf_schema.yaml
256
+ - bin/stemcell_builder
257
+ - lib/stemcell.rb
258
+ - lib/stemcell/builder.rb
259
+ - lib/stemcell/builders/centos.rb
260
+ - lib/stemcell/builders/redhat.rb
261
+ - lib/stemcell/builders/ubuntu.rb
262
+ - lib/stemcell/const.rb
263
+ - lib/stemcell/version.rb
264
+ - spec/spec_helper.rb
265
+ - spec/stemcell_builder/builder_spec.rb
266
+ - spec/stemcell_builder/centos_spec.rb
267
+ - spec/stemcell_builder/redhat_spec.rb
268
+ - spec/stemcell_builder/ubuntu_spec.rb
269
+ - stemcell_builder.gemspec
270
+ - templates/centos/_60-bosh-sysctl.conf
271
+ - templates/centos/_empty_state.yml
272
+ - templates/centos/_monitrc
273
+ - templates/centos/_ntpdate
274
+ - templates/centos/_runonce
275
+ - templates/centos/_sysstat
276
+ - templates/centos/_variables.sh.erb
277
+ - templates/centos/base.sh
278
+ - templates/centos/bosh_agent.sh
279
+ - templates/centos/cleanup.sh
280
+ - templates/centos/definition.rb.erb
281
+ - templates/centos/harden.sh
282
+ - templates/centos/ks.cfg
283
+ - templates/centos/micro.sh
284
+ - templates/centos/monit.sh
285
+ - templates/centos/postinstall.sh
286
+ - templates/centos/ruby.sh
287
+ - templates/centos/setup-bosh.sh
288
+ - templates/centos/sudo.sh
289
+ - templates/centos/timestamp.sh
290
+ - templates/centos/vmware-tools.sh
291
+ - templates/centos/zerodisk.sh
292
+ - templates/noop/erbtest.txt.erb
293
+ - templates/noop/test.txt
294
+ - templates/redhat/_60-bosh-sysctl.conf
295
+ - templates/redhat/_empty_state.yml
296
+ - templates/redhat/_monitrc
297
+ - templates/redhat/_ntpdate
298
+ - templates/redhat/_runonce
299
+ - templates/redhat/_sysstat
300
+ - templates/redhat/_variables.sh.erb
301
+ - templates/redhat/base.sh
302
+ - templates/redhat/bosh_agent.sh
303
+ - templates/redhat/cleanup.sh
304
+ - templates/redhat/definition.rb.erb
305
+ - templates/redhat/harden.sh
306
+ - templates/redhat/ks.cfg
307
+ - templates/redhat/micro.sh
308
+ - templates/redhat/monit.sh
309
+ - templates/redhat/postinstall.sh
310
+ - templates/redhat/rhnreg.sh.erb
311
+ - templates/redhat/ruby.sh
312
+ - templates/redhat/setup-bosh.sh
313
+ - templates/redhat/sudo.sh
314
+ - templates/redhat/timestamp.sh
315
+ - templates/redhat/vmware-tools.sh
316
+ - templates/redhat/zerodisk.sh
317
+ - templates/ubuntu/_60-bosh-sysctl.conf
318
+ - templates/ubuntu/_empty_state.yml
319
+ - templates/ubuntu/_helpers.sh
320
+ - templates/ubuntu/_monitrc
321
+ - templates/ubuntu/_ntpdate
322
+ - templates/ubuntu/_runonce
323
+ - templates/ubuntu/_sysstat
324
+ - templates/ubuntu/_variables.sh.erb
325
+ - templates/ubuntu/apt-upgrade.sh
326
+ - templates/ubuntu/base-stemcell.sh
327
+ - templates/ubuntu/bosh_agent.sh
328
+ - templates/ubuntu/definition.rb.erb
329
+ - templates/ubuntu/harden.sh
330
+ - templates/ubuntu/micro.sh
331
+ - templates/ubuntu/monit.sh
332
+ - templates/ubuntu/network-cleanup.sh
333
+ - templates/ubuntu/postinstall.sh
334
+ - templates/ubuntu/preseed.cfg
335
+ - templates/ubuntu/ruby.sh
336
+ - templates/ubuntu/setup-bosh.sh
337
+ - templates/ubuntu/sudo.sh
338
+ - templates/ubuntu/timestamp.sh
339
+ - templates/ubuntu/vmware-tools.sh
340
+ - templates/ubuntu/zero-disk.sh
341
+ homepage: http://www.github.com/ankurcha/stemcell
342
+ licenses:
343
+ - MIT
344
+ post_install_message:
345
+ rdoc_options: []
346
+ require_paths:
347
+ - lib
348
+ required_ruby_version: !ruby/object:Gem::Requirement
349
+ none: false
350
+ requirements:
351
+ - - ! '>='
352
+ - !ruby/object:Gem::Version
353
+ version: '0'
354
+ segments:
355
+ - 0
356
+ hash: 4047763911369454474
357
+ required_rubygems_version: !ruby/object:Gem::Requirement
358
+ none: false
359
+ requirements:
360
+ - - ! '>='
361
+ - !ruby/object:Gem::Version
362
+ version: 1.3.6
363
+ requirements: []
364
+ rubyforge_project: stemcell_builder
365
+ rubygems_version: 1.8.25
366
+ signing_key:
367
+ specification_version: 3
368
+ summary: A commandline utility for creating stemcells for Bosh [ http://www.github.com/cloudfoundry/bosh
369
+ ]
370
+ test_files:
371
+ - spec/spec_helper.rb
372
+ - spec/stemcell_builder/builder_spec.rb
373
+ - spec/stemcell_builder/centos_spec.rb
374
+ - spec/stemcell_builder/redhat_spec.rb
375
+ - spec/stemcell_builder/ubuntu_spec.rb