##### SUMMARY
_ansible-inventory_ ignores inventory order and returns hosts sorted by name 

_ansible-inventory_ is very convinient to quickly have a look on the inventory, it is very handy when reviewing complex inventories based on many inventory files, scripts and group_vars.

It matters when chronological hosts order (sort by creation time) is more important then names and for projects using group position in patterns, example: groups['servers'][0] as often used for services like grafana and prometheus 

I'd like to use the ansible-inventory command to quickly review inventories and ocassionally use the output for executing predictable tests.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ansible-inventory

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->

```paste below
ansible 2.10.4
  python version = 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]
```
```paste below
ansible 2.9.16
  python version = 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]
```
```paste below
ansible 2.5.0
  python version = 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]

ansible 2.5.0
  python version = 2.7.12 (default, Oct  5 2020, 13:56:01) [GCC 5.4.0 20160609]
```

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

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Linux

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

ansible --list-hosts all -i host02,host03,host01
```
  hosts (3):
    host02
    host03
    host01
```

ansible-inventory --list all -i host02,host03,host01
```
{
    "_meta": {
        "hostvars": {
            "host01": {},
            "host02": {},
            "host03": {}
        }
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    },
    "ungrouped": {
        "hosts": [
            "host01",
            "host02",
            "host03"
        ]
    }
}
```
##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
_ansible-inventory_ shows Ansible inventory information, the order provided in the inventory (default). 
[Ordering execution based on inventory](https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html#ordering-execution-based-on-inventory)

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
_ansible-inventory_ command ignores inventory order and returns ordered hosts

super(InventoryCLI, self).init_parser(
            usage='usage: %prog [options] [host|group]',
            epilog='Show Ansible inventory information, by default it uses the inventory script JSON format')
        opt_help.add_inventory_options(self.parser)
        opt_help.add_vault_options(self.parser)
        opt_help.add_basedir_options(self.parser)
        opt_help.add_runtask_options(self.parser)
        
        self.parser.add_argument('-l', '--limit', help=argparse.SUPPRESS, action=opt_help.UnrecognizedArgument, nargs='?')
        self.parser.add_argument('--list-hosts', help=argparse.SUPPRESS, action=opt_help.UnrecognizedArgument)
        self.parser.add_argument('args', metavar='host|group', nargs='?')
        
        action_group = self.parser.add_argument_group("Actions", "One of following must be used on invocation, ONLY ONE!")
        action_group.add_argument("--list", action="store_true", default=False, dest='list', help='Output all hosts info, works as inventory script')
        action_group.add_argument("--host", action="store", default=None, dest='host', help='Output specific host info, works as inventory script')
        action_group.add_argument("--graph", action="store_true", default=False, dest='graph',
                                  help='create inventory graph, if supplying pattern it must be a valid group name')
        self.parser.add_argument_group(action_group)
        
        self.parser.add_argument("-y", "--yaml", action="store_true", default=False, dest='yaml',
                                 help='Use YAML format instead of default JSON, ignored for --graph')
        self.parser.add_argument('--toml', action='store_true', default=False, dest='toml',
                                 help='Use TOML format instead of default JSON, ignored for --graph')
        self.parser.add_argument("--vars", action="store_true", default=False, dest='show_vars',
                                 help='Add vars to graph display, ignored unless used with --graph')
        
        self.parser.add_argument("--export", action="store_true", default=C.INVENTORY_EXPORT, dest='export',
                                 help="When doing an --list, represent in a way that is optimized for export,"
                                      "not as an accurate representation of how Ansible has processed it")
        self.parser.add_argument('--output', default=None, dest='output_file',