I'm running some sudo commands via the command module.  In one of the 
commands, when I use a variable to specify the path to a script there is an 
error during the variable substitution and the command fails.  In some 
commands, the variable substitution works while in one it doesn't.  I have 
not determined what is different between the examples that work and those 
that do not.

Here is more detail:

When I run a playbook containing the following two commands
command: "sudo -u wasadmin {{ was_install_dir }}/profiles/{{ 
was_profile_name }}/bin/stopServer.sh {{ was_server_name }}"
command: "sudo -u wasadmin /opt/IBM/WebSphere/UpdateInstaller/update.sh 
-silent -options {{ was_maintenance_response_file }}"

... both commands run successfully on the remote host.  The output of the 
playbook shows that the correct commands are run:
TASK: [worklight_maintenance | Stop the application server] 
*******************
<remote.host.name> REMOTE_MODULE command sudo -u wasadmin 
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh server1

TASK: [worklight_maintenance | Apply WAS maintenance] 
*************************
<remote.host.name> REMOTE_MODULE command sudo -u wasadmin 
/opt/IBM/WebSphere/UpdateInstaller/update.sh -silent -options 
/opt/build/maintenance/was.maintenance.rsp

But when I change the second command to also use a variable in place of the 
full path to the script, like so (see highlighed change):
command: "sudo -u wasadmin {{ was_install_dir }}/profiles/{{ 
was_profile_name }}/bin/stopServer.sh {{ was_server_name }}"
command: "sudo -u wasadmin {{ was_updi_update_sh }} -silent -options {{ 
was_maintenance_response_file }}"

... the second command doesn't run successfully.  In the playbook output we 
see that the substitution of the variable {{ was_updi_update_sh }} has gone 
terribly wrong as shown by the highlighted section.
<ecwlapp1qa4.hhgregg.com> REMOTE_MODULE command sudo -u wasadmin 
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh server1
<ecwlapp1qa4.hhgregg.com> REMOTE_MODULE command sudo -u wasadmin {'invocation': 
{'module_name': u'stat', 'module_complex_args': {}, 'module_args': 
u'path=/opt/IBM/WebSphere/UpdateInstaller/update.sh'}, 'stat': {'uid': 522, 
'exists': True, 'woth': False, 'mtime': 1442612966, 'inode': 5931018, 
'isgid': False, 'size': 1286, 'isuid': False, 'isreg': True, 'pw_name': 
'wasadmin', 'gid': 522, 'ischr': False, 'wusr': True, 'xoth': True, 'rusr': 
True, 'nlink': 1, 'issock': False, 'rgrp': True, 'gr_name': 'wasadmin', 
'path': '/opt/IBM/WebSphere/UpdateInstaller/update.sh', 'xusr': True, 
'atime': 1456861468, 'md5': '142ed49388e43e9f2a7174e9f0974809', 'isdir': 
False, 'ctime': 1442612966, 'isblk': False, 'wgrp': False, 'xgrp': True, 
'dev': 64773, 'roth': True, 'isfifo': False, 'mode': '0755', 'checksum': 
'3f15c2e57403d7d38d5ab5e1111fbc6b3f9c62e5', 'islnk': False}, 'changed': 
False} -silent -options /opt/build/maintenance/was.maintenance.rsp


The variables are all defined in the same way.  They are defined in a file 
like so:
-sh-4.1$ cat roles/worklight_maintenance/vars/worklight.yml
---
was_updi_update_sh: /opt/IBM/WebSphere/UpdateInstaller/update.sh
was_install_dir: /opt/IBM/WebSphere/AppServer
was_profile_name: AppSrv01
was_server_name: server1
-sh-4.1$

The file with the variables is included in the tasks.yml file like so:
- name: Include variables
  include_vars: ../vars/worklight.yml


The controller is a RHEL v6.3 host running Ansible v1.9.4

Should I open a bug in GitHub?

-- 
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/93ce5512-44b8-41ca-894c-fdfdf087adc3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to