ansible управляют файлом с форматом даты

В ansible я хотел бы управлять файлами/каталогами/архивом, которые составлены или к составленному как это:

Как я сделал бы это. Кажется, что Ansible не может к обработчику это. (Я сомневаюсь). Так, что я делаю неправильно?

Исключая:

- 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....
7
задан 13 October 2015 в 18:51
3 ответа

Задайте переменную, затем используйте ее с системой шаблонов Ansible Jinja2 (похоже, вы пытаетесь выполнить PHP с помощью оператора точки и обратных кавычек)

vars:
    date: "{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
tasks:
  - name: create file with a date in name
    file: path="/path/somefile{{ date }}"

Или используйте сам поиск в шаблонах:

  - name: create file with a date in name
    file: path="/path/somefile{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
15
ответ дан 2 December 2019 в 23:15

Вы можете попробовать ..

vars: 
  - a_timestamp: "{{ timestamp.stdout }}"

tasks:
  - name: Get a timestamp
    command: date +%Y%m%d%H%M%S
    register: timestamp

затем добавить переменную там, где это необходимо.

0
ответ дан 2 December 2019 в 23:15

Начиная с версии 2.4, вы также можете использовать фильтр strftime ( 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
7
ответ дан 2 December 2019 в 23:15

Теги

Похожие вопросы