I have $MY_VAR set to some value on the remote host, and I want to query it from a playbook (put it's value in an ansible variable), here's what I am seeing :
- name: put shell var into ansible var command: echo $MY_VAR register: my_var - debug: var=my_var
ok: [192.168.78.10] => { "my_var": { "changed": true, "cmd": [ "echo", "$my_var" ], "delta": "0:00:00.002284", "end": "2014-12-17 18:10:01.097217", "invocation": { "module_args": "echo $my_var", "module_name": "command" }, "rc": 0, "start": "2014-12-17 18:10:01.094933", "stderr": "", "stdout": "$my_var", "stdout_lines": [ "$my_var" ] } }
note:
If I change the command to :
command: pwd
then I get the expected result :
"my_var": {
"stdout": "/home/vagrant",
"stdout_lines": [
"/home/vagrant"
]
}
It seems as if echo does not expand when called from ansible
The problem is that you are using the
command
module. Here's what the documentation says:So, use
shell
instead ofcommand
.