careacademy-runbook 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +17 -0
  3. data/.github/workflows/ruby.yml +43 -0
  4. data/.gitignore +16 -0
  5. data/.rspec +2 -0
  6. data/.ruby-gemset +1 -0
  7. data/.ruby-version +1 -0
  8. data/Appraisals +8 -0
  9. data/CHANGELOG.md +143 -0
  10. data/CODE_OF_CONDUCT.md +74 -0
  11. data/Gemfile +6 -0
  12. data/LICENSE.txt +21 -0
  13. data/README.md +1272 -0
  14. data/Rakefile +12 -0
  15. data/TODO.md +316 -0
  16. data/bin/console +16 -0
  17. data/bin/setup +8 -0
  18. data/dockerfiles/Dockerfile-runbook +18 -0
  19. data/dockerfiles/Dockerfile-sshd +4 -0
  20. data/examples/hooks_runbook.rb +72 -0
  21. data/examples/layout_runbook.rb +26 -0
  22. data/examples/restart_nginx.rb +26 -0
  23. data/examples/simple_runbook.rb +41 -0
  24. data/examples/suppress_capture_output.rb +47 -0
  25. data/exe/runbook +5 -0
  26. data/gemfiles/.bundle/config +2 -0
  27. data/gemfiles/activesupport_5.gemfile +7 -0
  28. data/gemfiles/activesupport_6.gemfile +7 -0
  29. data/images/runbook_anatomy_diagram.png +0 -0
  30. data/images/runbook_example.gif +0 -0
  31. data/images/runbook_execution_modes.png +0 -0
  32. data/lib/hacks/ssh_kit.rb +58 -0
  33. data/lib/runbook/airbrussh_context.rb +25 -0
  34. data/lib/runbook/cli.rb +115 -0
  35. data/lib/runbook/cli_base.rb +38 -0
  36. data/lib/runbook/configuration.rb +120 -0
  37. data/lib/runbook/dsl.rb +21 -0
  38. data/lib/runbook/entities/book.rb +17 -0
  39. data/lib/runbook/entities/section.rb +7 -0
  40. data/lib/runbook/entities/setup.rb +7 -0
  41. data/lib/runbook/entities/step.rb +7 -0
  42. data/lib/runbook/entity.rb +129 -0
  43. data/lib/runbook/errors.rb +7 -0
  44. data/lib/runbook/extensions/add.rb +14 -0
  45. data/lib/runbook/extensions/description.rb +14 -0
  46. data/lib/runbook/extensions/sections.rb +19 -0
  47. data/lib/runbook/extensions/setup.rb +17 -0
  48. data/lib/runbook/extensions/shared_variables.rb +51 -0
  49. data/lib/runbook/extensions/ssh_config.rb +78 -0
  50. data/lib/runbook/extensions/statements.rb +31 -0
  51. data/lib/runbook/extensions/steps.rb +24 -0
  52. data/lib/runbook/extensions/tmux.rb +13 -0
  53. data/lib/runbook/generator.rb +38 -0
  54. data/lib/runbook/generators/base.rb +45 -0
  55. data/lib/runbook/generators/dsl_extension/dsl_extension.rb +29 -0
  56. data/lib/runbook/generators/dsl_extension/templates/dsl_extension.tt +25 -0
  57. data/lib/runbook/generators/generator/generator.rb +43 -0
  58. data/lib/runbook/generators/generator/templates/generator.tt +53 -0
  59. data/lib/runbook/generators/project/project.rb +301 -0
  60. data/lib/runbook/generators/project/templates/Gemfile.tt +6 -0
  61. data/lib/runbook/generators/project/templates/README.md.tt +29 -0
  62. data/lib/runbook/generators/project/templates/Runbookfile.tt +11 -0
  63. data/lib/runbook/generators/project/templates/base_file.rb.tt +8 -0
  64. data/lib/runbook/generators/runbook/runbook.rb +22 -0
  65. data/lib/runbook/generators/runbook/templates/runbook.tt +20 -0
  66. data/lib/runbook/generators/statement/statement.rb +18 -0
  67. data/lib/runbook/generators/statement/templates/statement.tt +34 -0
  68. data/lib/runbook/helpers/format_helper.rb +11 -0
  69. data/lib/runbook/helpers/ssh_kit_helper.rb +143 -0
  70. data/lib/runbook/helpers/tmux_helper.rb +176 -0
  71. data/lib/runbook/hooks.rb +88 -0
  72. data/lib/runbook/initializer.rb +85 -0
  73. data/lib/runbook/node.rb +33 -0
  74. data/lib/runbook/run.rb +290 -0
  75. data/lib/runbook/runner.rb +66 -0
  76. data/lib/runbook/runs/ssh_kit.rb +193 -0
  77. data/lib/runbook/statement.rb +20 -0
  78. data/lib/runbook/statements/ask.rb +12 -0
  79. data/lib/runbook/statements/assert.rb +34 -0
  80. data/lib/runbook/statements/capture.rb +14 -0
  81. data/lib/runbook/statements/capture_all.rb +14 -0
  82. data/lib/runbook/statements/command.rb +11 -0
  83. data/lib/runbook/statements/confirm.rb +10 -0
  84. data/lib/runbook/statements/description.rb +9 -0
  85. data/lib/runbook/statements/download.rb +12 -0
  86. data/lib/runbook/statements/layout.rb +10 -0
  87. data/lib/runbook/statements/note.rb +10 -0
  88. data/lib/runbook/statements/notice.rb +10 -0
  89. data/lib/runbook/statements/ruby_command.rb +9 -0
  90. data/lib/runbook/statements/tmux_command.rb +11 -0
  91. data/lib/runbook/statements/upload.rb +12 -0
  92. data/lib/runbook/statements/wait.rb +10 -0
  93. data/lib/runbook/toolbox.rb +37 -0
  94. data/lib/runbook/util/repo.rb +57 -0
  95. data/lib/runbook/util/runbook.rb +43 -0
  96. data/lib/runbook/util/sticky_hash.rb +26 -0
  97. data/lib/runbook/util/stored_pose.rb +55 -0
  98. data/lib/runbook/version.rb +3 -0
  99. data/lib/runbook/view.rb +24 -0
  100. data/lib/runbook/viewer.rb +24 -0
  101. data/lib/runbook/views/markdown.rb +117 -0
  102. data/lib/runbook.rb +140 -0
  103. data/runbook.gemspec +53 -0
  104. metadata +419 -0
