### Summary

When running `ansible-playbook` using connection plugin from `ansible.builtin` collection using it's FQCN, the whole process crashes.

The crash happens during any configuration lookup using `AnsiblePlugin.get_option()` from said module with following exception:
> Requested entry (plugin_type: connection plugin: ansible_collections.ansible.builtin.plugins.connection.ssh setting: host ) was not defined in configuration

It doesn't matter if the connection plugin is specified via `--connection` argument, `connection:` keyword or `ansible_connection` variable.

However, ad-hoc commands and ansible console does work using FQCN (which is recommended in the docs).

---

**PS.** I'm willing to investigate this further and possibly even make a PR if someone with internal knowledge would point me in the right direction.

### Issue Type

Bug Report

### Component Name

ansible-playbook

### Ansible Version

```console
$ ansible --version
ansible [core 2.12.5]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/kristian/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible
  ansible collection location = /home/kristian/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/bin/ansible
  python version = 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]
  jinja version = 3.1.1
  libyaml = True
```


### Configuration

```console
$ ansible-config dump --only-changed
No custom config, all defaults
```


### OS / Environment

- Arch Linux (kernel version `5.17.4-arch1-1`)
- Python 3.10.4
- `ansible-core` installed via pip (inside fresh venv)

### Steps to Reproduce

Example playbook using `connection` keyword:

```yaml
- hosts: all # Do not use implicit `localhost` as `local` plugin won't make configuration lookup in default configuration
  connection: ansible.builtin.ssh
  tasks:
    - ping:
```

Quick and dirty one-liner using `--connection` CLI argument instead:
**PS!** Shell must support process substitution for the inline playbook (ie. bash or zsh)
```bash
ansible-playbook -i localhost, --connection ansible.builtin.ssh <(echo "[{'hosts':'all','tasks':[{'action':'ping'}]}]")
```

> Note: Although it fails at fact gathering, it is no factor - it will fail without it as well

### Expected Results

Excpected the command not to crash during connection plugin config lookup

### Actual Results

```console
$ ansible-playbook -i localhost, --connection ansible.builtin.ssh -vvvv <(echo "[{'hosts':'all','tasks':[{'action':'ping'}]}]")
/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
  "class": algorithms.Blowfish,
ansible-playbook [core 2.12.5]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/kristian/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible
  ansible collection location = /home/kristian/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/bin/ansible-playbook
  python version = 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]
  jinja version = 3.1.1
  libyaml = True
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
Set default localhost to localhost
Parsed localhost, inventory source with host_list plugin
Loading callback plugin default of type stdout, v2.0 from /home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/callback/default.py
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: 13 *********************************************************************************************************************************************************************************************************************************
Positional arguments: /proc/self/fd/13
verbosity: 4
connection: ansible.builtin.ssh
timeout: 10
become_method: sudo
tags: ('all',)
inventory: ('localhost,',)
forks: 5
1 plays in /proc/self/fd/13

PLAY [all] ***********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************************************************************
task path: /proc/self/fd/13:1
The full traceback is:
Traceback (most recent call last):
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/__init__.py", line 58, in get_option
    option_value = C.config.get_config_value(option, plugin_type=get_plugin_class(self), plugin_name=self._load_name, variables=hostvars)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/config/manager.py", line 425, in get_config_value
    value, _drop = self.get_config_value_and_origin(config, cfile=cfile, plugin_type=plugin_type, plugin_name=plugin_name,
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/config/manager.py", line 558, in get_config_value_and_origin
    raise AnsibleError('Requested entry (%s) was not defined in configuration.' % to_native(_get_entry(plugin_type, plugin_name, config)))
ansible.errors.AnsibleError: Requested entry (plugin_type: connection plugin: ansible_collections.ansible.builtin.plugins.connection.ssh setting: host ) was not defined in configuration.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/executor/task_executor.py", line 158, in run
    res = self._execute()
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/executor/task_executor.py", line 600, in _execute
    result = self._handler.run(task_vars=variables)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/gather_facts.py", line 100, in run
    res = self._execute_module(module_name=fact_module, module_args=mod_args, task_vars=task_vars, wrap_async=False)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 973, in _execute_module
    self._make_tmp_path()
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 390, in _make_tmp_path
    tmpdir = self._remote_expand_user(self.get_shell_option('remote_tmp', default='~/.ansible/tmp'), sudoable=False)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 856, in _remote_expand_user
    data = self._low_level_execute_command(cmd, sudoable=False)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 1253, in _low_level_execute_command
    rc, stdout, stderr = self._connection.exec_command(cmd, in_data=in_data, sudoable=sudoable)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/connection/ssh.py", line 1276, in exec_command
    self.host = self.get_option('host') or self._play_context.remote_addr
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/__init__.py", line 60, in get_option
    raise KeyError(to_native(e))
KeyError: 'Requested entry (plugin_type: connection plugin: ansible_collections.ansible.builtin.plugins.connection.ssh setting: host ) was not defined in configuration.'
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
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import glob
import os
import os.path
import sys
import warnings
from collections import defaultdict, namedtuple
from ansible import constants as C
from ansible.errors import AnsibleError, AnsiblePluginCircularRedirect, AnsiblePluginRemovedError, AnsibleCollectionUnsupportedVersionError
from ansible.module_utils._text import to_bytes, to_text, to_native
from ansible.module_utils.compat.importlib import import_module
from ansible.module_utils.six import string_types
from ansible.parsing.utils.yaml import from_yaml