puppet-masterless 0.2.2 → 0.2.3

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
  SHA256:
3
- metadata.gz: efe72dcfd1e767ad585ab7877714c2d5ce25560f524a4a754575c5cb484078d1
4
- data.tar.gz: f7db589d57432b964c237e7b9f913e0d7fb3a361eb5064fc47ea5b992b1e9dcc
3
+ metadata.gz: c92e1a6b43a5b98773af8b769d752ec38ab36b6703df0fcb3f5021729b9dbd38
4
+ data.tar.gz: ec90a19bb036bd8166a54cdfba7137370560d313e54748926e92c3408125432f
5
5
  SHA512:
6
- metadata.gz: 0a2985ea7c98b601e58476caaf773974a99e1e346c2fa07e51cd5fa4be0f26957b544af9f85a4a3afc56adf1f08374e4c0876c19bffa04e13ea5c942c7f0b4ae
7
- data.tar.gz: c79f6b79db153787060c2fbdd46dc5913341ccd64c947ddd8bcef4179f7391aae59703944571875a5d7ea8eddddbb53addaa99ccfe305dad92d1abe6f606e7a2
6
+ metadata.gz: 371ad6220621c70420885ea853a6cc541489b31257faee85f38d02cab607d6f748c561b0f920232027dc60fde345346f8fad80c5986a6517f2c6eb16a061b58d
7
+ data.tar.gz: 752186acfd8d467161ed42845036b14d22bf54690e31d9fa48939783025fdbacdf76738a78a8271224c3aa4893b056776df070cb34cfc8e966477daf86bd772d
data/README.md CHANGED
@@ -30,8 +30,8 @@ the man page.
30
30
  install -m 755 src/puppet-masterless /usr/local/bin/puppet-masterless
31
31
  install -m 644 man/puppet-masterless.1 /usr/local/share/man/man1/puppet-masterless.1
32
32
 
33
- You can also bundle the man page with the executable and install just
34
- that one file:
33
+ You can also bundle the man page with the executable and install both as
34
+ a single file:
35
35
 
36
36
  rake build:prepare
37
37
  install -m 755 bin/puppet-masterless /usr/local/bin/puppet-masterless
@@ -61,8 +61,8 @@ about how this directory should be organised.
61
61
  The program accepts arguments according to a very simple command line
62
62
  grammar. To see a summary of the available options and what they
63
63
  control, run `puppet-masterless` without any arguments. For full
64
- documentation, refer to its man page[^2] or help text (accessed via
65
- `puppet-masterless help`).
64
+ documentation, refer to its [man page][manual][^2] or help text
65
+ (accessed via `puppet-masterless help`).
66
66
 
67
67
  [^2]: You can view a Gem's man page by installing the [gem-man][]
68
68
  extension and running `gem man <gem>`.
@@ -111,10 +111,20 @@ path under your project's `confdir`:
111
111
  :yaml:
112
112
  :datadir: "%{settings::confdir}/data"
113
113
 
114
+ ## Resources
115
+
116
+ - [Man page][manual]
117
+ - [Source repository][repo]
118
+ - [Issue tracker][issues]
119
+
120
+ [manual]: https://catalyst-it.gitlab.io/devtools/puppet-masterless/
121
+ [repo]: https://gitlab.com/catalyst-it/devtools/puppet-masterless/
122
+ [issues]: https://gitlab.com/catalyst-it/devtools/puppet-masterless/issues
123
+
114
124
  ## Contributing
115
125
 
116
- 1. Fork it from <https://gitlab.com/catalyst-it/puppet-masterless>
126
+ 1. Fork it from <https://gitlab.com/catalyst-it/devtools/puppet-masterless>
117
127
  2. Create a feature branch (`git checkout -b my-new-feature`)
118
128
  3. Commit your changes (`git commit -am 'Add some feature'`)
119
129
  4. Push to the branch (`git push origin my-new-feature`)
120
- 5. Create a Merge Request at <https://gitlab.com/catalyst-it/puppet-masterless/merge_requests>
130
+ 5. Create a Merge Request at <https://gitlab.com/catalyst-it/devtools/puppet-masterless/merge_requests>
@@ -56,6 +56,7 @@ module PuppetMasterless
56
56
  DEFAULT_SUDO = 'sudo'
