Я создаю этот простой скрипт, который настраивает часовой пояс на всех машинах, под названием date.sh
#!/bin/sh
# Exit at first error
set -e
# Set the localtime
timedatectl set-timezone Europe/Zurich
# Check date
date
Я запускаю его с помощью 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
Работает, но как увидеть вывод на стандартный вывод? Я пробовал это, но выдает ошибку.
- 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') }}"
Вам следует подумать об использовании модуль сценария который сделает копию и выполнит за вас.
После этого вам нужно использовать аргумент задачи register
для сохранения результатов в переменной. После сохранения результатов вы можете отобразить их с debug
задача.
- name: Transfer and execute a script.
hosts: all
become_user: root
tasks:
- script: date.sh
register: results
- debug:
var: results.stdout
P.S. Eсть модуль часового пояса. Таким образом, вы можете использовать это и вообще не использовать скрипт.