### Summary

As previous report, I try to use Ansible through container (Kubernetes - GKE) through Jenkins.

So I have a custom image with Ansible:

```
[root@8a6fe05d3b73 /]# ansible --version
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Oct 19 2021, 05:14:06) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
```

Then, I start a Pod with UID `1000` (Jenkins default UID) and try to run Kubespray `v2.17.1` (https://github.com/kubernetes-sigs/kubespray/tree/v2.17.1). And it fails with logs:

```
PLAY [localhost]
***************************************************************
Thursday 17 November 2022  16:03:39 +0000 (0:00:00.136)       0:00:00.136
***** 
/usr/lib/python3.6/site-packages/requests/__init__.py:91:
RequestsDependencyWarning: urllib3 (1.26.8) or chardet (3.0.4) doesn't
match a supported version!
  RequestsDependencyWarning)

TASK [Check 2.9.0 <= Ansible version < 2.11.0]
*********************************
An exception occurred during task execution. To see the full traceback, use
-vvv. The error was: KeyError: 'getpwuid(): uid not found: 1000'
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module
execution.", "stdout": ""}

PLAY RECAP
*********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1
skipped=0    rescued=0    ignored=0   

Thursday 17 November 2022  16:03:39 +0000 (0:00:00.043)       0:00:00.180
***** 
===============================================================================
Check 2.9.0 <= Ansible version < 2.11.0 ---------------------------------
0.04s
```

The related play code (https://github.com/kubernetes-sigs/kubespray/blob/v2.17.1/ansible_version.yml):

```
---
- hosts: localhost
  gather_facts: false
  become: no
  vars:
    minimal_ansible_version: 2.9.0
    minimal_ansible_version_2_10: 2.10.11
    maximal_ansible_version: 2.11.0
    ansible_connection: local
  tags: always
  tasks:
    - name: "Check {{ minimal_ansible_version }} <= Ansible version < {{ maximal_ansible_version }}"
      assert:
        msg: "Ansible must be between {{ minimal_ansible_version }} and {{ maximal_ansible_version }}"
        that:
          - ansible_version.string is version(minimal_ansible_version, ">=")
          - ansible_version.string is version(maximal_ansible_version, "<")
      tags:
        - check

    - name: "Check Ansible version > {{ minimal_ansible_version_2_10 }} when using ansible 2.10"
      assert:
        msg: "When using Ansible 2.10, the minimum supported version is {{ minimal_ansible_version_2_10 }}"
        that:
          - ansible_version.string is version(minimal_ansible_version_2_10, ">=")
          - ansible_version.string is version(maximal_ansible_version, "<")
      when:
        - ansible_version.string is version('2.10.0', ">=")
      tags:
        - check

    - name: "Check that python netaddr is installed"
      assert:
        msg: "Python netaddr is not present"
        that: "'127.0.0.1' | ipaddr"
      tags:
        - check

    # CentOS 7 provides too old jinja version
    - name: "Check that jinja is not too old (install via pip)"
      assert:
        msg: "Your Jinja version is too old, install via pip"
        that: "{% set test %}It works{% endset %}{{ test == 'It works' }}"
      tags:
        - check
```


### Issue Type

Bug Report

### Component Name

core

### Ansible Version

```console
$ ansible --version
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Oct 19 2021, 05:14:06) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed
```


### OS / Environment

- Kubernetes
- uname: `Linux 8a6fe05d3b73 5.15.0-53-generic #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux`
- /etc/os-release

```
NAME="CentOS Stream"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Stream 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
```


### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->

https://github.com/kubernetes-sigs/kubespray/blob/v2.17.1/ansible_version.yml:

```yaml (paste below)
- hosts: localhost
  gather_facts: false
  become: no
  vars:
    minimal_ansible_version: 2.9.0
    minimal_ansible_version_2_10: 2.10.11
    maximal_ansible_version: 2.11.0
    ansible_connection: local
  tags: always
  tasks:
    - name: "Check {{ minimal_ansible_version }} <= Ansible version < {{ maximal_ansible_version }}"
      assert:
        msg: "Ansible must be between {{ minimal_ansible_version }} and {{ maximal_ansible_version }}"
        that:
          - ansible_version.string is version(minimal_ansible_version, ">=")
          - ansible_version.string is version(maximal_ansible_version, "<")
      tags:
        - check

    - name: "Check Ansible version > {{ minimal_ansible_version_2_10 }} when using ansible 2.10"
      assert:
        msg: "When using Ansible 2.10, the minimum supported version is {{ minimal_ansible_version_2_10 }}"
        that:
          - ansible_version.string is version(minimal_ansible_version_2_10, ">=")
          - ansible_version.string is version(maximal_ansible_version, "<")
      when:
        - ansible_version.string is version('2.10.0', ">=")
      tags:
        - check

    - name: "Check that python netaddr is installed"
      assert:
        msg: "Python netaddr is not present"
        that: "'127.0.0.1' | ipaddr"
      tags:
        - check

    # CentOS 7 provides too old jinja version
    - name: "Check that jinja is not too old (install via pip)"
      assert:
        msg: "Your Jinja version is too old, install via pip"
        that: "{% set test %}It works{% endset %}{{ test == 'It works' }}"
      tags:
        - check
```


### Expected Results

To work ^^

### Actual Results

```console
ansible-playbook 2.9.27
  config file = /home/jenkins/agent/workspace/kubespray/ansible.cfg
  configured module search path = ['/home/jenkins/agent/workspace/kubespray/library']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 3.6.8 (default, Oct 19 2021, 05:14:06) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
Using /home/jenkins/agent/workspace/kubespray/ansible.cfg as config file
setting up inventory plugins
host_list declined parsing /home/jenkins/agent/workspace/kubespray/hosts as it did not pass its verify_file() method
auto declined parsing /home/jenkins/agent/workspace/kubespray/hosts as it did not pass its verify_file() method
Parsed /home/jenkins/agent/workspace/kubespray/hosts inventory source with ini plugin
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0010-swapoff.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0050-create_directories.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0060-resolvconf.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0061-systemd-resolved.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0062-networkmanager-unmanaged-devices.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0063-networkmanager-dns.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0070-system-packages.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0080-system-configurations.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0100-dhclient-hooks.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0110-dhclient-hooks-undo.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0120-growpart-azure-centos-7.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/container-engine/cri-o/tasks/crio_repo.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/container-engine/docker/tasks/pre-upgrade.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/container-engine/docker/tasks/systemd.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/etcd/handlers/backup.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/etcd/handlers/backup.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/node/tasks/facts.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/node/tasks/pre_upgrade.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/node/tasks/install.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/node/tasks/loadbalancer/nginx-proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/node/tasks/loadbalancer/haproxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/node/tasks/kubelet.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/tokens/tasks/check-tokens.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/tokens/tasks/gen_tokens.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/control-plane/tasks/pre-upgrade.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/control-plane/tasks/encrypt-at-rest.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/control-plane/tasks/kubeadm-setup.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/control-plane/tasks/kubeadm-backup.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/network_plugin/cilium/tasks/check.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/network_plugin/calico/tasks/check.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/network_plugin/calico/tasks/pre.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/network_plugin/calico/tasks/repos.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/network_plugin/kube-router/tasks/annotate.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/ansible/tasks/cleanup_dns.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/ansible/tasks/coredns.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/ansible/tasks/nodelocaldns.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/ansible/tasks/netchecker.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/ansible/tasks/dashboard.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/krew/tasks/krew.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/krew/tasks/krew.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes-apps/cloud_controller/oci/tasks/credentials-check.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/download/tasks/prep_download.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/fallback_ips.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubespray-defaults/tasks/no_proxy.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0010-swapoff.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0050-create_directories.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0060-resolvconf.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0061-systemd-resolved.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0062-networkmanager-unmanaged-devices.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0063-networkmanager-dns.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0070-system-packages.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0080-system-configurations.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0100-dhclient-hooks.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0110-dhclient-hooks-undo.yml
statically imported: /home/jenkins/agent/workspace/kubespray/roles/kubernetes/preinstall/tasks/0120-growpart-azure-centos-7.yml
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python3.6/site-packages/ansible/plugins/callback/default.py
Attempting to use 'actionable' callback.
Skipping callback 'actionable', as we already have a stdout callback.
Attempting to use 'aws_resource_actions' callback.
Attempting to use 'cgroup_memory_recap' callback.
Attempting to use 'cgroup_perf_recap' callback.
Attempting to use 'context_demo' callback.
Attempting to use 'counter_enabled' callback.
Skipping callback 'counter_enabled', as we already have a stdout callback.
Attempting to use 'debug' callback.
Skipping callback 'debug', as we already have a stdout callback.
Attempting to use 'dense' callback.
Skipping callback 'dense', as we already have a stdout callback.
Attempting to use 'dense' callback.
Skipping callback 'dense', as we already have a stdout callback.
Attempting to use 'foreman' callback.
Attempting to use 'full_skip' callback.
Skipping callback 'full_skip', as we already have a stdout callback.
Attempting to use 'grafana_annotations' callback.
Attempting to use 'hipchat' callback.
Attempting to use 'jabber' callback.
Attempting to use 'json' callback.
Skipping callback 'json', as we already have a stdout callback.
Attempting to use 'junit' callback.
Attempting to use 'log_plays' callback.
Attempting to use 'logdna' callback.
Attempting to use 'logentries' callback.
Attempting to use 'logstash' callback.
Attempting to use 'mail' callback.
Attempting to use 'minimal' callback.
Skipping callback 'minimal', as we already have a stdout callback.
Attempting to use 'nrdp' callback.
Attempting to use 'null' callback.
Skipping callback 'null', as we already have a stdout callback.
Attempting to use 'oneline' callback.
Skipping callback 'oneline', as we already have a stdout callback.
Attempting to use 'osx_say' callback.
Attempting to use 'profile_roles' callback.
Attempting to use 'profile_tasks' callback.
Loading callback plugin profile_tasks of type aggregate, v2.0 from /usr/lib/python3.6/site-packages/ansible/plugins/callback/profile_tasks.py
Attempting to use 'say' callback.
Attempting to use 'selective' callback.
Skipping callback 'selective', as we already have a stdout callback.
Attempting to use 'skippy' callback.
Skipping callback 'skippy', as we already have a stdout callback.
Attempting to use 'slack' callback.
Attempting to use 'splunk' callback.
Attempting to use 'stderr' callback.
Skipping callback 'stderr', as we already have a stdout callback.
Attempting to use 'sumologic' callback.
Attempting to use 'syslog_json' callback.
Attempting to use 'timer' callback.
Attempting to use 'tree' callback.
Attempting to use 'unixy' callback.
Skipping callback 'unixy', as we already have a stdout callback.
Attempting to use 'yaml' callback.
Skipping callback 'yaml', as we already have a stdout callback.

PLAYBOOK: cluster.yml **********************************************************
Positional arguments: cluster.yml
verbosity: 5
private_key_file: /home/jenkins/agent/workspace/kubespray/ssh.key
remote_user: management-user
connection: smart
timeout: 10
become: True
become_method: sudo
tags: ('all',)
inventory: ('/home/jenkins/agent/workspace/kubespray/hosts',)
extra_vars: ('managed_zone_name=company-zone', 'managed_zone=company.com', 'zone=europe-west1-b', 'project_id=company-gcp-project', 'configurator_release=./', 'kube_version=v1.19.3', "{ 'supplementary_addresses_in_ssl_keys': ['1.2.3.4', 'env.company.com']}", 'podsecuritypolicy_enabled=true')
forks: 5
19 plays in cluster.yml

PLAY [localhost] ***************************************************************
META: ran handlers
Thursday 17 November 2022  18:07:04 +0000 (0:00:00.099)       0:00:00.099 *****
/usr/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)

TASK [Check 2.9.0 <= Ansible version < 2.11.0] *********************************
task path: /home/jenkins/agent/workspace/kubespray/ansible_version.yml:12
The full traceback is:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/ansible/executor/task_executor.py", line 147, in run
    res = self._execute()
  File "/usr/lib/python3.6/site-packages/ansible/executor/task_executor.py", line 620, in _execute
    self._connection = self._get_connection(cvars, templar)
  File "/usr/lib/python3.6/site-packages/ansible/executor/task_executor.py", line 913, in _get_connection
    ansible_playbook_pid=to_text(os.getppid())
  File "/usr/lib/python3.6/site-packages/ansible/plugins/loader.py", line 573, in get
    obj = obj(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/ansible/plugins/connection/local.py", line 47, in __init__
    self.default_user = getpass.getuser()
  File "/usr/lib64/python3.6/getpass.py", line 169, in getuser
    return pwd.getpwuid(os.getuid())[0]
KeyError: 'getpwuid(): uid not found: 1000'
fatal: [localhost]: FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}

PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Thursday 17 November 2022  18:07:04 +0000 (0:00:00.047)       0:00:00.146 *****
===============================================================================
Check 2.9.0 <= Ansible version < 2.11.0 --------------------------------- 0.05s
/home/jenkins/agent/workspace/kubespray/ansible_version.yml:12
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
''' transfer a file from local to local '''
        super(Connection, self).put_file(in_path, out_path)
        in_path = unfrackpath(in_path, basedir=self.cwd)
        out_path = unfrackpath(out_path, basedir=self.cwd)
        display.vvv(u"PUT {0} TO {1}".format(in_path, out_path), host=self._play_context.remote_addr)
        if not os.path.exists(to_bytes(in_path, errors='surrogate_or_strict')):
            raise AnsibleFileNotFound("file or module does not exist: {0}".format(to_native(in_path)))
        try:
            shutil.copyfile(to_bytes(in_path, errors='surrogate_or_strict'), to_bytes(out_path, errors='surrogate_or_strict'))
        except shutil.Error:
            raise AnsibleError("failed to copy: {0} and {1} are the same".format(to_native(in_path), to_native(out_path)))
        except IOError as e:
            raise AnsibleError("failed to transfer file to {0}: {1}".format(to_native(out_path), to_native(e)))
    def fetch_file(self, in_path, out_path):
        ''' fetch a file from local to local -- for compatibility '''
        super(Connection, self).fetch_file(in_path, out_path)
        display.vvv(u"FETCH {0} TO {1}".format(in_path, out_path), host=self._play_context.remote_addr)
        self.put_file(in_path, out_path)
    def close(self):
        ''' terminate the connection; nothing to do here '''
        self._connected = False