版本一和版本二获取dt变量的方式不通。
版本一(测试调试版本):注意:dt.stdout 标准输出
stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。
--- #固定格式 hosts 192.168.1.233 #定义需要执行主机 remote_user root #远程用户 vars#定义变量 http_port 8088 #变量 dt date '+%m-%d' -d '-2 day' tasks#定义一个任务的开始 name 获取时间 shell date '+%m-%d' -d '-3 day' register dt name 查找文件 find paths /tools/cron_backup/ patterns"*{{ dt.stdout }}.tar.gz" recurseno register file_2_fetch name 获取文件 fetch src"{{ item.path }}" # dest: /tools/all_cron_backup/ dest /tools/lxjtest/ flatyes with_items"{{ file_2_fetch.files }}" name 显示 shell echo "1:" file_2_fetch.files >> /root/lxjtest.txt && echo "2:" dt.stdout >> /root/lxjtest.txt
方式二:命令行-e 指定变量
ansible-playbook /etc/ansible/playbook/get_all_cron_bak.yml -e dt=`date '+%m-%d' -d '-3 day'` -e localpath= $localpath`date +%Y-%m-%d`
--- #固定格式 hosts idc #定义需要执行主机 remote_user root #远程用户 vars#定义变量 tasks#定义一个任务的开始 name 查找文件 find paths /tools/cron_backup/ patterns"*{{ dt }}.tar.gz" recurseno register file_2_fetch name 获取文件 fetch src"{{ item.path }}" # dest: /tools/all_cron_backup/ dest"{{ localpath }}" flatyes with_items"{{ file_2_fetch.files }}"