57
57
  REMOTE_USER = 'root'
58
58
  REMOTE_WORKDIR = '/tmp'
59
+ VERSION = %{0.2.3}
59
60
 
60
61
  class Main
61
62
  def initialize
@@ -74,6 +75,11 @@ module PuppetMasterless
74
75
  exit(n)
75
76
  end
76
77
 
78
+ def version(n = 0)
79
+ STDERR.puts("puppet-masterless #{VERSION}")
80
+ exit(n)
81
+ end
82
+
77
83
  def collect(args)
78
84
  while word = args.shift
79
85
  case word
@@ -236,6 +242,8 @@ begin
236
242
  main.apply
237
243
  when 'help'
238
244
  main.help
245
+ when 'version', '--version'
246
+ main.version(0)
239
247
  when '-h', '--help', nil
240
248
  main.usage(0)
241
249
  else
@@ -246,7 +254,7 @@ rescue => e
246
254
  exit(1)
247
255
  end
248
256
 
249
- #1 .Dd January 28, 2019
257
+ #1 .Dd October 10, 2019
250
258
  #1 .Dt PUPPET-MASTERLESS 1
251
259
  #1 .Os
252
260
  #1 .Sh NAME
@@ -262,110 +270,134 @@ end
262
270
  #1 .Sh DESCRIPTION
263
271
  #1 The
264
272
  #1 .Nm
265
- #1 .No program packages a Puppet project as a self-contained shell script
266
- #1 .No and optionally executes it on a remote machine via SSH.
273
+ #1 program packages a Puppet project as a self-contained shell script and
274
+ #1 optionally executes it on a remote machine via SSH.
267
275
  #1 .Pp
268
- #1 .No Some simple conventions are used to decide what files to include
269
- #1 .No in the package. For a list of files that will be automatically
270
- #1 .No included, refer to Sx FILES .
276
+ #1 Some simple conventions are used to decide what files to include in the
277
+ #1 package. For a list of files that will be automatically included, refer
278
+ #1 to
279
+ #1 .Sx FILES .
271
280
  #1 .Sh COMMANDS
272
- #1 .Bl -tag -width " "
281
+ #1 .Bl -tag -width Ds
273
282
  #1 .It Cm package
274
- #1 .No Package a project as a self-contained shell script.
283
+ #1 Package a project as a self-contained shell script.
275
284
  #1 .It Cm apply
276
- #1 .No Apply a project to a remote host, or to the local machine if no
277
- #1 .No hostname is specified with the
278
- #1 .Cm to No argument.
285
+ #1 Apply a project to a remote host, or to the local machine if no hostname
286
+ #1 is specified with the
287
+ #1 .Cm to
288
+ #1 argument.
289
+ #1 .El
279
290
  #1 .Sh ARGUMENTS
280
- #1 .Bl -tag -width " "
291
+ #1 .Bl -tag -width Ds
281
292
  #1 .It Cm confdir Aq pathname
282
- #1 .No Set the root directory of the Puppet project. This value is passed to
293
+ #1 Set the root directory of the Puppet project. This value is passed to
283
294
  #1 .Fl -confdir
284
- #1 .No when running
295
+ #1 when running
285
296
  #1 .Xr puppet-apply 8 .
286
297
  #1 .Pp
287
- #1 .No This argument is required.
298
+ #1 This argument is required.
288
299
  #1 .It Cm manifest Aq filename
289
- #1 .No Specify the main Puppet manifest to apply. This may be a file or
290
- #1 .No directory.
300
+ #1 Specify the main Puppet manifest to apply. This may be a file or
301
+ #1 directory.
291
302
  #1 .Pp
292
- #1 .No Defaults to
303
+ #1 Defaults to
293
304
  #1 .Dq Ao confdir Ac Ns /manifests
294
- #1 .No (if that file is present).
305
+ #1 (if that file is present).
295
306
  #1 .It Cm hiera_config Aq filename
296
- #1 .No Specify the Hiera configuration file to use. This value is passed to
307
+ #1 Specify the Hiera configuration file to use. This value is passed to
297
308
  #1 .Fl -hiera_config
298
- #1 .No when running
309
+ #1 when running
299
310
  #1 .Xr puppet-apply 8 .
300
311
  #1 .Pp
