我正在进行数据库转储,如下所示:
- name: create backup of the EMS database
shell: " mysqldump --single-transaction --triggers --routines --events --hex-blob --complete-insert -h {{groups.db_name[0]}} -u {{ db_user }} -p{{ db_password }} {{ db_name }} > {{ vars.inventory_dir }}/../{{ db_name}}_backup-{{ ansible_date_time.iso8601 }}.sql"
register: db_backup
现在,如果您注意到末尾的shell命令,我将转储mysql,并将日期时间附加为{{ db_name}}_backup-{{ ansible_date_time.iso8601 }}.sql
我怎么能在下一部剧中只使用这个动态的部分呢?
我建议您首先将文件名存储为一个事实:
- set_fact:
mysql_dump_file: "{{ db_name }}_backup-{{ ansible_date_time.iso8601 }}.sql"
然后在转储任务和以下所有需要文件名的任务中,使用该事实:{{ mysql_dump_file }}
- name: create backup of the EMS database
shell: "mysqldump --single-transaction --triggers --routines --events --hex-blob --complete-insert -h {{ groups.db_name[0] }} -u {{ db_user }} -p{{ db_password }} {{ db_name }} > {{ vars.inventory_dir }}/../{{ mysql_dump_file }}"
register: db_backup