careacademy-runbook 1.2.0

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 (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: []