301
- #1 .No Defaults to
312
+ #1 Defaults to
302
313
  #1 .Dq Ao confdir Ac Ns /hiera.yaml
303
- #1 .No (if that file is present).
314
+ #1 (if that file is present).
304
315
  #1 .It Cm modulepath Aq pathname
305
- #1 .No Set the Puppet modules directory. This value is passed to
306
- #1 .No Fl -modulepath No when running Xr puppet-apply 8 .
316
+ #1 Set the Puppet modules directory. This value is passed to
317
+ #1 .Fl -modulepath
318
+ #1 when running
319
+ #1 .Xr puppet-apply 8 .
307
320
  #1 .Pp
308
- #1 .No Defaults to
321
+ #1 Defaults to
309
322
  #1 .Dq Ao confdir Ac Ns /modules
310
- #1 .No (if that file is present).
323
+ #1 (if that file is present).
311
324
  #1 .It Cm file Aq filename
312
- #1 .No Add an arbitrary file or directory to the generated package. This
313
- #1 .No can be used to include files in non-standard locations.
325
+ #1 Add an arbitrary file or directory to the generated package. This can be
326
+ #1 used to include files in non-standard locations.
314
327
  #1 .Pp
315
- #1 .No Directories are added recursively, and this option can be repeated
316
- #1 .No to include multiple files.
328
+ #1 Directories are added recursively, and this option can be repeated to
329
+ #1 include multiple files.
317
330
  #1 .It Cm puppet Aq executable
318
- #1 .No Specify the location of the Xr puppet 8 executable on the remote host.
319
- #1 .No This is useful when the puppet binary is installed in a directory
320
- #1 .No that is not on the active user's Ev PATH (for example under
331
+ #1 .Pp
332
+ #1 Specify the location of the
333
+ #1 .Xr puppet 8
334
+ #1 executable on the remote host. This is useful when the puppet binary is
335
+ #1 installed in a directory that is not on the active user's
336
+ #1 .Ev PATH
337
+ #1 (for example under
321
338
  #1 .Pa /opt/puppetlabs/bin Ns ).
322
339
  #1 .Pp
323
- #1 .No Defaults to
340
+ #1 Defaults to
324
341
  #1 .Dq puppet .
325
342
  #1 .It Cm output file Aq filename
326
- #1 .No Set the output filename. If not given, a randomly-generated filename in
327
- #1 .No the current directory is used.
343
+ #1 Set the output filename. If not given, a randomly-generated filename in
344
+ #1 the current directory is used.
328
345
  #1 .Pp
329
- #1 .No Applies only to the Cm package No command.
346
+ #1 Applies only to the
347
+ #1 .Cm package
348
+ #1 command.
330
349
  #1 .It Cm sudo Aq executable
331
- #1 .No Specify the location of the Xr sudo 1 executable on the remote host.
332
- #1 .No This can also be used to specify an alternative command for
333
- #1 .No privilege elevation, for example Xr doas 1 .
350
+ #1 Specify the location of the
351
+ #1 .Xr sudo 1
352
+ #1 executable on the remote host. This can also be used to specify an
353
+ #1 alternative command for privilege elevation, for example
354
+ #1 .Xr doas 1 .
334
355
  #1 .Pp
335
- #1 .No Applies only to the Cm apply No command.
356
+ #1 Applies only to the
357
+ #1 .Cm apply
358
+ #1 command.
336
359
  #1 .Pp
337
- #1 .No Defaults to
360
+ #1 Defaults to
338
361
  #1 .Dq sudo .
339
362
  #1 .It Cm as Aq username
340
- #1 .No Set the name of the user that will run
341
- #1 .Xr puppet-apply 8 on the remote host.
342
- #1 .Xr sudo 1 is used to become this user before execution.
363
+ #1 Set the name of the user that will run
364
+ #1 .Xr puppet-apply 8
365
+ #1 on the remote host.
366
+ #1 .Xr sudo 1
367
+ #1 is used to become this user before execution.
343
368
  #1 .Pp
344
- #1 .No Applies only to the Cm apply No command.
369
+ #1 Applies only to the
370
+ #1 .Cm apply
371
+ #1 command.
345
372
  #1 .Pp
346
- #1 .No Defaults to
373
+ #1 Defaults to
347
374
  #1 .Dq root .
