Honor custom ssh args in kayobe-ansible-user.yml

Using the raw module will honor ssh args. The slight change behaviour is
that it will print an unreachable message and show an unreachable task
in the summary.

Change-Id: I371e8a583c439264a88dbc4bdae14c472955a063
This commit is contained in:
Will Szumski 2021-04-27 11:32:49 +01:00
parent 3d5d72d53f
commit ffbd1a7833
2 changed files with 17 additions and 9 deletions

View File

@ -13,20 +13,15 @@
- kayobe-ansible-user - kayobe-ansible-user
tasks: tasks:
- name: Check whether the host is accessible via SSH - name: Check whether the host is accessible via SSH
local_action: raw: hostname
module: command ssh -o BatchMode=yes -p {{ ssh_port }} {{ ssh_user }}@{{ ssh_host }} hostname ignore_unreachable: true
failed_when: false
changed_when: false changed_when: false
check_mode: no check_mode: no
register: ssh_result register: ssh_result
vars:
ssh_user: "{{ ansible_user }}"
ssh_host: "{{ ansible_host | default(inventory_hostname) }}"
ssh_port: "{{ ansible_ssh_port | default('22') }}"
- name: Group hosts requiring kayobe user bootstrapping - name: Group hosts requiring kayobe user bootstrapping
group_by: group_by:
key: kayobe_user_bootstrap_required_{{ ssh_result.rc != 0 }} key: kayobe_user_bootstrap_required_{{ ssh_result.unreachable | default(false) }}
changed_when: false changed_when: false
- name: Display a message when bootstrapping is required - name: Display a message when bootstrapping is required
@ -34,7 +29,7 @@
msg: > msg: >
Cannot access host via SSH using Kayobe Ansible user account - Cannot access host via SSH using Kayobe Ansible user account -
attempting bootstrap attempting bootstrap
when: ssh_result.rc != 0 when: ssh_result.unreachable | default(false)
- name: Ensure python is installed - name: Ensure python is installed
hosts: kayobe_user_bootstrap_required_True hosts: kayobe_user_bootstrap_required_True

View File

@ -0,0 +1,13 @@
---
fixes:
- |
When determining whether or not a host needs bootstrapping, we attempt to
connect to the host using ansible_user, if the login fails, we then assume
that the host needs bootstrapping. In previous releases we used a manually
crafted ``ssh`` command. This did respect any customisations to the SSH
arguments made through ansible configuration. We now use the raw module so
that these customisations are used when connecting to the host. One
possible use case is to configure a jump host between the control host and
the target hosts. If bootstrapping was needed, hosts will now show as
unreachable in the summary stats at the end of the run. This can safely be
ignored.