Ansible 템플릿과 함께 쉘 와일드카드 사용

Ansible 템플릿과 함께 쉘 와일드카드 사용

src쉘 글로빙을 사용하여 템플릿 모듈 에 여러 파일을 지정하는 방법입니까 ?

- name: Copy keys    
  template:    
    src: "{{ item }}"/RPM-*     
    dest: /etc/pki/{{ item }}/
  loop:
    - gf

답변1

Ansible을 사용할 수 있습니다fileglob찾다가서 이것을 해보세요. 패턴을 모듈 의 매개변수 with_fileglob에 넣는 대신 다음과 같이 패턴을 매개변수 목록으로 전달할 수 있습니다 .srctemplate

- hosts: localhost
  gather_facts: false
  tasks:
    - name: Copy keys
      template:
        src: "{{ item }}"
        dest: "./pki/{{ '/'.join(item.split('/')[-2:]) }}"
      with_fileglob:
        - "gf/RPM-*"
        - "xz/RPM-*"

이렇게 하면 파일이 에서 복사 ./pki/gf/RPM-...됩니다 ./pki/xz/RPM-.... 이 표현식은 '/'.join(item.split('/')[-2:])유사한 경로 이름 /some/path/to/gf/RPM-foo을 가져와서 gf/RPM-foo.

먼저 대상 디렉터리가 있는지 확인해야 하며, 그러기 전에 디렉터리를 생성하기 위한 별도의 작업을 수행해야 할 수도 있습니다.

관련 정보