348
375
  #1 .It Cm to Aq hostname
349
- #1 .No Specify the remote host to provision. If not given, the project will
350
- #1 .No be applied directly to the local machine (without packaging or SSH).
376
+ #1 Specify the remote host to provision. If not given, the project will be
377
+ #1 applied directly to the local machine (without packaging or SSH).
351
378
  #1 .Pp
352
- #1 .No Applies only to the Cm apply No command.
353
- #1 .It Cm and , with
354
- #1 .No These words are ignored. They can be used to make an invocation of
355
- #1 .No the program read sensibly (or insensibly, as desired).
379
+ #1 Applies only to the
380
+ #1 .Cm apply
381
+ #1 command.
382
+ #1 .It Cm and, with
383
+ #1 These words are ignored. They can be used to make an invocation of the
384
+ #1 program read sensibly (or insensibly, as desired).
356
385
  #1 .It Cm -- [ Ar argument ... ]
357
- #1 .No Two dashes indicate the end of program arguments. Any remaining
358
- #1 .No arguments are passed to
359
- #1 .Xr puppet-apply 8 verbatim.
360
- #1 .El
386
+ #1 Two dashes indicate the end of program arguments. Any remaining
387
+ #1 arguments are passed to
388
+ #1 .Xr puppet-apply 8
389
+ #1 verbatim.
390
+ #1 .\" empty par for -T html spacing
361
391
  #1 .Pp
362
- #1 .No For more information about the
392
+ #1 \&
393
+ #1 .El
394
+ #1 For more information about the
363
395
  #1 .Cm confdir ,
364
396
  #1 .Cm hiera_config ,
365
397
  #1 .Cm manifest , No and
366
398
  #1 .Cm modulepath No settings, refer to the following Puppet documentation:
367
399
  #1 .Pp
368
- #1 .Bl -dash -compact -width Ns
400
+ #1 .Bl -dash -compact
369
401
  #1 .It
370
402
  #1 .Lk https://puppet.com/docs/puppet/5.5/dirs_confdir.html confdir
371
403
  #1 .It
@@ -376,9 +408,12 @@ end
376
408
  #1 .Lk https://puppet.com/docs/puppet/5.5/dirs_modulepath.html modulepath
377
409
  #1 .El
378
410
  #1 .Sh FILES
379
- #1 .No The following files are automatically included in the package, when
380
- #1 .No present:
381
- #1 .Bl -column " "
411
+ #1 The following files are automatically included in the package, when
412
+ #1 present:
413
+ #1 .\" empty par for -T html spacing
414
+ #1 .Pp
415
+ #1 \&
416
+ #1 .Bl -column " "
382
417
  #1 .It Ao confdir Ac Ns /puppet.conf Ta - Default Puppet configuration file.
383
418
  #1 .It Ao confdir Ac Ns /hiera.yaml Ta - Default hiera configuration file.
384
419
  #1 .It Ao confdir Ac Ns /data Ta - Default hiera data directory.
@@ -386,7 +421,7 @@ end
386
421
  #1 .It Ao confdir Ac Ns /modules Ta - Default module path.
387
422
  #1 .El
388
423
  #1 .Pp
389
- #1 .No Directories are included recursively.
424
+ #1 Directories are included recursively.
390
425
  #1 .Sh EXIT STATUS
391
426
  #1 .Ex -std
392
427
  #1 .Sh EXAMPLES
@@ -397,11 +432,11 @@ end
397
432
  #1 puppet-masterless apply confdir puppet
398
433
  #1 .Ed
399
434
  #1 .Pp
400
- #1 .No Apply the
435
+ #1 Apply the
401
436
  #1 .Pa site.pp
402
- #1 .No manifest from the project in
437
+ #1 manifest from the project in
403
438
  #1 .Pa ./config
404
- #1 .No to host 10.0.8.1 as user
439
+ #1 to host 10.0.8.1 as user
405
440
  #1 .Dq charlize :
406
441
  #1 .Bd -literal -offset indent
407
442
  #1 puppet-masterless apply confdir config \\
@@ -409,48 +444,50 @@ end
409
444
  #1 to 10.0.8.1 as charlize
410
445
  #1 .Ed
411
446
  #1 .Pp
