날짜 형식으로 파일 조작 가능

날짜 형식으로 파일 조작 가능

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

그런 다음 필요한 곳에 변수를 추가하십시오.

관련 정보