Hi All,

I have been using Ansible for a few months now and have started to create 
some custom python scripts to enable me to implement tasks I haven't 
otherwise been able to do within standard playbooks.

My inventory file is starting to grow and since all of the information in 
it is currently available from a DB, I started to look at dynamic inventory.

I wanted to start by understanding the JSON required to build an inventory, 
so came up with the following code in an effort to understand it.  I 
realise that this is not a complete solution, it is purely for me to 
understand the required format of the data.

inv = {
    "company": {
        "hosts": [
            "server",
            "sensor"
        ]
    },
    "_meta": {
        "hostvars": {
            "server": {
                "ansible_ssh_host" : "7.7.7.7",
                "ansible_ssh_port" : "44"
            },
            "sensor": {
                "ansible_ssh_host" : "7.7.7.7",
                "ansible_ssh_port" : "33"
            }
        }
    }
}
inv = json.dumps(inv)

inventory = ansible.inventory.Inventory(inv)

If I print inv, it comes out like so...

{"company": {"hosts": ["server", "sensor"]}, "_meta": {"hostvars": 
{"sensor": {"ansible_ssh_host": "7.7.7.7", "ansible_ssh_port": "44"}, 
"server": {"ansible_ssh_host": "7.7.7.7", "ansible_ssh_port": "33"}}}}

When I execute this code however, I get the following error.

Traceback (most recent call last):
  File "test_inventory.py", line 33, in <module>
    inventory = ansible.inventory.Inventory(inv)
  File 
"/usr/local/lib/python2.7/dist-packages/ansible/inventory/__init__.py", 
line 93, in __init__
    all.add_host(Host(tokens[0], tokens[1]))
  File "/usr/local/lib/python2.7/dist-packages/ansible/inventory/host.py", 
line 32, in __init__
    self.set_variable('ansible_ssh_port', int(port))
ValueError: invalid literal for int() with base 10: '"22"}'

I've tried removing the string quotes from the port number, but the problem 
persists.  If I remove the ansible_ssh_port lines, I get no errors.

Can anyone offer any advice?  I'm current running Ansible version 1.9.4 
which I understand is the latest.

Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/01c098b0-f480-450c-b8df-441122c356a6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to