412
- #1 .No Bundle the
447
+ #1 Bundle the
413
448
  #1 .Pa test
414
- #1 .No project as a shell script, including a non-standard Hiera configuration
415
- #1 .No file location and data directory:
449
+ #1 project as a shell script, including a non-standard Hiera configuration
450
+ #1 file location and data directory:
416
451
  #1 .Bd -literal -offset indent
417
452
  #1 puppet-masterless package confdir test \\
418
453
  #1 with file hiera and hiera_config hiera/test.yaml
419
454
  #1 .Ed
455
+ #1 .Pp
420
456
  #1 .Sh CAVEATS
421
- #1 .No For this program to be useful, Puppet must be installed on the remote host.
457
+ #1 For this program to be useful, Puppet must be installed on the remote
458
+ #1 host.
422
459
  #1 .Pp
423
- #1 .No All file paths must be relative to the current working directory. An error
424
- #1 .No is signaled whenever an absolute path is specified.
460
+ #1 All file paths must be relative to the current working directory. An
461
+ #1 error is signaled whenever an absolute path is specified.
425
462
  #1 .Pp
426
- #1 .No This program is only intended to work with Puppet 4.10 and 5.5. \&It
427
- #1 .No may work with other versions of Puppet, or it may not.
463
+ #1 This program is only intended to work with Puppet 4.10 and 5.5. It may
464
+ #1 work with other versions of Puppet, or it may not.
428
465
  #1 .Pp
429
- #1 .No The SSH functionality of this program is intentionally simplistic.
430
- #1 .No If you need more complex behaviour when connecting to remote machines,
431
- #1 .No use the
466
+ #1 The SSH functionality of this program is intentionally simplistic. If
467
+ #1 you need more complex behaviour when connecting to remote machines, use
468
+ #1 the
432
469
  #1 .Cm package
433
- #1 .No command in combination with a tool like
470
+ #1 command in combination with a tool like
434
471
  #1 .Xr ansible 1 ,
435
472
  #1 .Xr cap 1 or
436
473
  #1 .Xr fab 1 .
437
474
  #1 .Pp
438
- #1 .No Very little information is displayed when an error occurs.
475
+ #1 Very little information is displayed when an error occurs.
439
476
  #1 .Sh SECURITY CONSIDERATIONS
440
- #1 .No The
477
+ #1 The
441
478
  #1 .Cm apply
442
- #1 .No command uses
479
+ #1 command uses
443
480
  #1 .Xr sudo 1
444
- #1 .No to assume a given user's identity on the remote host, with all of the
445
- #1 .No security issues that implies.
481
+ #1 to assume a given user's identity on the remote host, with all of the
482
+ #1 security issues that implies.
446
483
  #1 .Pp
447
- #1 .No When applying manifests to a remote machine, any secrets included in the
448
- #1 .No project will be present on the filesystem for as long as it takes to run
484
+ #1 When applying manifests to a remote machine, any secrets included in the
485
+ #1 project will be present on the filesystem for as long as it takes to run
449
486
  #1 .Xr puppet-apply 8 .
450
487
  #1 .Sh IMPLEMENTATION NOTES
451
488
  #1 .Nm
452
- #1 .No is a single Ruby script with no Gem dependencies. \&It should be
453
- #1 .No possible to copy and run it on any machine with Ruby 1.9 or newer.
489
+ #1 is a single Ruby script with no Gem dependencies. It should be possible
490
+ #1 to copy and run on any machine with Ruby 1.9 or newer.
454
491
  #1 .Sh SEE ALSO
455
492
  #1 .Xr puppet 8 ,
456
493
  #1 .Xr puppet-apply 8 ,
@@ -1,4 +1,4 @@
1
- .Dd January 28, 2019
1
+ .Dd October 10, 2019
2
2
  .Dt PUPPET-MASTERLESS 1
3
3
  .Os
4
4
  .Sh NAME
@@ -14,110 +14,134 @@
14
14
  .Sh DESCRIPTION
15
15
  The
16
16
  .Nm
17
- .No program packages a Puppet project as a self-contained shell script
18
- .No and optionally executes it on a remote machine via SSH.
17
+ program packages a Puppet project as a self-contained shell script and
18
+ optionally executes it on a remote machine via SSH.
19
19
  .Pp
