@emrehayta
Ich würde dir empfehlen dies nicht über die API sondern über einen dynamic Report zu machen. Die dynamischen Reports generieren dir unter anderem einem XML Report mit den Feldern, welche bei der Erstellung des Reports angegeben wurden. Basierend auf diesem XML Report musst du dann nur die Daten, die du wirklich benötigst in JSON Notation speichern und kannst diese anschließend direkt als Inventory in AWX nutzen.
Ein Vorteil bei der Nutzung von dynamischen Reports ist, dass du diese via http/s beziehen kannst, es ist also kein API Aufruf über I-Doit notwendig, sondern es reicht aus die ID des Reports zu kennen. Wie @RandomUser jedoch bereits richtig angedeutet hat, ist ein Zwischenschritt notwendig um die Reports für Ansible aufzubereiten. (Hier spielt es jedoch keine Rolle ob du das via python, php, shell etc. machst)
Die Einbindung der Reports in AWX kann dann über ein custom inventory Skript, direkt in AWX realisiert werden.
Beispiel wie das aussehen könnte:
{
"_meta": {
"hostvars": {
"HOSTNAME": {
"ansible_host": "IP",
"idoit": {
"id": "ObjectID",
"ignore": false,
"network": {
"hostname": "HOSTNAME",
"ipaddr": "IP"
},
"title": "HOSTNAME"
}
},
[...]