opskeleton 0.9.8 → 0.9.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26d32885b62a88bd0bd3fd0efe5488a7354f5c80
4
- data.tar.gz: 55c592d0a60a47ee379c312f7def6321254efed0
3
+ metadata.gz: a4527e12e7195227b3a1e6196be5bcc73fd1bd14
4
+ data.tar.gz: 0b80916fb0d4088c32ec46985781d8caadb29dcf
5
5
  SHA512:
6
- metadata.gz: 01e7c53f0f89763dd0ff559fd62488a3ca6eab03c7b5872d0c86636b89c20ad2fc3cbc093662279481c0ead19432cbd205a5436e9d4eddc24fcf79bf50822f48
7
- data.tar.gz: 19f77f77c16957c07db7d24c033fcce43ca0bb6dafd7594ca5cdef4527200613009d31f876e361e479531b0747e76ff218ae9d8283a10df69a92a3205b8dd666
6
+ metadata.gz: 384af8c4b51c63cca1d3437c1a3004838727ee211b66bbecd58a3d7c4570f6d35422de8b1988a842aa0fdbe732aacd5ef6bc6a8438200a6565b777d22cab5416
7
+ data.tar.gz: f296b30e181976539c91e59f4c86de5c11eaf6347faa97d6199a2dfda8bf18070ba7636c2491da5e9b2e3e9e456b57940cd88f64e1e10abe6c055a75c9f527bc
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  pkg
2
2
  foo-sandbox
3
3
  dist
4
+ puppet.log
data/Gemfile.lock CHANGED
@@ -1,18 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opskeleton (0.9.8)
4
+ opskeleton (0.9.9)
5
5
  aws-sdk (~> 2)
6
6
  bintray_deploy
7
7
  git
8
- git_clone_url
8
+ git_clone_url (~> 1.0)
9
9
  net-scp
10
10
  thor
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- CFPropertyList (2.2.8)
16
15
  activemodel (4.2.3)
17
16
  activesupport (= 4.2.3)
18
17
  builder (~> 3.1)
@@ -22,68 +21,34 @@ GEM
22
21
  minitest (~> 5.1)
23
22
  thread_safe (~> 0.3, >= 0.3.4)
24
23
  tzinfo (~> 1.1)
25
- asciidoctor (1.5.2)
26
- aws-sdk (2.1.8)
27
- aws-sdk-resources (= 2.1.8)
28
- aws-sdk-core (2.1.8)
24
+ asciidoctor (1.5.5)
25
+ aws-sdk (2.7.3)
26
+ aws-sdk-resources (= 2.7.3)
27
+ aws-sdk-core (2.7.3)
28
+ aws-sigv4 (~> 1.0)
29
29
  jmespath (~> 1.0)
30
- aws-sdk-resources (2.1.8)
31
- aws-sdk-core (= 2.1.8)
30
+ aws-sdk-resources (2.7.3)
31
+ aws-sdk-core (= 2.7.3)
32
+ aws-sigv4 (1.0.0)
32
33
  bintray_deploy (0.0.4)
33
34
  configuration
34
35
  rest-client
35
36
  thor
