### Summary

The test_real_path_dev_null test fails on OpenIndiana (a Solaris clone) because on illumos (and Solaris) `/dev/null` is a symlink:
```
$ ls -l /dev/null
lrwxrwxrwx 1 root root 27 Mar 31  2015 /dev/null -> ../devices/pseudo/mm@0:null
$
```

### Issue Type

Bug Report

### Component Name

test_vault_editor.py

### Ansible Version

```console
$ ansible --version
ansible [core 2.14.4]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/marcel/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/vendor-packages/ansible
  ansible collection location = /home/marcel/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.16 (main, Feb 19 2023, 15:42:40) [GCC 10.4.0] (/usr/bin/python3.9)
  jinja version = 3.0.3
  libyaml = True
$
```


### Configuration

```console
NA.  Tests are run directly in the source directory after the source tarball is unpacked.
```


### OS / Environment

OpenIndiana

### Steps to Reproduce

```
$ bin/ansible-test units --python 3.9 --python-interpreter /usr/bin/python3.9 --local --color no --verbose
```


### Expected Results

The `test_real_path_dev_null` test either pass or is skipped.

### Actual Results

```console
___________________ TestVaultEditor.test_real_path_dev_null ____________________
[gw0] sunos5 -- Python 3.9.16 /usr/bin/python3.9
self = <units.parsing.vault.test_vault_editor.TestVaultEditor testMethod=test_real_path_dev_null>

    def test_real_path_dev_null(self):
        filename = '/dev/null'
        ve = self._vault_editor()

        res = ve._real_path(filename)
>       self.assertEqual(res, '/dev/null')

test/units/parsing/vault/test_vault_editor.py:509:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.9/vendor-packages/teamcity/diff_tools.py:33: in _patched_equals
    old(self, first, second, msg)
E   AssertionError: '/devices/pseudo/mm@0:null' != '/dev/null'
E   - /devices/pseudo/mm@0:null
E   + /dev/null
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
self.assertTrue(os.path.islink(src_file_link_path),
                        'The dest path (%s) should be a symlink to (%s) but is not' % (src_file_link_path, src_file_path))
    def test_rekey_file(self):
        self._test_dir = self._create_test_dir()
        src_file_contents = to_bytes("some info in a file\nyup.")
        src_file_path = self._create_file(self._test_dir, 'src_file', content=src_file_contents)
        ve = self._vault_editor()
        ve.encrypt_file(src_file_path, self.vault_secret)
        
        new_password = 'password2:electricbugaloo'
        new_vault_secret = TextVaultSecret(new_password)
        new_vault_secrets = [('default', new_vault_secret)]
        ve.rekey_file(src_file_path, vault.match_encrypt_secret(new_vault_secrets)[1])
        
        new_ve = vault.VaultEditor(VaultLib(new_vault_secrets))
        self._assert_file_is_encrypted(new_ve, src_file_path, src_file_contents)
    def test_rekey_file_no_new_password(self):
        self._test_dir = self._create_test_dir()
        src_file_contents = to_bytes("some info in a file\nyup.")
        src_file_path = self._create_file(self._test_dir, 'src_file', content=src_file_contents)
        ve = self._vault_editor()
        ve.encrypt_file(src_file_path, self.vault_secret)
        self.assertRaisesRegex(errors.AnsibleError,
                               'The value for the new_password to rekey',
                               ve.rekey_file,
                               src_file_path,
                               None)
    def test_rekey_file_not_encrypted(self):