|
264 | 264 | - [ '', '.pub' ] |
265 | 265 | when: "item.0 != 'always'" |
266 | 266 |
|
267 | | -- name: "({{ backend }}) Regenerate - adjust key type (check mode)" |
268 | | - openssh_keypair: |
269 | | - path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
270 | | - type: dsa |
271 | | - size: 1024 |
272 | | - regenerate: '{{ item }}' |
273 | | - backend: "{{ backend }}" |
274 | | - check_mode: true |
275 | | - loop: "{{ regenerate_values }}" |
276 | | - ignore_errors: true |
277 | | - register: result |
278 | | -- assert: |
279 | | - that: |
280 | | - - result.results[0] is success and result.results[0] is not changed |
281 | | - - result.results[1] is failed |
282 | | - - "'Key has wrong type and/or size. Will not proceed.' in result.results[1].msg" |
283 | | - - result.results[2] is changed |
284 | | - - result.results[3] is changed |
285 | | - - result.results[4] is changed |
| 267 | +- vars: |
| 268 | + ssh_type: '{{ "dsa" if openssh_supports_dsa else "ecdsa" }}' |
| 269 | + ssh_size: '{{ 1024 if openssh_supports_dsa else omit }}' |
286 | 270 |
|
287 | | -- name: "({{ backend }}) Regenerate - adjust key type" |
288 | | - openssh_keypair: |
289 | | - path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
290 | | - type: dsa |
291 | | - size: 1024 |
292 | | - regenerate: '{{ item }}' |
293 | | - backend: "{{ backend }}" |
294 | | - loop: "{{ regenerate_values }}" |
295 | | - ignore_errors: true |
296 | | - register: result |
297 | | -- assert: |
298 | | - that: |
299 | | - - result.results[0] is success and result.results[0] is not changed |
300 | | - - result.results[1] is failed |
301 | | - - "'Key has wrong type and/or size. Will not proceed.' in result.results[1].msg" |
302 | | - - result.results[2] is changed |
303 | | - - result.results[3] is changed |
304 | | - - result.results[4] is changed |
| 271 | + block: |
| 272 | + - name: "({{ backend }}) Regenerate - adjust key type (check mode)" |
| 273 | + openssh_keypair: |
| 274 | + path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
| 275 | + type: '{{ ssh_type }}' |
| 276 | + size: '{{ ssh_size }}' |
| 277 | + regenerate: '{{ item }}' |
| 278 | + backend: "{{ backend }}" |
| 279 | + check_mode: true |
| 280 | + loop: "{{ regenerate_values }}" |
| 281 | + ignore_errors: true |
| 282 | + register: result |
| 283 | + - assert: |
| 284 | + that: |
| 285 | + - result.results[0] is success and result.results[0] is not changed |
| 286 | + - result.results[1] is failed |
| 287 | + - "'Key has wrong type and/or size. Will not proceed.' in result.results[1].msg" |
| 288 | + - result.results[2] is changed |
| 289 | + - result.results[3] is changed |
| 290 | + - result.results[4] is changed |
305 | 291 |
|
306 | | -- name: "({{ backend }}) Regenerate - redistribute keys" |
307 | | - copy: |
308 | | - src: '{{ remote_tmp_dir }}/regenerate-a-always{{ item.1 }}' |
309 | | - dest: '{{ remote_tmp_dir }}/regenerate-a-{{ item.0 }}{{ item.1 }}' |
310 | | - remote_src: true |
311 | | - with_nested: |
312 | | - - "{{ regenerate_values }}" |
313 | | - - [ '', '.pub' ] |
314 | | - when: "item.0 != 'always'" |
| 292 | + - name: "({{ backend }}) Regenerate - adjust key type" |
| 293 | + openssh_keypair: |
| 294 | + path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
| 295 | + type: '{{ ssh_type }}' |
| 296 | + size: '{{ ssh_size }}' |
| 297 | + regenerate: '{{ item }}' |
| 298 | + backend: "{{ backend }}" |
| 299 | + loop: "{{ regenerate_values }}" |
| 300 | + ignore_errors: true |
| 301 | + register: result |
| 302 | + - assert: |
| 303 | + that: |
| 304 | + - result.results[0] is success and result.results[0] is not changed |
| 305 | + - result.results[1] is failed |
| 306 | + - "'Key has wrong type and/or size. Will not proceed.' in result.results[1].msg" |
| 307 | + - result.results[2] is changed |
| 308 | + - result.results[3] is changed |
| 309 | + - result.results[4] is changed |
315 | 310 |
|
316 | | -- name: "({{ backend }}) Regenerate - adjust comment (check mode)" |
317 | | - openssh_keypair: |
318 | | - path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
319 | | - type: dsa |
320 | | - size: 1024 |
321 | | - comment: test comment |
322 | | - regenerate: '{{ item }}' |
323 | | - backend: "{{ backend }}" |
324 | | - check_mode: true |
325 | | - loop: "{{ regenerate_values }}" |
326 | | - ignore_errors: true |
327 | | - register: result |
328 | | -- assert: |
329 | | - that: |
330 | | - - result is changed |
| 311 | + - name: "({{ backend }}) Regenerate - redistribute keys" |
| 312 | + copy: |
| 313 | + src: '{{ remote_tmp_dir }}/regenerate-a-always{{ item.1 }}' |
| 314 | + dest: '{{ remote_tmp_dir }}/regenerate-a-{{ item.0 }}{{ item.1 }}' |
| 315 | + remote_src: true |
| 316 | + with_nested: |
| 317 | + - "{{ regenerate_values }}" |
| 318 | + - [ '', '.pub' ] |
| 319 | + when: "item.0 != 'always'" |
331 | 320 |
|
332 | | -# Support for updating comments for key types other than rsa1 was added in OpenSSH 7.2 |
333 | | -- when: not (backend == 'opensshbin' and openssh_version is version('7.2', '<')) |
334 | | - block: |
335 | | - - name: "({{ backend }}) Regenerate - adjust comment" |
| 321 | + - name: "({{ backend }}) Regenerate - adjust comment (check mode)" |
336 | 322 | openssh_keypair: |
337 | 323 | path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
338 | | - type: dsa |
339 | | - size: 1024 |
| 324 | + type: '{{ ssh_type }}' |
| 325 | + size: '{{ ssh_size }}' |
340 | 326 | comment: test comment |
341 | 327 | regenerate: '{{ item }}' |
342 | 328 | backend: "{{ backend }}" |
| 329 | + check_mode: true |
343 | 330 | loop: "{{ regenerate_values }}" |
| 331 | + ignore_errors: true |
344 | 332 | register: result |
345 | 333 | - assert: |
346 | 334 | that: |
347 | 335 | - result is changed |
348 | | - # for all values but 'always', the key should not be regenerated. |
349 | | - # verify this by comparing fingerprints: |
350 | | - - result.results[0].fingerprint == result.results[1].fingerprint |
351 | | - - result.results[0].fingerprint == result.results[2].fingerprint |
352 | | - - result.results[0].fingerprint == result.results[3].fingerprint |
353 | | - - result.results[0].fingerprint != result.results[4].fingerprint |
| 336 | + |
| 337 | + # Support for updating comments for key types other than rsa1 was added in OpenSSH 7.2 |
| 338 | + - when: not (backend == 'opensshbin' and openssh_version is version('7.2', '<')) |
| 339 | + block: |
| 340 | + - name: "({{ backend }}) Regenerate - adjust comment" |
| 341 | + openssh_keypair: |
| 342 | + path: '{{ remote_tmp_dir }}/regenerate-a-{{ item }}' |
| 343 | + type: '{{ ssh_type }}' |
| 344 | + size: '{{ ssh_size }}' |
| 345 | + comment: test comment |
| 346 | + regenerate: '{{ item }}' |
| 347 | + backend: "{{ backend }}" |
| 348 | + loop: "{{ regenerate_values }}" |
| 349 | + register: result |
| 350 | + - assert: |
| 351 | + that: |
| 352 | + - result is changed |
| 353 | + # for all values but 'always', the key should not be regenerated. |
| 354 | + # verify this by comparing fingerprints: |
| 355 | + - result.results[0].fingerprint == result.results[1].fingerprint |
| 356 | + - result.results[0].fingerprint == result.results[2].fingerprint |
| 357 | + - result.results[0].fingerprint == result.results[3].fingerprint |
| 358 | + - result.results[0].fingerprint != result.results[4].fingerprint |
0 commit comments