rbcli 0.2.0 → 0.2.1
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 +4 -4
- data/CHANGELOG.md +12 -1
- data/Gemfile.lock +7 -2
- data/README.md +43 -3
- data/bin/console +1 -1
- data/bin/setup +1 -1
- data/docs/404.html +12 -0
- data/docs/advanced/automatic_updates/index.html +12 -0
- data/docs/advanced/command_types/index.html +13 -1
- data/docs/advanced/distributed_state_locking/index.html +14 -2
- data/docs/advanced/hooks/index.html +12 -0
- data/docs/advanced/remote_execution/index.html +822 -0
- data/docs/advanced/state_storage/index.html +12 -0
- data/docs/advanced/user_config_files/index.html +12 -0
- data/docs/development/code_of_conduct/index.html +12 -0
- data/docs/development/contributing/index.html +15 -3
- data/docs/development/license/index.html +12 -0
- data/docs/imported/changelog/index.html +82 -7
- data/docs/imported/quick_reference/index.html +40 -1
- data/docs/index.html +15 -0
- data/docs/search/search_index.json +52 -12
- data/docs/sitemap.xml +23 -18
- data/docs/tutorial/10-getting_started/index.html +12 -0
- data/docs/tutorial/20-project_layout/index.html +12 -0
- data/docs/tutorial/30-your_first_command/index.html +12 -0
- data/docs/tutorial/40-options_parameters_and_arguments/index.html +12 -0
- data/docs/tutorial/50-publishing/index.html +12 -0
- data/docs/whoami/index.html +12 -0
- data/docs-src/docs/advanced/command_types.md +1 -1
- data/docs-src/docs/advanced/remote_execution.md +56 -0
- data/docs-src/docs/development/contributing.md +1 -1
- data/docs-src/docs/imported/changelog.md +12 -1
- data/docs-src/docs/imported/quick_reference.md +23 -1
- data/docs-src/docs/index.md +2 -0
- data/docs-src/mkdocs.yml +1 -0
- data/exe/rbcli +1 -1
- data/lib/rbcli/autoupdate/autoupdate.rb +1 -1
- data/lib/rbcli/autoupdate/gem_updater.rb +1 -1
- data/lib/rbcli/autoupdate/github_updater.rb +1 -1
- data/lib/rbcli/configuration/config.rb +1 -1
- data/lib/rbcli/configuration/configurate.rb +7 -2
- data/lib/rbcli/engine/command.rb +25 -3
- data/lib/rbcli/engine/load_project.rb +1 -1
- data/lib/rbcli/engine/parser.rb +10 -2
- data/lib/rbcli/logging/logging.rb +1 -1
- data/lib/rbcli/remote_exec/remote_exec.rb +187 -0
- data/lib/rbcli/scriptwrapping/scriptwrapper.rb +25 -5
- data/lib/rbcli/stateful_systems/configuratestorage.rb +1 -1
- data/lib/rbcli/stateful_systems/state_storage.rb +1 -1
- data/lib/rbcli/stateful_systems/storagetypes/localstate.rb +1 -1
- data/lib/rbcli/stateful_systems/storagetypes/remote_state_connectors/dynamodb.rb +1 -1
- data/lib/rbcli/stateful_systems/storagetypes/remotestate_dynamodb.rb +1 -1
- data/lib/rbcli/util/hash_deep_symbolize.rb +1 -1
- data/lib/rbcli/util/string_colorize.rb +1 -1
- data/lib/rbcli/version.rb +2 -2
- data/lib/rbcli-tool/generators.rb +1 -1
- data/lib/rbcli-tool/mdless_fix.rb +1 -1
- data/lib/rbcli-tool/project.rb +1 -1
- data/lib/rbcli-tool/util.rb +1 -1
- data/lib/rbcli-tool.rb +1 -1
- data/lib/rbcli.rb +5 -1
- data/lib-sh/lib-rbcli.sh +18 -9
- data/rbcli.gemspec +5 -2
- data/skeletons/project/application/commands/command.erb +1 -1
- data/skeletons/project/application/commands/script.erb +11 -7
- data/skeletons/project/application/options.rb +0 -5
- data/skeletons/project/config/general.rb +17 -0
- metadata +35 -3
@@ -0,0 +1,822 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
<!DOCTYPE html>
|
6
|
+
<html lang="en" class="no-js">
|
7
|
+
<head>
|
8
|
+
|
9
|
+
<meta charset="utf-8">
|
10
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
11
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
12
|
+
|
13
|
+
<meta name="description" content="Description">
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
<meta name="author" content="Andrew Khoury">
|
18
|
+
|
19
|
+
|
20
|
+
<meta name="lang:clipboard.copy" content="Copy to clipboard">
|
21
|
+
|
22
|
+
<meta name="lang:clipboard.copied" content="Copied to clipboard">
|
23
|
+
|
24
|
+
<meta name="lang:search.language" content="en">
|
25
|
+
|
26
|
+
<meta name="lang:search.pipeline.stopwords" content="True">
|
27
|
+
|
28
|
+
<meta name="lang:search.pipeline.trimmer" content="True">
|
29
|
+
|
30
|
+
<meta name="lang:search.result.none" content="No matching documents">
|
31
|
+
|
32
|
+
<meta name="lang:search.result.one" content="1 matching document">
|
33
|
+
|
34
|
+
<meta name="lang:search.result.other" content="# matching documents">
|
35
|
+
|
36
|
+
<meta name="lang:search.tokenizer" content="[\s\-]+">
|
37
|
+
|
38
|
+
<link rel="shortcut icon" href="../../assets/images/favicon.png">
|
39
|
+
<meta name="generator" content="mkdocs-0.17.5, mkdocs-material-2.9.2">
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
<title>Remote Execution - RBCli Documentation</title>
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
<link rel="stylesheet" href="../../assets/stylesheets/application.ba0fd1a6.css">
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
<script src="../../assets/javascripts/modernizr.1aa3b519.js"></script>
|
53
|
+
|
54
|
+
|
55
|
+
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
|
56
|
+
|
57
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
|
58
|
+
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
|
59
|
+
|
60
|
+
|
61
|
+
<link rel="stylesheet" href="../../assets/fonts/material-icons.css">
|
62
|
+
|
63
|
+
|
64
|
+
</head>
|
65
|
+
|
66
|
+
<body dir="ltr">
|
67
|
+
|
68
|
+
<svg class="md-svg">
|
69
|
+
<defs>
|
70
|
+
|
71
|
+
|
72
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
|
73
|
+
viewBox="0 0 416 448" id="__github">
|
74
|
+
<path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
|
75
|
+
8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
|
76
|
+
18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
|
77
|
+
19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
|
78
|
+
18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
|
79
|
+
304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
|
80
|
+
2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
|
81
|
+
38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
|
82
|
+
37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
|
83
|
+
82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
|
84
|
+
1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
|
85
|
+
0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
|
86
|
+
30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
|
87
|
+
46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
|
88
|
+
99.5z" />
|
89
|
+
</svg>
|
90
|
+
|
91
|
+
</defs>
|
92
|
+
</svg>
|
93
|
+
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
94
|
+
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
95
|
+
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
|
96
|
+
|
97
|
+
<a href="#remote-execution" tabindex="1" class="md-skip">
|
98
|
+
Skip to content
|
99
|
+
</a>
|
100
|
+
|
101
|
+
|
102
|
+
<header class="md-header" data-md-component="header">
|
103
|
+
<nav class="md-header-nav md-grid">
|
104
|
+
<div class="md-flex">
|
105
|
+
<div class="md-flex__cell md-flex__cell--shrink">
|
106
|
+
<a href="../.." title="RBCli Documentation" class="md-header-nav__button md-logo">
|
107
|
+
|
108
|
+
<i class="md-icon">devices</i>
|
109
|
+
|
110
|
+
</a>
|
111
|
+
</div>
|
112
|
+
<div class="md-flex__cell md-flex__cell--shrink">
|
113
|
+
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
|
114
|
+
</div>
|
115
|
+
<div class="md-flex__cell md-flex__cell--stretch">
|
116
|
+
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
|
117
|
+
|
118
|
+
|
119
|
+
<span class="md-header-nav__topic">
|
120
|
+
RBCli Documentation
|
121
|
+
</span>
|
122
|
+
<span class="md-header-nav__topic">
|
123
|
+
Remote Execution
|
124
|
+
</span>
|
125
|
+
|
126
|
+
|
127
|
+
</div>
|
128
|
+
</div>
|
129
|
+
<div class="md-flex__cell md-flex__cell--shrink">
|
130
|
+
|
131
|
+
|
132
|
+
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
|
133
|
+
|
134
|
+
<div class="md-search" data-md-component="search" role="dialog">
|
135
|
+
<label class="md-search__overlay" for="__search"></label>
|
136
|
+
<div class="md-search__inner" role="search">
|
137
|
+
<form class="md-search__form" name="search">
|
138
|
+
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
|
139
|
+
<label class="md-icon md-search__icon" for="__search"></label>
|
140
|
+
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
|
141
|
+

