ansible/test/integration/targets/git/tasks/missing_hostkey_acceptnew.yml
Amin Vakil a7c8093ce4
[2.12] Add accept_newhostkey option to git module (#73819)
* Add integration test for accept_newhostkey option

* Add changelog
2021-04-16 11:10:35 -04:00

78 lines
2.4 KiB
YAML

- name: MISSING-HOSTKEY | check accept_newhostkey support
shell: ssh -o StrictHostKeyChecking=accept-new -V
register: ssh_supports_accept_newhostkey
ignore_errors: true
- block:
- name: MISSING-HOSTKEY | accept_newhostkey when ssh does not support the option
git:
repo: '{{ repo_format2 }}'
dest: '{{ checkout_dir }}'
accept_newhostkey: true
ssh_opts: '-o UserKnownHostsFile={{ output_dir }}/known_hosts'
register: git_result
ignore_errors: true
- assert:
that:
- git_result is failed
- git_result.warnings is search("does not support")
when: ssh_supports_accept_newhostkey.rc != 0
- name: MISSING-HOSTKEY | checkout ssh://git@github.com repo without accept_newhostkey (expected fail)
git:
repo: '{{ repo_format2 }}'
dest: '{{ checkout_dir }}'
ssh_opts: '-o UserKnownHostsFile={{ output_dir }}/known_hosts'
register: git_result
ignore_errors: true
- assert:
that:
- git_result is failed
- block:
- name: MISSING-HOSTKEY | checkout git@github.com repo with accept_newhostkey (expected pass)
git:
repo: '{{ repo_format2 }}'
dest: '{{ checkout_dir }}'
accept_newhostkey: true
key_file: '{{ github_ssh_private_key }}'
ssh_opts: '-o UserKnownHostsFile={{ output_dir }}/known_hosts'
register: git_result
- assert:
that:
- git_result is changed
- name: MISSING-HOSTKEY | clear checkout_dir
file:
state: absent
path: '{{ checkout_dir }}'
- name: MISSING-HOSTKEY | checkout ssh://git@github.com repo with accept_newhostkey (expected pass)
git:
repo: '{{ repo_format3 }}'
dest: '{{ checkout_dir }}'
version: 'master'
accept_newhostkey: false # should already have been accepted
key_file: '{{ github_ssh_private_key }}'
ssh_opts: '-o UserKnownHostsFile={{ output_dir }}/known_hosts'
register: git_result
- assert:
that:
- git_result is changed
- name: MISSING-HOSTEKY | Remove github.com hostkey from known_hosts
lineinfile:
dest: '{{ output_dir }}/known_hosts'
regexp: "github.com"
state: absent
- name: MISSING-HOSTKEY | clear checkout_dir
file:
state: absent
path: '{{ checkout_dir }}'
when: github_ssh_private_key is defined and ssh_supports_accept_newhostkey.rc == 0