OK, that's some useful extra info. I've just had a very quick basic play (I
haven't touched cron in earnest for a long time).
Have you tried echo-ing $z4 and appended to a tmp file to see if there's
anything in it at run time?
I've tried a few variations in a standard user's crontab:
root@DESKTOP-9HGJE25:~# crontab -u wmcdonald -l | grep -v ^#
* * * * * ansible -m setup localhost
* * * * * ~/ansible-test
root@DESKTOP-9HGJE25:~# cat /home/wmcdonald/ansible-test
#!/bin/sh
ansible -m setup localhost
BASIC_VAR=`ansible -m setup localhost`
echo $BASIC_VAR
VERBOSE_VAR=`ansible -vvv -m ping localhost`
echo $VERBOSE_VAR
FILE_OUTPUT=`ansible -m ping localhost`
echo $FILE_OUTPUT >> /tmp/ansible.out
The output from the last set of steps shows:
root@DESKTOP-9HGJE25:~# cat /tmp/ansible.out
localhost | SUCCESS => { "changed": false, "ping": "pong" }
localhost | SUCCESS => { "changed": false, "ping": "pong" }
I did notice from syslog that without an MTA, cron (on Ubuntu, at least) is
throwing away output:
/var/log/syslog:Aug 31 20:09:02 DESKTOP-9HGJE25 CRON[2361]: (CRON) info (No
MTA installed, discarding output)
On Thu, 31 Aug 2023 at 18:57, [email protected] <[email protected]>
wrote:
> See below.
>
> On Thursday, August 31, 2023 at 8:59:57 AM UTC-6 Will McDonald wrote:
>
> This isn't really an Ansible problem per se unless it's *only* ansible in
> a subshell that doesn't run from cron? Have you tested basic cron
> functionality using something simple like this (or something even more
> basic):
>
> #!/bin/sh
> z4=`date +%Y%m%d%H%M`
> touch /tmp/${z4}
>
> And then check to see if that file is created every 30 minutes *does*
> work?
>
>
> Yes, it does. I know the script is running, because it is much elaborate
> than this, creating files, logging, etc.
> It's run is annotated in /var/log/cron. If there was an obvious error,
> like no execute permission, I'd see something in a CMDOUT () message.
> No errors.
> I look at the /var/log/ansible.log, and I see the output I'd like to have,
> in the ansible.log. They are just not being returned
> to the script. It's as if it's a "term" sort of problem. So, in the
> ansible.log, I see something like:
>
> 2023-08-29 17:38:18,067 p=84629 u=root n=ansible | mainmachine | CHANGED |
> rc=0 >>
> 10.10.11.0##255.255.255.0
> 101.133.145.94##255.255.255.255
> .
> .
> .
> and mayhaps a hundred or so more entries.
>
>
>
> First questions that spring to mind are:
>
> - is there anything in the cron log, syslog or journal for the crond
> service?
>
> yes. /var/log/cron records it run. ansible.log shows that ansible is
> called and generates the desired data. It's not being echoed to the stdout
> of the ansible process, it appears.
>
> - is anything else running successfully out of /etc/cron.d / cron.daily
> etc?
>
> Yep. All else seems well with the cron.d stuff.
>
>
> - is crond enabled in whatever init system you're using? (You haven't
> stated which distro?)
>
> I'm running this cron on a AlmaLinux release 8.8 (Sapphire Caracal) OS.
>
>
>
>
>
> On Thu, 31 Aug 2023 at 15:24, Steve Murphy <[email protected]> wrote:
>
> As the subject line says, I can't get this script to run correctly from
> cron.
>
> My cron entry (in a file in /etc/cron.d):
>
> ======================================
>
> # Run the 30-minly job
>
> SHELL=/bin/bash
>
> PATH=/sbin:/bin/:/usr/sbin:/usr/bin:/root
>
> MAILTO=ROOT
>
> */30 * * * * root /root/getlist
>
> ======================================
>
>
> /root/getlist perms a+r, a+x, u+w:
>
> =====================================
>
> #!/bin/bash
>
> z4=`ansible mainmachine -m shell -a "psql -t -Upiquah -c
> \"subnet.ipaddress || '##' || subnet.netmask from subnet order by
> subnet.ipaddress asc;\"" 2>&1 | grep '^ [0-9]'`
>
> echo $z4
>
> =====================================
>
> from which, if you run this "by hand", you'll get some output that looks
> like this:
>
> 19.20.21.22##255.255.255.255 23.24.25.26##255.255.255.255
> 130.140.150.160##255.255.255.254
>
> ... and so forth.
>
> BUT, if executed from cron, $z4 will be empty.
>
>
> What do I need to do to in the cron.d file to make this work well?
>
>
>
> --
>
> --
> 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 view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/33ab4c47-f91e-4587-a5f2-08341ecf4fa5n%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/33ab4c47-f91e-4587-a5f2-08341ecf4fa5n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/CAKtKohTDc-RbNrAq314o5WkCF%2BJA8Z66egiiJpu%2Be9rVteKEZg%40mail.gmail.com.