|
142
|
+
</button>
|
143
|
+
</form>
|
144
|
+
<div class="md-search__output">
|
145
|
+
<div class="md-search__scrollwrap" data-md-scrollfix>
|
146
|
+
<div class="md-search-result" data-md-component="result">
|
147
|
+
<div class="md-search-result__meta">
|
148
|
+
Type to start searching
|
149
|
+
</div>
|
150
|
+
<ol class="md-search-result__list"></ol>
|
151
|
+
</div>
|
152
|
+
</div>
|
153
|
+
</div>
|
154
|
+
</div>
|
155
|
+
</div>
|
156
|
+
|
157
|
+
|
158
|
+
</div>
|
159
|
+
|
160
|
+
<div class="md-flex__cell md-flex__cell--shrink">
|
161
|
+
<div class="md-header-nav__source">
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
<a href="https://github.com/akhoury6/rbcli/" title="Go to repository" class="md-source" data-md-source="github">
|
169
|
+
|
170
|
+
<div class="md-source__icon">
|
171
|
+
<svg viewBox="0 0 24 24" width="24" height="24">
|
172
|
+
<use xlink:href="#__github" width="24" height="24"></use>
|
173
|
+
</svg>
|
174
|
+
</div>
|
175
|
+
|
176
|
+
<div class="md-source__repository">
|
177
|
+
GitHub
|
178
|
+
</div>
|
179
|
+
</a>
|
180
|
+
|
181
|
+
</div>
|
182
|
+
</div>
|
183
|
+
|
184
|
+
</div>
|
185
|
+
</nav>
|
186
|
+
</header>
|
187
|
+
|
188
|
+
<div class="md-container">
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
<nav class="md-tabs md-tabs--active" data-md-component="tabs">
|
198
|
+
<div class="md-tabs__inner md-grid">
|
199
|
+
<ul class="md-tabs__list">
|
200
|
+
|
201
|
+
|
202
|
+
<li class="md-tabs__item">
|
203
|
+
|
204
|
+
<a href="../.." title="Home" class="md-tabs__link">
|
205
|
+
Home
|
206
|
+
</a>
|
207
|
+
|
208
|
+
</li>
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
<li class="md-tabs__item">
|
217
|
+
|
218
|
+
<a href="../../tutorial/10-getting_started/" title="Tutorial" class="md-tabs__link">
|
219
|
+
Tutorial
|
220
|
+
</a>
|
221
|
+
|
222
|
+
</li>
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
<li class="md-tabs__item">
|
230
|
+
|
231
|
+
<a href="../command_types/" title="Advanced Features" class="md-tabs__link md-tabs__link--active">
|
232
|
+
Advanced Features
|
233
|
+
</a>
|
234
|
+
|
235
|
+
</li>
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
<li class="md-tabs__item">
|
243
|
+
|
244
|
+
<a href="../../development/contributing/" title="Development" class="md-tabs__link">
|
245
|
+
Development
|
246
|
+
</a>
|
247
|
+
|
248
|
+
</li>
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
</ul>
|
255
|
+
</div>
|
256
|
+
</nav>
|
257
|
+
|
258
|
+
<main class="md-main">
|
259
|
+
<div class="md-main__inner md-grid" data-md-component="container">
|
260
|
+
|
261
|
+
|
262
|
+
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
|
263
|
+
<div class="md-sidebar__scrollwrap">
|
264
|
+
<div class="md-sidebar__inner">
|
265
|
+
<nav class="md-nav md-nav--primary" data-md-level="0">
|
266
|
+
<label class="md-nav__title md-nav__title--site" for="__drawer">
|
267
|
+
<span class="md-nav__button md-logo">
|
268
|
+
|
269
|
+
<i class="md-icon">devices</i>
|
270
|
+
|
271
|
+
</span>
|
272
|
+
RBCli Documentation
|
273
|
+
</label>
|
274
|
+
|
275
|
+
<div class="md-nav__source">
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
<a href="https://github.com/akhoury6/rbcli/" title="Go to repository" class="md-source" data-md-source="github">
|
283
|
+
|
284
|
+
<div class="md-source__icon">
|
285
|
+
<svg viewBox="0 0 24 24" width="24" height="24">
|
286
|
+
<use xlink:href="#__github" width="24" height="24"></use>
|
287
|
+
</svg>
|
288
|
+
</div>
|
289
|
+
|
290
|
+
<div class="md-source__repository">
|
291
|
+
GitHub
|
292
|
+
</div>
|
293
|
+
</a>
|
294
|
+
|
295
|
+
</div>
|
296
|
+
|
297
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
<li class="md-nav__item">
|
305
|
+
<a href="../.." title="Home" class="md-nav__link">
|
306
|
+
Home
|
307
|
+
</a>
|
308
|
+
</li>
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
|
316
|
+
<li class="md-nav__item">
|
317
|
+
<a href="../../imported/quick_reference/" title="Quick Reference" class="md-nav__link">
|
318
|
+
Quick Reference
|
319
|
+
</a>
|
320
|
+
</li>
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
<li class="md-nav__item md-nav__item--nested">
|
329
|
+
|
330
|
+
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
|
331
|
+
|
332
|
+
<label class="md-nav__link" for="nav-3">
|
333
|
+
Tutorial
|
334
|
+
</label>
|
335
|
+
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
|
336
|
+
<label class="md-nav__title" for="nav-3">
|
337
|
+
Tutorial
|
338
|
+
</label>
|
339
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
<li class="md-nav__item">
|
348
|
+
<a href="../../tutorial/10-getting_started/" title="Getting Started" class="md-nav__link">
|
349
|
+
Getting Started
|
350
|
+
</a>
|
351
|
+
</li>
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
<li class="md-nav__item">
|
360
|
+
<a href="../../tutorial/20-project_layout/" title="The Project Layout" class="md-nav__link">
|
361
|
+
The Project Layout
|
362
|
+
</a>
|
363
|
+
</li>
|
364
|
+
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
<li class="md-nav__item">
|
372
|
+
<a href="../../tutorial/30-your_first_command/" title="Your First Command" class="md-nav__link">
|
373
|
+
Your First Command
|
374
|
+
</a>
|
375
|
+
</li>
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
<li class="md-nav__item">
|
384
|
+
<a href="../../tutorial/40-options_parameters_and_arguments/" title="Options, Parameters, and Arguments" class="md-nav__link">
|
385
|
+
Options, Parameters, and Arguments
|
386
|
+
</a>
|
387
|
+
</li>
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
<li class="md-nav__item">
|
396
|
+
<a href="../../tutorial/50-publishing/" title="Publishing and Distribution" class="md-nav__link">
|
397
|
+
Publishing and Distribution
|
398
|
+
</a>
|
399
|
+
</li>
|
400
|
+
|
401
|
+
|
402
|
+
</ul>
|
403
|
+
</nav>
|
404
|
+
</li>
|
405
|
+
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
415
|
+
|
416
|
+
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
|
417
|
+
|
418
|
+
<label class="md-nav__link" for="nav-4">
|
419
|
+
Advanced Features
|
420
|
+
</label>
|
421
|
+
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
|
422
|
+
<label class="md-nav__title" for="nav-4">
|
423
|
+
Advanced Features
|
424
|
+
</label>
|
425
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
<li class="md-nav__item">
|
434
|
+
<a href="../command_types/" title="Command Types" class="md-nav__link">
|
435
|
+
Command Types
|
436
|
+
</a>
|
437
|
+
</li>
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
<li class="md-nav__item">
|
446
|
+
<a href="../user_config_files/" title="User Config Files" class="md-nav__link">
|
447
|
+
User Config Files
|
448
|
+
</a>
|
449
|
+
</li>
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
<li class="md-nav__item">
|
458
|
+
<a href="../hooks/" title="Hooks" class="md-nav__link">
|
459
|
+
Hooks
|
460
|
+
</a>
|
461
|
+
</li>
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
|
469
|
+
<li class="md-nav__item">
|
470
|
+
<a href="../automatic_updates/" title="Automatic Updates" class="md-nav__link">
|
471
|
+
Automatic Updates
|
472
|
+
</a>
|
473
|
+
</li>
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
<li class="md-nav__item">
|
482
|
+
<a href="../state_storage/" title="State Storage" class="md-nav__link">
|
483
|
+
State Storage
|
484
|
+
</a>
|
485
|
+
</li>
|
486
|
+
|
487
|
+
|
488
|
+
|
489
|
+
|
490
|
+
|
491
|
+
|
492
|
+
|
493
|
+
<li class="md-nav__item">
|
494
|
+
<a href="../distributed_state_locking/" title="Distributed State Locking" class="md-nav__link">
|
495
|
+
Distributed State Locking
|
496
|
+
</a>
|
497
|
+
</li>
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
<li class="md-nav__item md-nav__item--active">
|
508
|
+
|
509
|
+
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
|
510
|
+
|
511
|
+
|
512
|
+
|
513
|
+
|
514
|
+
<label class="md-nav__link md-nav__link--active" for="__toc">
|
515
|
+
Remote Execution
|
516
|
+
</label>
|
517
|
+
|
518
|
+
<a href="./" title="Remote Execution" class="md-nav__link md-nav__link--active">
|
519
|
+
Remote Execution
|
520
|
+
</a>
|
521
|
+
|
522
|
+
|
523
|
+
<nav class="md-nav md-nav--secondary">
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
<label class="md-nav__title" for="__toc">Table of contents</label>
|
530
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
531
|
+
|
532
|
+
<li class="md-nav__item">
|
533
|
+
<a href="#configuration" title="Configuration" class="md-nav__link">
|
534
|
+
Configuration
|
535
|
+
</a>
|
536
|
+
|
537
|
+
</li>
|
538
|
+
|
539
|
+
<li class="md-nav__item">
|
540
|
+
<a href="#usage" title="Usage" class="md-nav__link">
|
541
|
+
Usage
|
542
|
+
</a>
|
543
|
+
|
544
|
+
</li>
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
|
550
|
+
</ul>
|
551
|
+
|
552
|
+
</nav>
|
553
|
+
|
554
|
+
</li>
|
555
|
+
|
556
|
+
|
557
|
+
</ul>
|
558
|
+
</nav>
|
559
|
+
</li>
|
560
|
+
|
561
|
+
|
562
|
+
|
563
|
+
|
564
|
+
|
565
|
+
|
566
|
+
|
567
|
+
<li class="md-nav__item md-nav__item--nested">
|
568
|
+
|
569
|
+
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
|
570
|
+
|
571
|
+
<label class="md-nav__link" for="nav-5">
|
572
|
+
Development
|
573
|
+
</label>
|
574
|
+
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
|
575
|
+
<label class="md-nav__title" for="nav-5">
|
576
|
+
Development
|
577
|
+
</label>
|
578
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
|
585
|
+
|
586
|
+
<li class="md-nav__item">
|
587
|
+
<a href="../../development/contributing/" title="Contribution Guide" class="md-nav__link">
|
588
|
+
Contribution Guide
|
589
|
+
</a>
|
590
|
+
</li>
|
591
|
+
|
592
|
+
|
593
|
+
|
594
|
+
|
595
|
+
|
596
|
+
|
597
|
+
|
598
|
+
<li class="md-nav__item">
|
599
|
+
<a href="../../development/license/" title="License Info" class="md-nav__link">
|
600
|
+
License Info
|
601
|
+
</a>
|
602
|
+
</li>
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
|
607
|
+
|
608
|
+
|
609
|
+
|
610
|
+
<li class="md-nav__item">
|
611
|
+
<a href="../../development/code_of_conduct/" title="Code of Conduct" class="md-nav__link">
|
612
|
+
Code of Conduct
|
613
|
+
</a>
|
614
|
+
</li>
|
615
|
+
|
616
|
+
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
<li class="md-nav__item">
|
623
|
+
<a href="../../imported/changelog/" title="Changelog" class="md-nav__link">
|
624
|
+
Changelog
|
625
|
+
</a>
|
626
|
+
</li>
|
627
|
+
|
628
|
+
|
629
|
+
</ul>
|
630
|
+
</nav>
|
631
|
+
</li>
|
632
|
+
|
633
|
+
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
|
638
|
+
|
639
|
+
<li class="md-nav__item">
|
640
|
+
<a href="../../whoami/" title="$ whoami" class="md-nav__link">
|
641
|
+
$ whoami
|
642
|
+
</a>
|
643
|
+
</li>
|
644
|
+
|
645
|
+
|
646
|
+
</ul>
|
647
|
+
</nav>
|
648
|
+
</div>
|
649
|
+
</div>
|
650
|
+
</div>
|
651
|
+
|
652
|
+
|
653
|
+
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
|
654
|
+
<div class="md-sidebar__scrollwrap">
|
655
|
+
<div class="md-sidebar__inner">
|
656
|
+
|
657
|
+
<nav class="md-nav md-nav--secondary">
|
658
|
+
|
659
|
+
|
660
|
+
|
661
|
+
|
662
|
+
|
663
|
+
<label class="md-nav__title" for="__toc">Table of contents</label>
|
664
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
665
|
+
|
666
|
+
<li class="md-nav__item">
|
667
|
+
<a href="#configuration" title="Configuration" class="md-nav__link">
|
668
|
+
Configuration
|
669
|
+
</a>
|
670
|
+
|
671
|
+
</li>
|
672
|
+
|
673
|
+
<li class="md-nav__item">
|
674
|
+
<a href="#usage" title="Usage" class="md-nav__link">
|
675
|
+
Usage
|
676
|
+
</a>
|
677
|
+
|
678
|
+
</li>
|
679
|
+
|
680
|
+
|
681
|
+
|
682
|
+
|
683
|
+
|
684
|
+
</ul>
|
685
|
+
|
686
|
+
</nav>
|
687
|
+
</div>
|
688
|
+
</div>
|
689
|
+
</div>
|
690
|
+
|
691
|
+
|
692
|
+
<div class="md-content">
|
693
|
+
<article class="md-content__inner md-typeset">
|
694
|
+
|
695
|
+
|
696
|
+
|
697
|
+
<h1 id="remote-execution">Remote Execution</h1>
|
698
|
+
<p>RBCli can be configured to execute commands on a remote machine via SSH instead of locally.</p>
|
699
|
+
<p>Currently, only <code>script</code> and <code>extern</code> commands are supported.</p>
|
700
|
+
<h2 id="configuration">Configuration</h2>
|
701
|
+
<p>To allow remote execution, go to <code>config/general.rb</code> and change the following line to <code>true</code>:</p>
|
702
|
+
<pre><code class="ruby">remote_execution permitted: false
|
703
|
+
</code></pre>
|
704
|
+
|
705
|
+
<p>Then, for each command that you would like to enable remote execution for, add the following directive to the command class declaration:</p>
|
706
|
+
<pre><code class="ruby">remote_permitted
|
707
|
+
</code></pre>
|
708
|
+
|
709
|
+
<h2 id="usage">Usage</h2>
|
710
|
+
<p>Your end users can now execute a command remotely by specifying the connection string and credentials on the command line as follows:</p>
|
711
|
+
<pre><code class="bash">mytool --remote-exec [user@]host[:port] --identity (/path/to/private/ssh/key or password) <command>
|
712
|
+
# or
|
713
|
+
mytool -r [user@]host[:port] -i (/path/to/private/ssh/key or password) <command>
|
714
|
+
</code></pre>
|
715
|
+
|
716
|
+
<p>Some valid examples are:</p>
|
717
|
+
<pre><code class="bash">mytool -r example.com -i myPassword showuserfiles -u MyUser
|
718
|
+
mytool -r root@server.local -i ~/.ssh/id_rsa update
|
719
|
+
mytool -r admin@172.16.0.1:2202 -i ~/.ssh/mykey cleartemp
|
720
|
+
</code></pre>
|
721
|
+
|
722
|
+
<p>If the end user is unsure of which commands can or can not be executed remotely, they can check by running <code>mytool -h</code>. Commands that have remote execution enabled will have an asterisk (*) by their name:</p>
|
723
|
+
<pre><code class="bash">$ mytool -h
|
724
|
+
A simple command line tool.
|
725
|
+
For more information on individual commands, run `mytool <command> -h`.
|
726
|
+
|
727
|
+
Usage:
|
728
|
+
foo [options] command [parameters]
|
729
|
+
|
730
|
+
Commands:
|
731
|
+
bar TODO: Description goes here
|
732
|
+
* baz TODO: Description goes here
|
733
|
+
|
734
|
+
...
|
735
|
+
</code></pre>
|
736
|
+
|
737
|
+
<p>In this example, the command <code>baz</code> is available for remote execution</p>
|
738
|
+
|
739
|
+
|
740
|
+
|
741
|
+
|
742
|
+
|
743
|
+
|
744
|
+
|
745
|
+
|
746
|
+
|
747
|
+
</article>
|
748
|
+
</div>
|
749
|
+
</div>
|
750
|
+
</main>
|
751
|
+
|
752
|
+
|
753
|
+
<footer class="md-footer">
|
754
|
+
|
755
|
+
<div class="md-footer-nav">
|
756
|
+
<nav class="md-footer-nav__inner md-grid">
|
757
|
+
|
758
|
+
<a href="../distributed_state_locking/" title="Distributed State Locking" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
759
|
+
<div class="md-flex__cell md-flex__cell--shrink">
|
760
|
+
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
|
761
|
+
</div>
|
762
|
+
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
763
|
+
<span class="md-flex__ellipsis">
|
764
|
+
<span class="md-footer-nav__direction">
|
765
|
+
Previous
|
766
|
+
</span>
|
767
|
+
Distributed State Locking
|
768
|
+
</span>
|
769
|
+
</div>
|
770
|
+
</a>
|
771
|
+
|
772
|
+
|
773
|
+
<a href="../../development/contributing/" title="Contribution Guide" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
774
|
+
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
775
|
+
<span class="md-flex__ellipsis">
|
776
|
+
<span class="md-footer-nav__direction">
|
777
|
+
Next
|
778
|
+
</span>
|
779
|
+
Contribution Guide
|
780
|
+
</span>
|
781
|
+
</div>
|
782
|
+
<div class="md-flex__cell md-flex__cell--shrink">
|
783
|
+
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
|
784
|
+
</div>
|
785
|
+
</a>
|
786
|
+
|
787
|
+
</nav>
|
788
|
+
</div>
|
789
|
+
|
790
|
+
<div class="md-footer-meta md-typeset">
|
791
|
+
<div class="md-footer-meta__inner md-grid">
|
792
|
+
<div class="md-footer-copyright">
|
793
|
+
|
794
|
+
<div class="md-footer-copyright__highlight">
|
795
|
+
Copyright © 2018 Andrew Khoury
|
796
|
+
</div>
|
797
|
+
|
798
|
+
powered by
|
799
|
+
<a href="https://www.mkdocs.org">MkDocs</a>
|
800
|
+
and
|
801
|
+
<a href="https://squidfunk.github.io/mkdocs-material/">
|
802
|
+
Material for MkDocs</a>
|
803
|
+
</div>
|
804
|
+
|
805
|
+
|
806
|
+
|
807
|
+
</div>
|
808
|
+
</div>
|
809
|
+
</footer>
|
810
|
+
|
811
|
+
</div>
|
812
|
+
|
813
|
+
<script src="../../assets/javascripts/application.a59e2a89.js"></script>
|
814
|
+
|
815
|
+
<script>app.initialize({version:"0.17.5",url:{base:"../.."}})</script>
|
816
|
+
|
817
|
+
|
818
|
+
|
819
|
+
|
820
|
+
|
821
|
+
</body>
|
822
|
+
</html>
|