36
- builder (3.2.2)
37
- chef (12.4.1)
38
- chef-config (= 12.4.1)
39
- chef-zero (~> 4.2, >= 4.2.2)
40
- diff-lcs (~> 1.2, >= 1.2.4)
41
- erubis (~> 2.7)
42
- ffi-yajl (~> 2.2)
43
- highline (~> 1.6, >= 1.6.9)
44
- mixlib-authentication (~> 1.3)
45
- mixlib-cli (~> 1.4)
46
- mixlib-log (~> 1.3)
47
- mixlib-shellout (>= 2.0.0.rc.0, < 3.0)
48
- net-ssh (~> 2.6)
49
- net-ssh-multi (~> 1.1)
50
- ohai (~> 8.0)
51
- plist (~> 3.1.0)
52
- pry (~> 0.9)
53
- rspec-core (~> 3.2)
54
- rspec-expectations (~> 3.2)
55
- rspec-mocks (~> 3.2)
56
- rspec_junit_formatter (~> 0.2.0)
57
- serverspec (~> 2.7)
58
- specinfra (~> 2.10)
59
- syslog-logger (~> 1.6)
60
- chef-config (12.4.1)
61
- mixlib-config (~> 2.0)
62
- mixlib-shellout (~> 2.0)
63
- chef-zero (4.2.3)
64
- ffi-yajl (>= 1.1, < 3.0)
65
- hashie (~> 2.0)
66
- mixlib-log (~> 1.3)
67
- rack
68
- uuidtools (~> 2.1)
69
- coderay (1.1.0)
37
+ builder (3.2.3)
38
+ coderay (1.1.1)
70
39
  configuration (1.3.4)
71
- diff-lcs (1.2.5)
72
- domain_name (0.5.24)
40
+ diff-lcs (1.3)
41
+ domain_name (0.5.20161129)
73
42
  unf (>= 0.0.5, < 1.0.0)
74
- erubis (2.7.0)
75
- facter (2.4.4)
76
- CFPropertyList (~> 2.2.6)
77
- faraday (0.9.1)
43
+ facter (2.4.6)
44
+ faraday (0.9.2)
78
45
  multipart-post (>= 1.2, < 3)
79
- ffi (1.9.10)
80
- ffi-yajl (2.2.2)
81
- libyajl2 (~> 1.2)
46
+ ffi (1.9.17)
82
47
  formatador (0.2.5)
83
- git (1.2.9.1)
84
- git_clone_url (0.1.0)
85
- uri-ssh_git
86
- guard (2.12.9)
48
+ git (1.3.0)
49
+ git_clone_url (1.0.1)
50
+ uri-ssh_git (>= 1.0, < 2.0)
51
+ guard (2.13.0)
87
52
  formatador (>= 0.2.4)
88
53
  listen (>= 2.7, <= 4.0)
89
54
  lumberjack (~> 1.0)
@@ -99,7 +64,6 @@ GEM
99
64
  guard-shell (0.7.1)
100
65
  guard (>= 2.0.0)
101
66
  guard-compat (~> 1.0)
102
- hashie (2.1.2)
103
67
  her (0.6.8)
104
68
  activemodel (>= 3.0.0)
105
69
  activesupport (>= 3.0.0)
@@ -107,78 +71,51 @@ GEM
107
71
  multi_json (~> 1.7)
108
72
  hiera (1.3.4)
109
73
  json_pure
110
- highline (1.7.2)
111
- http-cookie (1.0.2)
74
+ http-cookie (1.0.3)
112
75
  domain_name (~> 0.5)
113
76
  i18n (0.7.0)
114
- ipaddress (0.8.0)
115
- jmespath (1.0.2)
116
- multi_json (~> 1.0)
77
+ jmespath (1.3.1)
117
78
  json (1.8.3)
118
- json_pure (1.8.2)
79
+ json_pure (2.0.3)
119
80
  librarian-puppet (2.1.0)
120
81
  librarianp (>= 0.5.1)
121
82
  puppet_forge
122
83
  rsync
123
84
  librarianp (0.6.3)
124
85
  thor (~> 0.15)
125
- libyajl2 (1.2.0)
126
- listen (3.0.3)
127
- rb-fsevent (>= 0.9.3)
128
- rb-inotify (>= 0.9)
129
- lumberjack (1.0.9)
86
+ listen (3.0.8)
87
+ rb-fsevent (~> 0.9, >= 0.9.4)
88
+ rb-inotify (~> 0.9, >= 0.9.7)
89
+ lumberjack (1.0.11)
130
90
  metaclass (0.0.4)
131
91
  method_source (0.8.2)
