ansible 操作日期格式的文件

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....

答案1

設定一個變數,然後與 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') }}"

答案2

從 2.4 開始,您也可以使用strftime過濾器 (文件):

# 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

答案3

你可以試試..

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

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

然後在需要的地方加入變數。

相關內容