I create this simple script which adjust timezone on all machines, called date.sh
#!/bin/sh
# Exit at first error
set -e
# Set the localtime
timedatectl set-timezone Europe/Zurich
# Check date
date
I run it with ansible
- name: Transfer and execute a script.
hosts: all
become_user: root
tasks:
- name: Transfer the script
copy: src=date.sh dest=/tmp/date.sh mode=0700
- name: Execute the script
command: sh /tmp/date.sh
Works, but how to see output on stdout? I have tried this, but give me error.
- name: Transfer and execute a script.
hosts: all
become_user: root
tasks:
- name: Transfer the script
copy: src=date.sh dest=/tmp/date.sh mode=0700
- name: Execute the script
command: sh /tmp/date.sh
debug:
msg: "{{ test.stdout.split('\n') }}"
You should consider just using the script module which will do the copy and execution for you.
After that you need to use the task argument
register
to store the results into a variable. Once the results are stored you can display it with adebug
task.P.S. There is a timezone module. So you could use that and not have to use a script at all.