20
- .No Some simple conventions are used to decide what files to include
21
- .No in the package. For a list of files that will be automatically
22
- .No included, refer to Sx FILES .
20
+ Some simple conventions are used to decide what files to include in the
21
+ package. For a list of files that will be automatically included, refer
22
+ to
23
+ .Sx FILES .
23
24
  .Sh COMMANDS
24
- .Bl -tag -width " "
25
+ .Bl -tag -width Ds
25
26
  .It Cm package
26
- .No Package a project as a self-contained shell script.
27
+ Package a project as a self-contained shell script.
27
28
  .It Cm apply
28
- .No Apply a project to a remote host, or to the local machine if no
29
- .No hostname is specified with the
30
- .Cm to No argument.
29
+ Apply a project to a remote host, or to the local machine if no hostname
30
+ is specified with the
31
+ .Cm to
32
+ argument.
33
+ .El
31
34
  .Sh ARGUMENTS
32
- .Bl -tag -width " "
35
+ .Bl -tag -width Ds
33
36
  .It Cm confdir Aq pathname
34
- .No Set the root directory of the Puppet project. This value is passed to
37
+ Set the root directory of the Puppet project. This value is passed to
35
38
  .Fl -confdir
36
- .No when running
39
+ when running
37
40
  .Xr puppet-apply 8 .
38
41
  .Pp
39
- .No This argument is required.
42
+ This argument is required.
40
43
  .It Cm manifest Aq filename
41
- .No Specify the main Puppet manifest to apply. This may be a file or
42
- .No directory.
44
+ Specify the main Puppet manifest to apply. This may be a file or
45
+ directory.
43
46
  .Pp
44
- .No Defaults to
47
+ Defaults to
45
48
  .Dq Ao confdir Ac Ns /manifests
46
- .No (if that file is present).
49
+ (if that file is present).
47
50
  .It Cm hiera_config Aq filename
48
- .No Specify the Hiera configuration file to use. This value is passed to
51
+ Specify the Hiera configuration file to use. This value is passed to
49
52
  .Fl -hiera_config
50
- .No when running
53
+ when running
51
54
  .Xr puppet-apply 8 .
52
55
  .Pp
53
- .No Defaults to
56
+ Defaults to
54
57
  .Dq Ao confdir Ac Ns /hiera.yaml
55
- .No (if that file is present).
58
+ (if that file is present).
56
59
  .It Cm modulepath Aq pathname
57
- .No Set the Puppet modules directory. This value is passed to
58
- .No Fl -modulepath No when running Xr puppet-apply 8 .
60
+ Set the Puppet modules directory. This value is passed to
61
+ .Fl -modulepath
62
+ when running
63
+ .Xr puppet-apply 8 .
59
64
  .Pp
60
- .No Defaults to
65
+ Defaults to
61
66
  .Dq Ao confdir Ac Ns /modules
62
- .No (if that file is present).
67
+ (if that file is present).
63
68
  .It Cm file Aq filename
64
- .No Add an arbitrary file or directory to the generated package. This
65
- .No can be used to include files in non-standard locations.
69
+ Add an arbitrary file or directory to the generated package. This can be
70
+ used to include files in non-standard locations.
66
71
  .Pp
67
- .No Directories are added recursively, and this option can be repeated
68
- .No to include multiple files.
72
+ Directories are added recursively, and this option can be repeated to
73
+ include multiple files.
69
74
  .It Cm puppet Aq executable
70
- .No Specify the location of the Xr puppet 8 executable on the remote host.
71
- .No This is useful when the puppet binary is installed in a directory
72
- .No that is not on the active user's Ev PATH (for example under
75
+ .Pp
76
+ Specify the location of the
77
+ .Xr puppet 8
78
+ executable on the remote host. This is useful when the puppet binary is
79
+ installed in a directory that is not on the active user's
80
+ .Ev PATH
81
+ (for example under
73
82
  .Pa /opt/puppetlabs/bin Ns ).
74
83
  .Pp
75
- .No Defaults to
84
+ Defaults to
76
85
  .Dq puppet .
77
86
  .It Cm output file Aq filename
78
- .No Set the output filename. If not given, a randomly-generated filename in
79
- .No the current directory is used.
87
+ Set the output filename. If not given, a randomly-generated filename in
88
+ the current directory is used.
80
89
  .Pp
