ansible manipulate file with a date format
In ansible, I would like to manipulate files/directories/archive that are composed or to composed like this:
How would I do that. It seem Ansible is not able to handler that. (I doubt). So, what I do wrong ?
Ex:
- name: create file with a date in name
file: path=/path/somefile.`date +%y_%m_%d`
- name: unzip a file
unarchive: path=/path/zomezip.`date +%y_%m_%d`.tar.gz bla bla....
Set a variable, then use it with Ansible's Jinja2 templating system (it looks like you're trying to do PHP with the dot operator and the backticks)
vars:
date: "{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
tasks:
- name: create file with a date in name
file: path="/path/somefile{{ date }}"
Or use the lookup itself in the templates:
- name: create file with a date in name
file: path="/path/somefile{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
Starting with 2.4, you can also use the strftime
filter (doc):
# Display year-month-day
{{ '%Y-%m-%d' | strftime }}
# Display hour:min:sec
{{ '%H:%M:%S' | strftime }}
# Use ansible_date_time.epoch fact
{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}
# Use arbitrary epoch value
{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01