Is the Ansible Inventory compatible with OpenAPI standards?

Viewed 38

I´m trying to specify the API used by ansibles dynamic inventory. Does anyone have experience with solving the incompatibility?

For a single host it might work as following: The Ansible json output will be like this:

{
    "ansible_host": "172.16.19.123",
    "proxy": "somehost.domain.fake"
}

The openapi.yml

paths:
  /api/inventory/host/:
    get:
      summary: Gets One Ansible Host
      parameters:
        - in: query
          name: hostname
          schema:
            type: string
          required: true
      responses:
        '200':      
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleHost'
components:
  schemas:
    SingleHost: # A Single Host for ansible-inventory --host [hostname] requests
      type: object
      properties:
        ansible_host: 
          type: string
          description: IP-Address of the host
        ansible_port: 
          type: integer
          description: ssh-port number of host

But when specifiyng the endpoint for ansible-inventory --list it gets tricky already..
example of a ansible inventory yml

{
    "HostGroupName-A": {   
        "hosts": [
            "Host-A"
        ]
    },
    "HostGroupName-B": {
        "hosts": [
            "Host-A",
            "Host-B"
        ]
    }
}

Should I just avoid using openapi to specify this?

0 Answers
Related