81
- .No Applies only to the Cm package No command.
90
+ Applies only to the
91
+ .Cm package
92
+ command.
82
93
  .It Cm sudo Aq executable
83
- .No Specify the location of the Xr sudo 1 executable on the remote host.
84
- .No This can also be used to specify an alternative command for
85
- .No privilege elevation, for example Xr doas 1 .
94
+ Specify the location of the
95
+ .Xr sudo 1
96
+ executable on the remote host. This can also be used to specify an
97
+ alternative command for privilege elevation, for example
98
+ .Xr doas 1 .
86
99
  .Pp
87
- .No Applies only to the Cm apply No command.
100
+ Applies only to the
101
+ .Cm apply
102
+ command.
88
103
  .Pp
89
- .No Defaults to
104
+ Defaults to
90
105
  .Dq sudo .
91
106
  .It Cm as Aq username
92
- .No Set the name of the user that will run
93
- .Xr puppet-apply 8 on the remote host.
94
- .Xr sudo 1 is used to become this user before execution.
107
+ Set the name of the user that will run
108
+ .Xr puppet-apply 8
109
+ on the remote host.
110
+ .Xr sudo 1
111
+ is used to become this user before execution.
95
112
  .Pp
96
- .No Applies only to the Cm apply No command.
113
+ Applies only to the
114
+ .Cm apply
115
+ command.
97
116
  .Pp
98
- .No Defaults to
117
+ Defaults to
99
118
  .Dq root .
100
119
  .It Cm to Aq hostname
101
- .No Specify the remote host to provision. If not given, the project will
102
- .No be applied directly to the local machine (without packaging or SSH).
120
+ Specify the remote host to provision. If not given, the project will be
121
+ applied directly to the local machine (without packaging or SSH).
103
122
  .Pp
104
- .No Applies only to the Cm apply No command.
105
- .It Cm and , with
106
- .No These words are ignored. They can be used to make an invocation of
107
- .No the program read sensibly (or insensibly, as desired).
123
+ Applies only to the
124
+ .Cm apply
125
+ command.
126
+ .It Cm and, with
127
+ These words are ignored. They can be used to make an invocation of the
128
+ program read sensibly (or insensibly, as desired).
108
129
  .It Cm -- [ Ar argument ... ]
109
- .No Two dashes indicate the end of program arguments. Any remaining
110
- .No arguments are passed to
111
- .Xr puppet-apply 8 verbatim.
112
- .El
130
+ Two dashes indicate the end of program arguments. Any remaining
131
+ arguments are passed to
132
+ .Xr puppet-apply 8
133
+ verbatim.
134
+ .\" empty par for -T html spacing
113
135
  .Pp
114
- .No For more information about the
136
+ \&
137
+ .El
138
+ For more information about the
115
139
  .Cm confdir ,
116
140
  .Cm hiera_config ,
117
141
  .Cm manifest , No and
118
142
  .Cm modulepath No settings, refer to the following Puppet documentation:
119
143
  .Pp
120
- .Bl -dash -compact -width Ns
144
+ .Bl -dash -compact
121
145
  .It
122
146
  .Lk https://puppet.com/docs/puppet/5.5/dirs_confdir.html confdir
123
147
  .It
@@ -128,9 +152,12 @@ The
128
152
  .Lk https://puppet.com/docs/puppet/5.5/dirs_modulepath.html modulepath
129
153
  .El
130
154
  .Sh FILES
131
- .No The following files are automatically included in the package, when
132
- .No present:
133
- .Bl -column " "
155
+ The following files are automatically included in the package, when
156
+ present:
157
+ .\" empty par for -T html spacing
158
+ .Pp
159
+ \&
160
+ .Bl -column " "
134
161
  .It Ao confdir Ac Ns /puppet.conf Ta - Default Puppet configuration file.
135
162
  .It Ao confdir Ac Ns /hiera.yaml Ta - Default hiera configuration file.
136
163
  .It Ao confdir Ac Ns /data Ta - Default hiera data directory.
@@ -138,7 +165,7 @@ The
138
165
  .It Ao confdir Ac Ns /modules Ta - Default module path.
139
166
  .El
140
167
  .Pp