metadata ADDED
@@ -0,0 +1,419 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: careacademy-runbook
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.0
5
+ platform: ruby
6
+ authors:
7
+ - pblesi
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-11-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 5.0.1.x
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 5.0.1.x
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.1'
33
+ - !ruby/object:Gem::Dependency
34
+ name: method_source
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: ruby2_keywords
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.0.4
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.0.4
61
+ - !ruby/object:Gem::Dependency
62
+ name: sshkit
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '='
66
+ - !ruby/object:Gem::Version
67
+ version: 1.21.0
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '='
73
+ - !ruby/object:Gem::Version
74
+ version: 1.21.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: sshkit-sudo
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.1'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.1'
89
+ - !ruby/object:Gem::Dependency
90
+ name: airbrussh
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.4'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.4'
103
+ - !ruby/object:Gem::Dependency
104
+ name: thor
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: tty-progressbar
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.14'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.14'
131
+ - !ruby/object:Gem::Dependency
132
+ name: tty-prompt
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.20'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.20'
145
+ - !ruby/object:Gem::Dependency
146
+ name: appraisal
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '2.2'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '2.2'
159
+ - !ruby/object:Gem::Dependency
160
+ name: aruba
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '0.14'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '0.14'
173
+ - !ruby/object:Gem::Dependency
174
+ name: bundler
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '2.2'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '2.2'
187
+ - !ruby/object:Gem::Dependency
188
+ name: bcrypt_pbkdf
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '1.0'
194
+ - - "<"
195
+ - !ruby/object:Gem::Version
196
+ version: '2.0'
197
+ type: :development
198
+ prerelease: false
199
+ version_requirements: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: '1.0'
204
+ - - "<"
205
+ - !ruby/object:Gem::Version
206
+ version: '2.0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: ed25519
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: '1.2'
214
+ - - "<"
215
+ - !ruby/object:Gem::Version
216
+ version: '2.0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '1.2'
224
+ - - "<"
225
+ - !ruby/object:Gem::Version
226
+ version: '2.0'
227
+ - !ruby/object:Gem::Dependency
228
+ name: pry
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - "~>"
232
+ - !ruby/object:Gem::Version
233
+ version: '0.13'
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - "~>"
239
+ - !ruby/object:Gem::Version
240
+ version: '0.13'
241
+ - !ruby/object:Gem::Dependency
242
+ name: pry-byebug
243
+ requirement: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - "~>"
246
+ - !ruby/object:Gem::Version
247
+ version: '3.6'
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - "~>"
253
+ - !ruby/object:Gem::Version
254
+ version: '3.6'
255
+ - !ruby/object:Gem::Dependency
256
+ name: rake
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - "~>"
260
+ - !ruby/object:Gem::Version
261
+ version: '12.3'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - "~>"
267
+ - !ruby/object:Gem::Version
268
+ version: '12.3'
269
+ - !ruby/object:Gem::Dependency
270
+ name: rspec
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - "~>"
274
+ - !ruby/object:Gem::Version
275
+ version: '3.0'
276
+ type: :development
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - "~>"
281
+ - !ruby/object:Gem::Version
282
+ version: '3.0'
283
+ description: Runbook provides a DSL for specifying system operations. This DSL is
284
+ used to generate formatted runbooks as well as interactive runbooks to be executed
285
+ on the command line.
286
+ email:
287
+ - code@getbraintree.com
288
+ executables:
289
+ - runbook
290
+ extensions: []
291
+ extra_rdoc_files: []
292
+ files:
293
+ - ".dockerignore"
294
+ - ".github/workflows/ruby.yml"
295
+ - ".gitignore"
296
+ - ".rspec"
297
+ - ".ruby-gemset"
298
+ - ".ruby-version"
299
+ - Appraisals
300
+ - CHANGELOG.md
301
+ - CODE_OF_CONDUCT.md
302
+ - Gemfile
303
+ - LICENSE.txt
304
+ - README.md
305
+ - Rakefile
306
+ - TODO.md
307
+ - bin/console
308
+ - bin/setup
309
+ - dockerfiles/Dockerfile-runbook
310
+ - dockerfiles/Dockerfile-sshd
311
+ - examples/hooks_runbook.rb
312
+ - examples/layout_runbook.rb
313
+ - examples/restart_nginx.rb
314
+ - examples/simple_runbook.rb
315
+ - examples/suppress_capture_output.rb
316
+ - exe/runbook
317
+ - gemfiles/.bundle/config
318
+ - gemfiles/activesupport_5.gemfile
319
+ - gemfiles/activesupport_6.gemfile
320
+ - images/runbook_anatomy_diagram.png
321
+ - images/runbook_example.gif
322
+ - images/runbook_execution_modes.png
323
+ - lib/hacks/ssh_kit.rb
324
+ - lib/runbook.rb
325
+ - lib/runbook/airbrussh_context.rb
326
+ - lib/runbook/cli.rb
327
+ - lib/runbook/cli_base.rb
328
+ - lib/runbook/configuration.rb
329
+ - lib/runbook/dsl.rb
330
+ - lib/runbook/entities/book.rb
331
+ - lib/runbook/entities/section.rb
332
+ - lib/runbook/entities/setup.rb
333
+ - lib/runbook/entities/step.rb
334
+ - lib/runbook/entity.rb
335
+ - lib/runbook/errors.rb
336
+ - lib/runbook/extensions/add.rb
337
+ - lib/runbook/extensions/description.rb
338
+ - lib/runbook/extensions/sections.rb
339
+ - lib/runbook/extensions/setup.rb
340
+ - lib/runbook/extensions/shared_variables.rb
341
+ - lib/runbook/extensions/ssh_config.rb
342
+ - lib/runbook/extensions/statements.rb
343
+ - lib/runbook/extensions/steps.rb
344
+ - lib/runbook/extensions/tmux.rb
345
+ - lib/runbook/generator.rb
346
+ - lib/runbook/generators/base.rb
347
+ - lib/runbook/generators/dsl_extension/dsl_extension.rb
348
+ - lib/runbook/generators/dsl_extension/templates/dsl_extension.tt
349
+ - lib/runbook/generators/generator/generator.rb
350
+ - lib/runbook/generators/generator/templates/generator.tt
351
+ - lib/runbook/generators/project/project.rb
352
+ - lib/runbook/generators/project/templates/Gemfile.tt
353
+ - lib/runbook/generators/project/templates/README.md.tt
354
+ - lib/runbook/generators/project/templates/Runbookfile.tt
355
+ - lib/runbook/generators/project/templates/base_file.rb.tt
356
+ - lib/runbook/generators/runbook/runbook.rb
357
+ - lib/runbook/generators/runbook/templates/runbook.tt
358
+ - lib/runbook/generators/statement/statement.rb
359
+ - lib/runbook/generators/statement/templates/statement.tt
360
+ - lib/runbook/helpers/format_helper.rb
361
+ - lib/runbook/helpers/ssh_kit_helper.rb
362
+ - lib/runbook/helpers/tmux_helper.rb
363
+ - lib/runbook/hooks.rb
364
+ - lib/runbook/initializer.rb
365
+ - lib/runbook/node.rb
366
+ - lib/runbook/run.rb
367
+ - lib/runbook/runner.rb
368
+ - lib/runbook/runs/ssh_kit.rb
369
+ - lib/runbook/statement.rb
370
+ - lib/runbook/statements/ask.rb
371
+ - lib/runbook/statements/assert.rb
372
+ - lib/runbook/statements/capture.rb
373
+ - lib/runbook/statements/capture_all.rb
374
+ - lib/runbook/statements/command.rb
375
+ - lib/runbook/statements/confirm.rb
376
+ - lib/runbook/statements/description.rb
377
+ - lib/runbook/statements/download.rb
378
+ - lib/runbook/statements/layout.rb
379
+ - lib/runbook/statements/note.rb
380
+ - lib/runbook/statements/notice.rb
381
+ - lib/runbook/statements/ruby_command.rb
382
+ - lib/runbook/statements/tmux_command.rb
383
+ - lib/runbook/statements/upload.rb
384
+ - lib/runbook/statements/wait.rb
385
+ - lib/runbook/toolbox.rb
386
+ - lib/runbook/util/repo.rb
387
+ - lib/runbook/util/runbook.rb
388
+ - lib/runbook/util/sticky_hash.rb
389
+ - lib/runbook/util/stored_pose.rb
390
+ - lib/runbook/version.rb
391
+ - lib/runbook/view.rb
392
+ - lib/runbook/viewer.rb
393
+ - lib/runbook/views/markdown.rb
394
+ - runbook.gemspec
395
+ homepage: https://github.com/braintree/runbook/
396
+ licenses:
397
+ - MIT
398
+ metadata:
399
+ allowed_push_host: https://rubygems.org/
400
+ post_install_message:
401
+ rdoc_options: []
402
+ require_paths:
403
+ - lib
404
+ required_ruby_version: !ruby/object:Gem::Requirement
405
+ requirements:
406
+ - - ">="
407
+ - !ruby/object:Gem::Version
408
+ version: 2.2.3
409
+ required_rubygems_version: !ruby/object:Gem::Requirement
410
+ requirements:
411
+ - - ">="
412
+ - !ruby/object:Gem::Version
413
+ version: '0'
414
+ requirements: []
415
+ rubygems_version: 3.2.33
416
+ signing_key:
417
+ specification_version: 4
418
+ summary: Write beautiful, executable runbooks for conducting system operations.
419
+ test_files: []