Ansible 1.8.2 Error whilst debugging variable.stdout - "A variable inserted a new parameter into the module args"

499 views
Skip to first unread message

Mike S

unread,
Mar 23, 2015, 10:14:14 AM3/23/15
to ansible...@googlegroups.com
Hi all,


To summarise, this was my task,

- name: Build base image
 
shell: docker build -t {{docker_image_namespace}}/trusty-base {{docker_yard_dir}}/base
 
register: docker_build

- debug: msg="{{ docker_build.stdout }}"

and the failure,

TASK: [docker-base | debug msg="{{ docker_build.stdout }}"] *******
fatal
: [10.22.22.22] => A variable inserted a new parameter into the module args. Be sure to quote variables if they contain equal signs (for example: "{{var}}").

FATAL
: all hosts have already failed -- aborting

I've only been able to get this to work as - debug: var=docker_build.stdout, however, this does not print STDOUT, but rather shows the var contents, including '\n' chars in a really long string.

Any thoughts on how I can get this sorted?

Any suggestions on getting these images built as an async. job as well?


Matt Martz

unread,
Mar 23, 2015, 10:19:12 AM3/23/15
to ansible...@googlegroups.com
I might recommend using 'var' instead of 'msg' in debug.  The problem is likely that the output contains quotes and is breaking the quoting.

Something like:

- debug: var=docker_build.stdout


--
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 ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/69f2803f-76c8-492a-817e-f79d60148446%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Matt Martz
@sivel
sivel.net

Mike S

unread,
Mar 23, 2015, 10:45:18 AM3/23/15
to ansible...@googlegroups.com
I've resorted to using the docker tools, to get the image setup

- name: Build base image
  docker_image
: path="{{docker_yard_dir}}/base" name="{{docker_image_namespace}}/trusty-base" state=present
 
register: docker_build

Mike S

unread,
Mar 23, 2015, 2:26:35 PM3/23/15
to ansible...@googlegroups.com
Hey Matt,

Thanks, yeah I tried this but as you guessed, the output is received as string, but I want that string to be echoed into my terminal's tty.

I've now switched to building the image using docker-py and Ansible's docker module,

- name: Build base image
  docker_image
: path="{{docker_yard_dir}}/base" name="{{docker_image_namespace}}/trusty-base"state=present
 
register: docker_build

Any advice on how I can get the stdout info here, would it still be a case of accessing `docker_build.stdout`?

Also, what about running this as an async job (which I did); is there away to get an async job to trigger (say via `notify`) a completion message?  I don't mind if it's via email or using one of the push services Ansible can hook into.

Thanks for your help!

Best, M.
Reply all
Reply to author
Forward
0 new messages