Update the documentation and publish the 2.10 version of Ansible documentation. Tasks include:

- [x] Remove 2.7 from the version switcher in conf.py in devel, stable-2.10, stable-2.9 and stable-2.8 and [2.9_ja](https://github.com/acozine/ansible/tree/japanese_2.9_to_prod) - see #64109

- [x] Get redirects in place for all old modules to new module-in-collection - https://github.com/ansible-community/antsibull/issues/77

- [x] Review changelogs in stable-2.10 for base and ansible

- [x] Backport autogenerated Ansible 2.10 porting guide to stable-2.10

- [x] Update 2.10 porting guide to point to stable-2.10

- [x] Update the Release Status grid on the Release and Maintenance page in devel and stable-2.10

- [x] Backport release Status grid to 2.9 and 2.8.

- [x] Update the version suggested for RHEL users in the installation docs, see https://github.com/ansible/ansible/pull/48173 

- [x] Backport the updated instructions for backporting to `latest`, see https://github.com/ansible/ansible/pull/56578

<del>Update the “too old” version number that suppresses the publication of “version_added” metadata older than a certain Ansible version, see https://github.com/ansible/ansible/pull/50097 </del> (no longer supported)

- [x] <del>Update the versions listed on the docs landing page - see https://github.com/ansible/docsite/pull/8 </del> removed these instead as it repeats the version switcher - https://github.com/ansible/docsite/pull/28

- [x] Update EOL banner on stable-2.7

- [x] Make sure all server-side redirects are updated as necessary - see https://github.com/ansible/docsite/pull/11 

- [x] Resolve latest vs 2.10 on docsite

- [x] Add skeleton roadmap for 2.11

- [x] <del>Add skeleton porting guide for 2.11</del> - porting guide for Ansible now autogenerated. ansible-base has a skeleton.

- [x] republish 2.10 on release day.

- [x]  post release - update intersphinx links.  see #66646 (should be done for ansible-base and Ansible releases)

- [x] post release (day or so later) - update sitemap for google. See https://github.com/ansible/docsite/pull/17

- [x]  post release reindex swiftype search (after sitemap is in place)

Future Releases - remove the release/maintenance page and porting guide pages from the new release when the branch is created and replace with stub page pointing up to the devel versions of these release-independent pages.

<!--- HINT: Did you know the documentation has an "Edit on GitHub" link on every page ? -->

##### ISSUE TYPE
- Documentation Report

##### COMPONENT NAME
<!--- Write the short name of the rst file, module, plugin, task or feature below, use your best guess if unsure -->
docs.ansible.com
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below

```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. OS version, browser, etc. -->

##### ADDITIONAL INFORMATION
<!--- Describe how this improves the documentation, e.g. before/after situation or screenshots -->

<!--- HINT: You can paste gist.github.com links for larger files -->
"""Creates a temporary directory that is deleted outside the context scope."""
    temp_path = tempfile.mkdtemp()
    yield temp_path
    shutil.rmtree(temp_path)
@contextlib.contextmanager
def open_zipfile(path, mode='r'):
    """Opens a zip file and closes the file automatically."""
    zib_obj = zipfile.ZipFile(path, mode=mode)
    yield zib_obj
    zib_obj.close()
display = Display()