141
- .No Directories are included recursively.
168
+ Directories are included recursively.
142
169
  .Sh EXIT STATUS
143
170
  .Ex -std
144
171
  .Sh EXAMPLES
@@ -149,11 +176,11 @@ directly to the local machine:
149
176
  puppet-masterless apply confdir puppet
150
177
  .Ed
151
178
  .Pp
152
- .No Apply the
179
+ Apply the
153
180
  .Pa site.pp
154
- .No manifest from the project in
181
+ manifest from the project in
155
182
  .Pa ./config
156
- .No to host 10.0.8.1 as user
183
+ to host 10.0.8.1 as user
157
184
  .Dq charlize :
158
185
  .Bd -literal -offset indent
159
186
  puppet-masterless apply confdir config \\
@@ -161,48 +188,50 @@ puppet-masterless apply confdir config \\
161
188
  to 10.0.8.1 as charlize
162
189
  .Ed
163
190
  .Pp
164
- .No Bundle the
191
+ Bundle the
165
192
  .Pa test
166
- .No project as a shell script, including a non-standard Hiera configuration
167
- .No file location and data directory:
193
+ project as a shell script, including a non-standard Hiera configuration
194
+ file location and data directory:
168
195
  .Bd -literal -offset indent
169
196
  puppet-masterless package confdir test \\
170
197
  with file hiera and hiera_config hiera/test.yaml
171
198
  .Ed
199
+ .Pp
172
200
  .Sh CAVEATS
173
- .No For this program to be useful, Puppet must be installed on the remote host.
201
+ For this program to be useful, Puppet must be installed on the remote
202
+ host.
174
203
  .Pp
175
- .No All file paths must be relative to the current working directory. An error
176
- .No is signaled whenever an absolute path is specified.
204
+ All file paths must be relative to the current working directory. An
205
+ error is signaled whenever an absolute path is specified.
177
206
  .Pp
178
- .No This program is only intended to work with Puppet 4.10 and 5.5. \&It
179
- .No may work with other versions of Puppet, or it may not.
207
+ This program is only intended to work with Puppet 4.10 and 5.5. It may
208
+ work with other versions of Puppet, or it may not.
180
209
  .Pp
181
- .No The SSH functionality of this program is intentionally simplistic.
182
- .No If you need more complex behaviour when connecting to remote machines,
183
- .No use the
210
+ The SSH functionality of this program is intentionally simplistic. If
211
+ you need more complex behaviour when connecting to remote machines, use
212
+ the
184
213
  .Cm package
185
- .No command in combination with a tool like
214
+ command in combination with a tool like
186
215
  .Xr ansible 1 ,
187
216
  .Xr cap 1 or
188
217
  .Xr fab 1 .
189
218
  .Pp
190
- .No Very little information is displayed when an error occurs.
219
+ Very little information is displayed when an error occurs.
191
220
  .Sh SECURITY CONSIDERATIONS
192
- .No The
221
+ The
193
222
  .Cm apply
194
- .No command uses
223
+ command uses
195
224
  .Xr sudo 1
196
- .No to assume a given user's identity on the remote host, with all of the
197
- .No security issues that implies.
225
+ to assume a given user's identity on the remote host, with all of the
226
+ security issues that implies.
198
227
  .Pp
199
- .No When applying manifests to a remote machine, any secrets included in the
200
- .No project will be present on the filesystem for as long as it takes to run
228
+ When applying manifests to a remote machine, any secrets included in the
229
+ project will be present on the filesystem for as long as it takes to run
201
230
  .Xr puppet-apply 8 .
202
231
  .Sh IMPLEMENTATION NOTES
203
232
  .Nm
204
- .No is a single Ruby script with no Gem dependencies. \&It should be
205
- .No possible to copy and run it on any machine with Ruby 1.9 or newer.
233
+ is a single Ruby script with no Gem dependencies. It should be possible
234
+ to copy and run on any machine with Ruby 1.9 or newer.
206
235
  .Sh SEE ALSO
207
236
  .Xr puppet 8 ,
208
237
  .Xr puppet-apply 8 ,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-masterless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Hanson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-14 00:00:00.000000000 Z
11
+ date: 2019-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '12.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
27
41
  description: Packages and applies a Puppet project to a remote host.
28
42
  email: evanh@catalyst.net.nz
29
43
  executables: