반응형
ansible로 원격 서버의 파일을 로컬(ansible 수행하는 서버)에 복사하는 방법을 기술합니다.
우선 제가 개발한 ansible playbooks 구조는 아래와 같습니다.
├── mwav-db-backup-playbooks_v0.2 │ ├── group_vars │ │ ├── mwavtst.yml │ │ └── staging.yml │ ├── roles │ │ ├── mwavtst-db │ │ │ └── tasks │ │ │ ├── full_backup.yml │ │ │ └── main.yml │ │ └── staging-db │ │ └── tasks │ │ ├── base_backup.yml │ │ ├── incremental_backup.yml │ │ ├── init.yml │ │ └── main.yml │ ├── backup_final.yml │ ├── backup_mwavtst.yml │ ├── backup.retry │ ├── backup.yml │ ├── hosts │ ├── mysqldump_restore.yml │ └── test.yml |
roles/mwavtst-db/tasks/full_backup.yml 에 원격 서버의 파일을 로컬에 복사하는 task를 작성했습니다. ansible의 fetch 모듈을 사용합니다.
- name: Send mwavtst-db data to Stg-Server
fetch:
src: "/home/user/mwavtst/db_bak/mwavtst_{{ cur_date }}.sql"
dest: "{{ mwav_tst_backup_dir }}"
flat: yes
- src, dest 에 ansible 변수를 사용하려면 양쪽에 "" 붙혀야 합니다.
- dest 경로에 src 파일명으로만 복사하기 위해서 flat: yes 를 추가합니다. 단, mwav_tst_backup_dir 변수(디렉토리경로) 끝에 '/'를 붙혀야 합니다. flat 을 추가하지 않으면 dest 경로에 src 경로전체가 복사됩니다.
- 예를 들어, dest 경로가 /home/sunny면 복사된 파일은 /home/sunny/<원격서버 호스트네임>/home/user/mwavtst/db_back/mwavtst_20200418.sql 에 위치합니다.
참고로
로컬에 있는 파일을 다른 서버에 보낼 때는 copy 모듈을 사용합니다.
- name: Copy Ranger Admin Init
copy: src=ranger-admin-initd dest=/usr/lib/ranger-admin/ews/ranger-admin-initd mode=0755
when: ansible_fqdn in groups['ranger_admin']
반응형
'기초 튼튼탄탄탄 > DevOps' 카테고리의 다른 글
[docker] 실행중인 도커 container에 포트 추가하기 (2) | 2020.04.20 |
---|---|
[ansible] How to set environment variables (4) | 2020.04.18 |
docker로 hadoop 클러스터 (우분투 기반) 구축하기 (4) | 2020.04.10 |
[docker] 다른 host에서 도커 컨테이너로 접속하는 방법 (6) | 2020.01.12 |
VMware ESXi - VM 복제하는 방법 (4) | 2019.12.10 |
댓글