@@ -74,7 +74,10 @@ <h2>Overview</h2>
74
74
75
75
< p > Sshkeys::Manual</ p >
76
76
77
- < p > Manually import a set of ssh keys for a given user</ p >
77
+ < p > Manually import a set of ssh keys for a given user. File can be supplied
78
+ inline as strings or via URIs suitable for the < code > source</ code >
79
+ attribute of the puppet < code > file</ code > resource. It is an error to
80
+ specify both < code > content</ code > and < code > source</ code > </ p >
78
81
79
82
</ div >
80
83
</ div >
@@ -93,6 +96,11 @@ <h2>Overview</h2>
93
96
< em class ="default "> (defaults to: < tt > $title</ tt > )</ em >
94
97
95
98
99
+ —
100
+ < div class ='inline '>
101
+ < p > User to install keys for</ p >
102
+ </ div >
103
+
96
104
</ li >
97
105
98
106
< li >
@@ -106,6 +114,12 @@ <h2>Overview</h2>
106
114
< em class ="default "> (defaults to: < tt > "/home"</ tt > )</ em >
107
115
108
116
117
+ —
118
+ < div class ='inline '>
119
+ < p > Location of home directories. All files will be created inside
120
+ < code > $home/$user</ code > </ p >
121
+ </ div >
122
+
109
123
</ li >
110
124
111
125
< li >
@@ -119,6 +133,11 @@ <h2>Overview</h2>
119
133
< em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
120
134
121
135
136
+ —
137
+ < div class ='inline '>
138
+ < p > Group that will own the installed keys</ p >
139
+ </ div >
140
+
122
141
</ li >
123
142
124
143
< li >
@@ -132,6 +151,30 @@ <h2>Overview</h2>
132
151
< em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
133
152
134
153
154
+ —
155
+ < div class ='inline '>
156
+ < p > Content of the regular < code > id_rsa</ code > (private key) file</ p >
157
+ </ div >
158
+
159
+ </ li >
160
+
161
+ < li >
162
+
163
+ < span class ='name '> id_rsa</ span >
164
+
165
+
166
+ < span class ='type '> </ span >
167
+
168
+
169
+ < em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
170
+
171
+
172
+ —
173
+ < div class ='inline '>
174
+ < p > Source of the regular < code > id_rsa</ code > (private key) file. This can be
175
+ any location understood by the puppet < code > file</ code > resource</ p >
176
+ </ div >
177
+
135
178
</ li >
136
179
137
180
< li >
@@ -145,6 +188,30 @@ <h2>Overview</h2>
145
188
< em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
146
189
147
190
191
+ —
192
+ < div class ='inline '>
193
+ < p > Content of the regular < code > id_rsa.pub</ code > (public key) file</ p >
194
+ </ div >
195
+
196
+ </ li >
197
+
198
+ < li >
199
+
200
+ < span class ='name '> id_rsa_pub_file</ span >
201
+
202
+
203
+ < span class ='type '> (< tt > Any</ tt > )</ span >
204
+
205
+
206
+ < em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
207
+
208
+
209
+ —
210
+ < div class ='inline '>
211
+ < p > Source of the regular < code > id_rsa_pub</ code > (public key) file. This can
212
+ be any location understood by the puppet < code > file</ code > resource</ p >
213
+ </ div >
214
+
148
215
</ li >
149
216
150
217
< li >
@@ -158,6 +225,30 @@ <h2>Overview</h2>
158
225
< em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
159
226
160
227
228
+ —
229
+ < div class ='inline '>
230
+ < p > Content of the regular < code > known_hosts</ code > file</ p >
231
+ </ div >
232
+
233
+ </ li >
234
+
235
+ < li >
236
+
237
+ < span class ='name '> known_hosts_file</ span >
238
+
239
+
240
+ < span class ='type '> (< tt > Any</ tt > )</ span >
241
+
242
+
243
+ < em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
244
+
245
+
246
+ —
247
+ < div class ='inline '>
248
+ < p > Source of the regular < code > known_hosts</ code > file. This can be any
249
+ location understood by the puppet < code > file</ code > resource</ p >
250
+ </ div >
251
+
161
252
</ li >
162
253
163
254
< li >
@@ -171,6 +262,43 @@ <h2>Overview</h2>
171
262
< em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
172
263
173
264
265
+ —
266
+ < div class ='inline '>
267
+ < p > Content of the regular < code > authorized_keys</ code > file</ p >
268
+ </ div >
269
+
270
+ </ li >
271
+
272
+ < li >
273
+
274
+ < span class ='name '> authorized_keys_file</ span >
275
+
276
+
277
+ < span class ='type '> (< tt > Any</ tt > )</ span >
278
+
279
+
280
+ < em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
281
+
282
+
283
+ —
284
+ < div class ='inline '>
285
+ < p > Source of the regular < code > authorized_keys</ code > file. This can be any
286
+ location understood by the puppet < code > file</ code > resource</ p >
287
+ </ div >
288
+
289
+ </ li >
290
+
291
+ < li >
292
+
293
+ < span class ='name '> id_rsa_file</ span >
294
+
295
+
296
+ < span class ='type '> (< tt > Any</ tt > )</ span >
297
+
298
+
299
+ < em class ="default "> (defaults to: < tt > undef</ tt > )</ em >
300
+
301
+
174
302
</ li >
175
303
176
304
</ ul >
@@ -183,25 +311,6 @@ <h2>Overview</h2>
183
311
< pre class ="lines ">
184
312
185
313
186
- 4
187
- 5
188
- 6
189
- 7
190
- 8
191
- 9
192
- 10
193
- 11
194
- 12
195
- 13
196
- 14
197
- 15
198
- 16
199
- 17
200
- 18
201
- 19
202
- 20
203
- 21
204
- 22
205
314
23
206
315
24
207
316
25
@@ -245,19 +354,51 @@ <h2>Overview</h2>
245
354
63
246
355
64
247
356
65
248
- 66</ pre >
357
+ 66
358
+ 67
359
+ 68
360
+ 69
361
+ 70
362
+ 71
363
+ 72
364
+ 73
365
+ 74
366
+ 75
367
+ 76
368
+ 77
369
+ 78
370
+ 79
371
+ 80
372
+ 81
373
+ 82
374
+ 83
375
+ 84
376
+ 85
377
+ 86
378
+ 87
379
+ 88
380
+ 89
381
+ 90
382
+ 91
383
+ 92
384
+ 93
385
+ 94</ pre >
249
386
</ td >
250
387
< td >
251
- < pre class ="code "> < span class ="info file "> # File 'manifests/manual.pp', line 4 </ span >
388
+ < pre class ="code "> < span class ="info file "> # File 'manifests/manual.pp', line 23 </ span >
252
389
253
390
define sshkeys::manual(
254
- $user = $title,
255
- $home = "/home",
256
- $group = undef,
257
- $id_rsa = undef,
258
- $id_rsa_pub = undef,
259
- $known_hosts = undef,
260
- $authorized_keys = undef,
391
+ $user = $title,
392
+ $home = "/home",
393
+ $group = undef,
394
+ $id_rsa = undef,
395
+ $id_rsa_file = undef,
396
+ $id_rsa_pub = undef,
397
+ $id_rsa_pub_file = undef,
398
+ $known_hosts = undef,
399
+ $known_hosts_file = undef,
400
+ $authorized_keys = undef,
401
+ $authorized_keys_file = undef,
261
402
) {
262
403
263
404
if $group {
@@ -266,19 +407,19 @@ <h2>Overview</h2>
266
407
$_group = $user
267
408
}
268
409
269
- $id_rsa_present = $id_rsa ? {
410
+ $id_rsa_present = pick( $id_rsa, $id_rsa_file) ? {
270
411
undef => 'absent',
271
412
default => 'present'
272
413
}
273
- $id_rsa_pub_present = $id_rsa_pub ? {
414
+ $id_rsa_pub_present = pick( $id_rsa_pub, $id_rsa_pub_file) ? {
274
415
undef => 'absent',
275
416
default => 'present'
276
417
}
277
- $known_hosts_present = $known_hosts ? {
418
+ $known_hosts_present = pick( $known_hosts, $known_hosts_file) ? {
278
419
undef => 'absent',
279
420
default => 'present'
280
421
}
281
- $authorized_keys_present = $authorized_keys ? {
422
+ $authorized_keys_present = pick( $authorized_keys, $authorized_keys_file) ? {
282
423
undef => 'absent',
283
424
default => 'present'
284
425
}
@@ -293,24 +434,29 @@ <h2>Overview</h2>
293
434
ensure => directory,
294
435
}
295
436
437
+
296
438
file { "${home}/.ssh/id_rsa":
297
439
ensure => $id_rsa_present,
298
440
content => $id_rsa,
441
+ source => $id_rsa_file,
299
442
}
300
443
301
444
file { "${home}/.ssh/id_rsa.pub":
302
445
ensure => $id_rsa_pub_present,
303
446
content => $id_rsa_pub,
447
+ source => $id_rsa_pub_file,
304
448
}
305
449
306
450
file { "${home}/.ssh/authorized_keys":
307
451
ensure => $authorized_keys_present,
308
452
content => $authorized_keys,
453
+ source => $authorized_keys_file,
309
454
}
310
455
311
456
file { "${home}/.ssh/known_hosts":
312
457
ensure => $known_hosts_present,
313
458
content => $known_hosts,
459
+ source => $known_hosts_file,
314
460
}
315
461
}</ pre >
316
462
</ td >
0 commit comments