### Summary

When I try to use the --become-password-file flag in the command 
```
> ansible-pull -i "$(hostname)," -U {repo_link} local.yml
```
I get the following error:
```
>   module_stderr: |-
    sudo: a password is required
  module_stdout: ''
  msg: |-
    MODULE FAILURE
    See stdout/stderr for the exact error
  rc: 1
```
when attempting to use the playbook:
```
- hosts: all
  tasks:

    - shell:
        cmd: uptime
      register: uptime_res
      become: true

    - debug:
        var: uptime_res
```
I believe this is a bug because the [pull.py](https://github.com/ansible/ansible/blob/ad79c1e0d032eb5dda216055ffc393043de4b380/lib/ansible/cli/pull.py#L278) does not seem to utilize the [ask_passwords](https://github.com/ansible/ansible/blob/650befed37eadcaea735673638d5475fa957ca7e/lib/ansible/cli/__init__.py#L328) function, nor build the --become-password-file into the [cmd](https://github.com/ansible/ansible/blob/ad79c1e0d032eb5dda216055ffc393043de4b380/lib/ansible/cli/pull.py#L278) variable.

### Issue Type

Bug Report

### Component Name

pull.py

### Ansible Version

```console
$ ansible --version
aansible --version
ansible [core 2.12.6]
  config file = /Users/{user}/ansible.cfg
  configured module search path = ['/Users/{user}/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible
  ansible collection location = /Users/{user}/.ansible/collections:/usr/share/ansible/collections
  executable location = /Library/Frameworks/Python.framework/Versions/3.8/bin/ansible
  python version = 3.8.0 (v3.8.0:fa919fdf25, Oct 14 2019, 10:23:27) [Clang 6.0 (clang-600.0.57)]
  jinja version = 3.1.2
  libyaml = True
```


### Configuration

```console
DEFAULT_FORKS(/Users/{user}/ansible.cfg) = 100
DEFAULT_LOAD_CALLBACK_PLUGINS(/Users/{user}/ansible.cfg) = True
DEFAULT_STDOUT_CALLBACK(/Users/{user}/ansible.cfg) = yaml
HOST_KEY_CHECKING(/Users/{user}/ansible.cfg) = False

BECOME:
======

CACHE:
=====

CALLBACK:
========
```


### OS / Environment

macOS Monterey 12.5.1

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
- hosts: all

  tasks:

    - shell:
        cmd: uptime
      register: uptime_res
      become: true

    - debug:
        var: uptime_res
```
run the command: ```ansible-pull -i "$(hostname)," -U {repo_link} local.yml```

### Expected Results

I expect a successful playbook with an output of the current uptime.

### Actual Results

```console
TASK [shell] *******************************************************************
fatal: [{HOSTNAME}]: FAILED! => changed=false
  module_stderr: |-
    sudo: a password is required
  module_stdout: ''
  msg: |-
    MODULE FAILURE
    See stdout/stderr for the exact error
  rc: 1
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
''' Used to pull a remote copy of ansible on each managed node,
        each set to run via cron and update playbook source via a source repository.
        This inverts the default *push* architecture of ansible into a *pull* architecture,
        which has near-limitless scaling potential.
        None of the CLI tools are designed to run concurrently with themselves,
        you should use an external scheduler and/or locking to ensure there are no clashing operations.
        The setup playbook can be tuned to change the cron frequency, logging locations, and parameters to ansible-pull.
        This is useful both for extreme scale-out as well as periodic remediation.
        Usage of the 'fetch' module to retrieve logs from ansible-pull runs would be an
        excellent way to gather and analyze remote logs from ansible-pull.
    '''
    name = 'ansible-pull'
    DEFAULT_REPO_TYPE = 'git'
    DEFAULT_PLAYBOOK = 'local.yml'
    REPO_CHOICES = ('git', 'subversion', 'hg', 'bzr')
    PLAYBOOK_ERRORS = {
        1: 'File does not exist',
        2: 'File is not readable',
    }
    ARGUMENTS = {'playbook.yml': 'The name of one the YAML format files to run as an Ansible playbook.'
                                 'This can be a relative path within the checkout. By default, Ansible will'
                                 "look for a playbook based on the host's fully-qualified domain name,"
                                 'on the host hostname and finally a playbook named *local.yml*.', }
    SKIP_INVENTORY_DEFAULTS = True
    @staticmethod
    def _get_inv_cli():