132
- mime-types (2.6.1)
133
- minitest (5.7.0)
134
- mixlib-authentication (1.3.0)
135
- mixlib-log
136
- mixlib-cli (1.5.0)
137
- mixlib-config (2.2.1)
138
- mixlib-log (1.6.0)
139
- mixlib-shellout (2.1.0)
92
+ mime-types (3.1)
93
+ mime-types-data (~> 3.2015)
94
+ mime-types-data (3.2016.0521)
95
+ minitest (5.10.1)
140
96
  mocha (1.1.0)
141
97
  metaclass (~> 0.0.1)
142
- multi_json (1.11.2)
98
+ multi_json (1.12.1)
143
99
  multipart-post (2.0.0)
144
- nenv (0.2.0)
100
+ nenv (0.3.0)
145
101
  net-scp (1.2.1)
146
102
  net-ssh (>= 2.6.5)
147
- net-ssh (2.9.2)
148
- net-ssh-gateway (1.2.0)
149
- net-ssh (>= 2.6.5)
150
- net-ssh-multi (1.2.1)
151
- net-ssh (>= 2.6.5)
152
- net-ssh-gateway (>= 1.2.0)
153
- net-telnet (0.1.1)
154
- netrc (0.10.3)
155
- notiffany (0.0.6)
103
+ net-ssh (4.0.1)
104
+ netrc (0.11.0)
105
+ notiffany (0.1.1)
156
106
  nenv (~> 0.1)
157
107
  shellany (~> 0.0)
158
- ohai (8.5.0)
159
- ffi (~> 1.9)
160
- ffi-yajl (~> 2.2)
161
- ipaddress
162
- mime-types (~> 2.0)
163
- mixlib-cli
164
- mixlib-config (~> 2.0)
165
- mixlib-log
166
- mixlib-shellout (~> 2.0)
167
- rake (~> 10.1)
168
- systemu (~> 2.6.4)
169
- wmi-lite (~> 1.0)
170
- plist (3.1.0)
171
108
  posix-spawn (0.3.11)
172
- pry (0.10.1)
109
+ pry (0.10.4)
173
110
  coderay (~> 1.1.0)
174
111
  method_source (~> 0.8.1)
175
112
  slop (~> 3.4)
176
- puppet (3.7.5)
113
+ puppet (3.8.7)
177
114
  facter (> 1.6, < 3)
178
115
  hiera (~> 1.0)
179
116
  json_pure
180
- puppet-lint (1.1.0)
181
- puppet-syntax (2.0.0)
117
+ puppet-lint (2.1.0)
118
+ puppet-syntax (2.2.0)
182
119
  rake
183
120
  puppet_forge (1.0.5)
184
121
  her (~> 0.6.8)
@@ -191,62 +128,40 @@ GEM
191
128
  pygments.rb (0.6.3)
192
129
  posix-spawn (~> 0.3.6)
193
130
  yajl-ruby (~> 1.2.0)
194
- rack (1.6.4)
195
- rake (10.4.2)
196
- rb-fsevent (0.9.5)
197
- rb-inotify (0.9.5)
131
+ rake (12.0.0)
132
+ rb-fsevent (0.9.8)
133
+ rb-inotify (0.9.8)
198
134
  ffi (>= 0.5.0)
199
- rest-client (1.8.0)
135
+ rest-client (2.0.0)
200
136
  http-cookie (>= 1.0.2, < 2.0)
201
- mime-types (>= 1.16, < 3.0)
202
- netrc (~> 0.7)
203
- rspec (3.3.0)
204
- rspec-core (~> 3.3.0)
205
- rspec-expectations (~> 3.3.0)
206
- rspec-mocks (~> 3.3.0)
207
- rspec-core (3.3.2)
208
- rspec-support (~> 3.3.0)
209
- rspec-expectations (3.3.1)
137
+ mime-types (>= 1.16, < 4.0)
138
+ netrc (~> 0.8)
139
+ rspec (3.5.0)
140
+ rspec-core (~> 3.5.0)
141
+ rspec-expectations (~> 3.5.0)
142
+ rspec-mocks (~> 3.5.0)
143
+ rspec-core (3.5.4)
144
+ rspec-support (~> 3.5.0)
145
+ rspec-expectations (3.5.0)
210
146
  diff-lcs (>= 1.2.0, < 2.0)
211
- rspec-support (~> 3.3.0)
212
- rspec-its (1.2.0)
213
- rspec-core (>= 3.0.0)
214
- rspec-expectations (>= 3.0.0)
215
- rspec-mocks (3.3.2)
147
+ rspec-support (~> 3.5.0)
148
+ rspec-mocks (3.5.0)
216
149
  diff-lcs (>= 1.2.0, < 2.0)
217
- rspec-support (~> 3.3.0)
218
- rspec-puppet (2.2.0)
150
+ rspec-support (~> 3.5.0)
151
+ rspec-puppet (2.5.0)
219
152
  rspec
220
- rspec-support (3.3.0)
221
- rspec_junit_formatter (0.2.3)
222
- builder (< 4)
223
- rspec-core (>= 2, < 4, != 2.12.0)
153
+ rspec-support (3.5.0)
224
154
  rsync (1.0.9)
225
- serverspec (2.20.0)
226
- multi_json
227
- rspec (~> 3.0)
228
- rspec-its
229
- specinfra (~> 2.38)
230
- sfl (2.2)
231
155
  shellany (0.0.1)
232
156
  slop (3.6.0)
233
- specinfra (2.38.1)
234
- net-scp
235
- net-ssh (~> 2.7)
236
- net-telnet
237
- sfl
238
- syslog-logger (1.6.8)
239
- systemu (2.6.5)
240
- thor (0.19.1)
157
+ thor (0.19.4)
241
158
  thread_safe (0.3.5)
242
159
  tzinfo (1.2.2)
243
160
  thread_safe (~> 0.1)
244
161
  unf (0.1.4)
245
162
  unf_ext
246
- unf_ext (0.0.7.1)
247
- uri-ssh_git (0.1.1)
248
- uuidtools (2.1.5)
249
- wmi-lite (1.0.0)
163
+ unf_ext (0.0.7.2)
164
+ uri-ssh_git (1.0.0)
250
165
  yajl-ruby (1.2.1)
251
166
 
252
167
  PLATFORMS
@@ -254,14 +169,15 @@ PLATFORMS
254
169
 
255
170
  DEPENDENCIES
256
171
  asciidoctor
257
- chef
258
- guard
172
+ guard (= 2.13.0)
259
173
  guard-minitest
260
174
  guard-shell
261
175
  librarian-puppet (= 2.1.0)
262
176
  opskeleton!
263
- pry
264
- puppet (= 3.7.5)
177
+ puppet (= 3.8.7)
265
178
  puppetlabs_spec_helper (>= 0.1.0)
266
179
  pygments.rb
267
180
  rspec-puppet
181
+
182
+ BUNDLED WITH
183
+ 1.14.3
data/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  Opskelaton is an opinionated bootstrap tool for local Sandbox projects, it aims to solve the following common issues:
6
6
 
7
- * Developing Puppet/Chef modules/cookbooks on master machines which results with 'It works on my master/server' approach.
8
- * Large monolithic Puppet/Chef code bases, code isn't modular or reusable.
9
- * Implicit/Missing dependencies including: Ruby version, OS, gems, modules/cookbooks.
7
+ * Developing Puppet modules on master machines which results with 'It works on my master' approach.
8
+ * Large monolithic Puppet code bases, code isn't modular or reusable.
9
+ * Implicit/Missing dependencies including: Ruby version, OS, gems, modules.
10
10
  * Manual steps in setting up and maintaining such projects.
11
11
  * Non standard layout, projects missing README and LICENSE files, no clear separation between developed and dependant code.
