Dimitri,

    - shell: "su - root"
      args:
        warn: false
    - shell: '/scripts/dnscopy.pl -f'
      register: (result)

You are running 2 separate shells. First shell runs su - root then exits -
this is not doining anything. Then secon task runs in a new shell, you are
not leveraging the previous "su - root". You are using become: yes, and
that should be sufficient to elevate task's rights, so the second task
should work anyway. Try this:
Remove
- shell: "su - root" task
replace it with:
 - shell: "whoami"
   register: who
 - debug: var=who
 to check under which user is your script executing. If it's not 'root'
then you messed up, if it is 'root' but your script still fails, you have a
problem with your script.

Piotr


pon., 3 gru 2018 o 23:22 Dimitri Yioulos <dyiou...@gmail.com> napisaƂ(a):

> OK:
>
> ---
>> - hosts: all
>>   gather_facts: false
>>   become: yes
>> #  become_user: root
>> #  become_method: su
>>   tasks:
>>     - shell: "su - root"
>>       args:
>>         warn: false
>>     - shell: '/scripts/dnscopy.pl -f'
>>       register: (result)
>>     - debug:
>>         var: (result)
>>         verbosity: 2
>
>
> *become_user and become_method are commented out in favor of shell: "su -
> root" because using the former causes a timeout error, But that's another
> issue.
>
> Output of play:
>
> TASK [command]
> ***************************************************************************************************************************************************************************
> fatal: [admin1]: FAILED! => {"changed": true, "cmd": "/scripts/dnscopy.pl
> -f", "delta": "0:00:01.425695", "end": "2018-12-03 17:13:56.113927",
> "failed": true, "rc": 2, "start": "2018-12-03 17:13:54.688232", "stderr":
> "Can't exec \"rndc\": No such file or directory at /scripts/dnscopy.pl
> line 296.\nrndc -s dns1 reload failed: No such file or directory at
> /scripts/dnscopy.pl line 296.", "stderr_lines": ["Can't exec \"rndc\": No
> such file or directory at /scripts/dnscopy.pl line 296.", "rndc -s dns1
> reload failed: No such file or directory at /scripts/dnscopy.pl line
> 296."], "stdout": "", "stdout_lines": []}
>
> without the -f switch, the play completes successfully.
>
>
> On Monday, December 3, 2018 at 11:44:08 AM UTC-5, Dimitri Yioulos wrote:
>>
>> Hey, all.
>>
>> I need to run a script residing on the remote machine with a switch, as
>> in "/scripts/myscript -f" (it must be executed by root).  I'm using the
>> shell module, but can find no way to add the switch without the play
>> failing.  Help would be appreciated.
>>
>> Dimitri
>>
> --
> 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-project+unsubscr...@googlegroups.com.
> To post to this group, send email to ansible-project@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/ef043055-1226-4a41-862f-2a3c66097b4c%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/ef043055-1226-4a41-862f-2a3c66097b4c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CACHJvyM0V_ubpG306Zxd3P4W76ZwDOmLT6WbrnWMpkCdHM5hNw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to