我创建了这个简单的脚本来调整所有机器上的时区,称为 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') }}"
您应该考虑只使用脚本模块来为您进行复制和执行。
之后,您需要使用 task 参数
register
将结果存储到变量中。存储结果后,您可以将其与debug
任务一起显示。PS有一个时区模块。所以你可以使用它而根本不必使用脚本。