Hi,
I've been made a orchistration tool by Ansible1.9, and trying to update
Ansible to the 2.0version.
I found there are some syntax rules that were changed (maybe bugs?) in
Ansbile2.0.
I have to use modules in playbook, which are written as bash scripts,
and there are some parameters that contain space in their arguments.
When I execute playbook in Ansbile1.9, result showed the argument like
var="argument A".
While in Ansbile 2.0, it is now shown as var="'argument A'".
The argument will be added a pair of quotation marks inside the double
quotation marks.
I'm wondering why the difference happened? Which of the two results should
be right?
If this is a bug in Ansible2.0, can I expect that it will be fixed?
Here is the sample module. And results in both version of Ansible.
=========================================================================================
*<< sample module >>*
[root@ansible ansible]# cat library/hello.sh
#!/bin/bash
source ${1}
echo ${msg1} ${msg2} >&2
echo -n "{\"rc\": 0 ,\"changed\": true ,\"msg\": {\"msg1\": \"${msg1}\"
,\"msg2\": \"${msg2}\"}}"
exit 0
[root@ansible ansible]# cat hello.yml
#
# ansible loop test
#
---
- hosts: localhost
tasks:
- hello.sh: msg1="hello_world" msg2="hello world"
register: results
- debug: var=results.msg
[root@ansible ansible]#
=========================================================================================
*<< ansible1.9 >>*
[root@ansible ansible]# ansible --version
ansible 1.9.4
configured module search path = None
[root@ansible ansible]# ANSIBLE_KEEP_REMOTE_FILES=True ansible-playbook
hello.yml
PLAY [localhost]
**************************************************************
GATHERING FACTS
***************************************************************
ok: [localhost]
TASK: [hello.sh msg1="hello_world" msg2="hello world"]
************************
changed: [localhost]
TASK: [debug var=results.msg]
*************************************************
ok: [localhost] => {
"var": {
"results.msg": {
"msg1": "hello_world",
"msg2": "hello world"
}
}
}
PLAY RECAP
********************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0
[root@ansible ansible]# ls ~/.ansible/tmp/*
/root/.ansible/tmp/ansible-tmp-1458001760.22-38044543181627:
setup
/root/.ansible/tmp/ansible-tmp-1458001761.76-64661619210720:
arguments hello.sh
[root@ansible ansible]# cat
~/.ansible/tmp/ansible-tmp-1458001761.76-64661619210720/arguments
msg1="hello_world" msg2="hello world"
[root@ansible ansible]#
=========================================================================================
*<< ansible2.0 >>*
[root@ansible ansible]# ansible --version
ansible 2.0.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
[root@ansible ansible]# ANSIBLE_KEEP_REMOTE_FILES=True ansible-playbook
hello.yml
PLAY
***************************************************************************
TASK [setup]
*******************************************************************
ok: [localhost]
TASK [hello.sh]
****************************************************************
changed: [localhost]
TASK [debug]
*******************************************************************
ok: [localhost] => {
"results.msg": {
"msg1": "hello_world",
"msg2": "'hello world'"
}
}
PLAY RECAP
*********************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0
[root@ansible ansible]# ls ~/.ansible/tmp/*
/root/.ansible/tmp/ansible-tmp-1458002520.4-267495855326593:
setup
/root/.ansible/tmp/ansible-tmp-1458002521.22-261328355840387:
args hello.sh
[root@ansible ansible]# cat
/root/.ansible/tmp/ansible-tmp-1458002521.22-261328355840387/args
msg1="hello_world" msg2="'hello world'"
[root@ansible ansible]#
[root@ansible ansible]#
*※msg2 is added a pair of quotation marks!!*
=========================================================================================
Best regards!!
--
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/40856b44-433b-4141-91b3-71be375367d7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.