CJR
(CJR)
September 30, 2014, 6:11pm
1
All -
I am having hell with this:
`
getLog = ansible.runner.Runner(
forks=100,
inventory=ansible.inventory.Inventory(‘inventory’),
module_name=‘fetch’,
module_args=‘src=/tmp/logs.tar.gz dest=./output/???/logs flat=yes validate_md5=no’,
).run()
`
In line 5, you can see I put a whole bunch of ???. If I were writing a playbook, I would have something like {{ ansible_ssh_host }} there.
I want the IP address of the target so that when everything is done, I have all my server logs back on my machine.
I have verified, the logs (/tmp/logs.tar.gz) ARE there, and if I try and fetch them without a varible it works…but they all overwrite each other.
Anybody have an idea??
Thanks!
First off, what’s ansible --version?
Second, can you show the line you have tried using the variable?
This is a more-appropriate question for ansible-devel in the future.
Thanks!
sivel
(sivel)
October 1, 2014, 12:44pm
3
So, reducing this to a more simple example:
getLog = ansible.runner.Runner(
forks=100,
inventory=ansible.inventory.Inventory(‘inventory’),
module_name=‘command’,
module_args=‘echo “{{ansible_ssh_host|default(inventory_hostname)}}”’,
).run()
In the above, I can confirm that standard variable replacement, just as used in a playbook, work as expected here:
{‘dark’: {}, ‘contacted’: {‘127.0.0.1’: {u’cmd’: [u’echo’, u’127.0.0.1’], u’end’: u’2014-10-01 07:40:29.208210’, u’stdout’: u’127.0.0.1’, u’changed’: True, u’start’: u’2014-10-01 07:40:29.202530’, u’delta’: u’0:00:00.005680’, u’stderr’: u’‘, u’rc’: 0, ‘invocation’: {‘module_name’: ‘command’, ‘module_args’: u’echo “127.0.0.1”'}}}}
CJR
(CJR)
October 1, 2014, 12:46pm
4
I am running Ansible version 1.7.
I have tried many different flavors of variables. I have tried using Ansiable syntax:
module_args='src=/tmp/logs.tar.gz dest=./output/{{ inventory_hostname }}/logs
…as I would in a YML playbook.
CJR
(CJR)
October 1, 2014, 12:47pm
5
Matt -
Thanks for the assistance. I will try that shortly and see if I get the desired effect. I hadn’t been using default() around it…
CJR
(CJR)
October 1, 2014, 2:34pm
6
This did it! Thanks, I was not including the ‘|default(…)’ piece.