12
12
  * Lacking development guidelines (for example extracting general modules and exporting them).
@@ -0,0 +1,11 @@
1
+ #compdef opsk
2
+ #autoload
3
+
4
+ local lines words
5
+
6
+ words=(${(f)"$(opsk | grep opsk | cut -d " " -f 4)"} )
7
+ lines=(${(f)"$(opsk | grep opsk | cut -d '#' -f 2)"})
8
+
9
+ compadd -l -d lines -a -- words
10
+
11
+ # compadd `opsk | grep opsk | cut -d " " -f 4`
data/bin/opsk CHANGED
@@ -16,11 +16,11 @@ module Opsk
16
16
  class Root < Thor
17
17
 
18
18
  register Opsk::GeneratePuppet, 'generate_puppet', "generate_puppet [name] [box]", 'generates a Puppet based project '
19
- register Opsk::GenerateChef, 'generate_chef', "generate_chef [name] [box]", 'generates a Chef based project '
19
+ register Opsk::Analyze, 'analyze', "profile [file]", 'analyze the output of a puppet run'
20
20
  register Opsk::Module, 'module', 'module [name]', 'generate an rspec ready Puppet module'
21
21
  register Opsk::Package, 'package', 'package', 'packages current module for celestial'
22
- register Opsk::Dockerize, 'dockerize', 'dockerize [from] [os_type]', 'Creates a docker image from the current sandbox'
23
22
  register Opsk::Commit, 'commit', 'commit [message]', 'commit each changed puppet module under modules folder'
23
+ register Opsk::Update, 'update', 'update [module]', 'update a common module across projects'
24
24
  register Opsk::Uncommited, 'uncommited', 'uncommited', 'list uncommited modules changes'
25
25
  register Opsk::Push, 'push', 'push', 'push each changed puppet module under modules folder'
26
26
  register Opsk::Clean, 'clean', 'clean', 'cleans up packaging products'
@@ -38,8 +38,8 @@ end
38
38
 
39
39
  # not sure that this is the cleanest way
40
40
  Opsk::Root.tasks['generate_puppet'].options = Opsk::GeneratePuppet.class_options
41
- Opsk::Root.tasks['generate_chef'].options = Opsk::GenerateChef.class_options
42
41
  Opsk::Root.tasks['push'].options = Opsk::Push.class_options
43
42
  Opsk::Root.tasks['commit'].options = Opsk::Commit.class_options
43
+ Opsk::Root.tasks['analyze'].options = Opsk::Analyze.class_options
44
44
 
45
45
  Opsk::Root.start ARGV
data/docs/doc.adoc CHANGED
@@ -7,8 +7,10 @@ v0.9.2
7
7
  :idprefix:
8
8
  :source-highlighter: pygments
9
9
  :pygments-style: friendly
10
+ :ubuntuversion: 16.04
10
11
  :sectlinks:
11
12
 
13
+
12
14
  == Introduction
13
15
 
14
16
  Opskelaton is an opinionated bootstrap tool for local Sandbox projects, it aims to solve the following common issues:
@@ -31,7 +33,7 @@ Currently Opskeleton supports Puppet and Chef, this guide is segmented to common
31
33
 
32
34
  Perquisites (on Ubuntu):
33
35
 
34
- * Vagrant 1.7.x
36
+ * Vagrant 1.8.x
35
37
  * RVM
36
38
  * Ruby >= 2.1.2
37
39
 
@@ -40,6 +42,26 @@ Perquisites (on Ubuntu):
40
42
  $ sudo gem install opskeleton
41
43
  ```
42
44
 
45
+ === Autocompletion
46
+
47
+ Both zsh and bash are supported just copy the macthing file from the project https://github.com/opskeleton/opskeleton/tree/master/autocomplete[autocomplete] folder.
48
+
49
+ ```bash
50
+ $ opsk help
51
+ Describe available commands or one spe...
52
+ bumps up version (clearing old version...
53
+ cleans up packaging products
54
+ deploy packge into bintray.com
55
+ deploy packge into s3 bucket under pat...
56
+ deploy packge using scp to host
57
+ generate an rspec ready Puppet module
58
+ generates a Chef based project
59
+ generates a Puppet based project
60
+ packages current module for celestial
61
+ print opsk version
62
+
63
+ ```
64
+
43
65
  === Boxes
44
66
 
45
67
  Opskeleton recommends the use of https://github.com/box-cutter[box-cutter] in order to create Vagrant boxes in a consistent manner (as no free hosting solution currently exist):
@@ -47,19 +69,19 @@ Opskeleton recommends the use of https://github.com/box-cutter[box-cutter] in or
47
69
  # make sure to have latest packer
48
70
  $ packer version
49
71
  Packer v0.6.0
50
- $ git clone git@github.com:box-cutter/ubuntu-vm.git
72
+ $ git clone git://github.com/box-cutter/ubuntu-vm.git
51
73
  $ cd ubuntu-vm
52
74
  # Edit Makefile.local
53
75
  $ cat Makefile.local
54
76
  # Makefile.local
55
77
  CM := puppet
56
78
  CM_VERSION := 3.6.1
57
- $ make virtualbox/ubuntu1404
79
+ $ make virtualbox/ubuntu1604
58
80
  ```
59
81
  A useful convention for Box names:
60
82
 
61
83
  ```bash
62
- ubuntu-14.04_puppet-3.6.1 ([os]-[version]_[provisioner]-[version])
84
+ ubuntu-{ubuntuversion}_puppet-3.6.1 ([os]-[version]_[provisioner]-[version])
63
85
  ```
64
86
 
65
87
  == Puppet
@@ -262,22 +284,11 @@ Opskeleton generates a Vagrant file with couple of enhancements:
262
284
  * PUPPET_ENV (default dev) for setting puppet environment.
263
285
  * Puppet options preset to match modules and hiera folders.
264
286
 
265
- === Docker
266
- The only assumption that Opskelaton makes is that the target host will have Pupppet installed, this enables us to create docker images from our sandboxes quite easily:
267
-
268
- ```bash
269
- # creates dockerfiles/<host> and fig.yml
270
- $ opsk dockerize
271
- $ opsk package
272
- # grabs the opsk tar file
273
- $ sudo fig build
274
- ```
275
-
276
287
  === Benchmarking
277
288
  Tracking the speed of our provisioning code is important for keeping a consistent level of service with the produced sandboxes, enabling benchmarking:
278
289
 
279
290
  ```bash
280
- $ opsk generate_puppet redis ubuntu-14.04 --bench-enable
291
+ $ opsk generate_puppet redis ubuntu-16.04 --bench-enable
281
292
  # install imagemagic before bundle install
282
293
  $ sudo apt-get install imagemagick libmagickwand-dev
283
294
  $ rake serverspec:redis
@@ -296,125 +307,6 @@ $ rake plot:hosts plot:per_hosts
296
307
  $ google-chrome plots
297
308
  ```
298
309
 
299
- == Chef
300
-
301
- === Introduction
302
- Opskelaton fully supports Chef based projects it offers similar features to the Puppet based sandboxes with additional support for roles, environments and cookbooks.
303
-
304
- Creating out first sandbox
305
-
306
- ```bash
307
- $ opsk generate_chef redis ubuntu-14.04
308
- $ cd redis-sandbox
309
- ```
310
-
311
- === Structure
312
-
313
- ==== layout
314
- Opskelaton creates the complete folder structure fine tuned to match best practices:
315
-
316
- Folder layout:
317
-
318
- image:https://raw.githubusercontent.com/opskeleton/opskeleton/master/img/chef-layout.png[width='30%',hight='50%']
319
-
320
- ==== lifecycle
321
-
322
- Opskelaton defines a simple cookbook life cycle:
323
-
324
- 1. Internal non reusable cookbooks (usually specific to a client site) go under static-cookbooks
325
- 2. If we create a general reusable cookbook which is ready for prime time we pull out to a new git repository.
326
- 3. The extracted cookbook is added back as a third party (using link:https://github.com/applicationsonline/librarian-chef[librarian-chef]) cookbook under cookbooks folder).
327
-
328
- Life cycle scheme:
329
-
330
- image:https://raw.githubusercontent.com/opskeleton/opskeleton/master/img/chef-cycle.png[width='40%',hight='50%']
331
-
332
- Creating new cookbooks is easy as:
333
-
334
- ```bash
335
- $ opsk cookbook foo
336
- ```
337
-
338
- === Testing
339
-
340
- Opskelaton supports testing/linting:
341
-
342
- * Static cookbook testing that includes rspec and food-critic. (TBD)
343
- * Integration testing using [serverspec](http://serverspec.org/) and Vagrant.
344
-
345
- ```bash
346
- # running serverspec
347
- $ rake spec
348
- ```
349
-
350
- === Packaging
351
- Opskelaton fully supports deployment and portable execution of sandboxes on non Vagrant environments:
352
-
353
- ```bash
354
- $ opsk generate_chef foo ubuntu-14.04.
355
- $ cd foo-sandbox
356
- # The package version file
357
- $ cat opsk.yaml
358
-
359
- ---
360
- version: '0.0.1'
361
- name: redis
362
- includes:
363
- - Cheffile
364
- - cookbooks
365
- - static-cookbooks
366
- - dna.json
367
- - environments
368
- - Gemfile
369
- - Gemfile.lock
370
- - opsk.yaml
371
- - roles
372
- - LICENSE-2.0.txt
373
- - run.sh
374
- - boot.sh
375
- - solo.rb
376
-
377
- # post bundle and gem install ..
378
- $ opsk package
379
- create pkg/foo-sandbox-0.0.1
380
- create pkg/foo-sandbox-0.0.1/scripts
381
- create pkg/foo-sandbox-0.0.1/scripts/lookup.rb
382
- chmod pkg/foo-sandbox-0.0.1/scripts/lookup.rb
383
- create pkg/foo-sandbox-0.0.1/scripts/run.sh
384
- chmod pkg/foo-sandbox-0.0.1/scripts/run.sh
385
- exist pkg
386
- $ ls pkg
387
- foo-sandbox-0.0.1 foo-sandbox-0.0.1.tar.gz
388
- ```
389
- The packaging process creates a portable tar file that can be run on any machine with chef-solo installed via the bundled run.sh:
390
-
391
- ```bash
392
- $ tar -xvzf foo-sandbox-0.0.1.tar.gz
393
- $ cd foo-sandbox-0.0.1
394
- # expects to get the chef environment
395
- $ sudo ./run.sh dev
396
- ```
397
-
398
- === Updating
399
-
400
- Keeping you box up to date with latest opsk version is easy, just re-generate it again and resolve conflicts by answering y/n:
401
- ```bash
402
- # Moving to latest opsk
403
- $ gem update opskeleton
404
- # foo box already exists
405
- $ opsk generate_chef foo <vagrant-box>
406
- exist foo-sandbox
407
- conflict foo-sandbox/Vagrantfile
408
- Overwrite /home/ronen/code/foo-sandbox/Vagrantfile? (enter "h" for help) [Ynaqdh]
409
- ```
410
-
411
- === Vagrant
412
- Opskeleton generates a Vagrant file with couple of enhancements:
413
-
414
- * CHEF_ENV (default dev) for setting chef environment.
415
- * Default role (sandbox name) created under roles/{type}.rb
416
- * static-cookbooks/cookbooks roles/environments folders are set.
417
-
418
310
  == Deployment
419
311
 
420
312
  The packaged tar files can be consumed using any tool and protocol (http, s3 etc), opsk has built in support for deploying public sandboxes into: