[Ansible] 앤서블 학습 - 원격 서버에 파일 복사
- IT/ansible
- 2020. 7. 25.
반응형
반응형
앤서블을 이용하여 로컬 서버의 파일을 원격 서버의 파일로 복사하는 방법에 대해 확인해 보겠습니다.
원격 서버를 hosts 파일에 등록
hosts 파일에 파일을 copy 하려는 대상 서버들을 등록해 줍니다.
[root@k8s-master-1 TASK]# cat hosts
k8s-worker-1
yml 파일 생성
yml 파일 생성 단계입니다.
파일 복사에는 여러 가지 방법이 있는데요 이 예제에서는 copy 모듈을 사용하였습니다.
간단하게 src(출발지) dest(목적지) 파일 위치만 입력해 주면 됩니다.
[root@k8s-master-1 TASK]# cat copy_file.yml
---
- hosts: all
remote_user: root
tasks:
- name: store file to remote server
copy:
src: /tmp/sample.txt
dest: /root/sample.txt
실행하기 전에 /tmp/ 경로에 sample.txt 파일을 만들어줍니다.
[root@k8s-master-1 TASK]# echo have a nice day > /tmp/sample.txt
yml playbook 실행
copy 확인
원격 서버에 이상 없이 복사가 된 것을 확인하실 수 있습니다.
yml playbook 수정 및 playbook 재실행
이번에는 backup 설정을 추가해서 실행해 보겠습니다.
[root@k8s-master-1 TASK]# cat copy_file.yml
---
- hosts: all
remote_user: root
tasks:
- name: store file to remote server
copy:
src: /tmp/sample.txt
dest: /root/sample.txt
backup: yes
sample.txt 파일을 좀 수정하고 다시 playbook을 실행합니다.
[root@k8s-master-1 TASK]# echo god night >> /tmp/sample.txt
[root@k8s-master-1 TASK]# ansible-playbook -i ./hosts copy_file.yml
copy 확인
sample.txt 파일이 수정이 되었고, 파일 리스트를 보시면 기존의 smaple.txt 파일 이름이 조금 변형되어 백업이 된 것을 보실 수 있습니다. 원격 서버의 중요 설정 파일을 배포하실 때 사용하시면 유용할 것 같네요
추가
추가로, 아래와 같이 owner, group, mode 설정으로 파일의 권한을 설정할 수 있고,
---
- hosts: all
remote_user: root
tasks:
- name: store file to remote server
copy:
src: /tmp/sample.txt
dest: /root/sample.txt
backup: yes
owner: root
group: root
mode: '0644'
여러 파일 copy가 필요하신 경우 아래처럼 with_items를 사용하시면 됩니다.
---
- hosts: all
remote_user: root
tasks:
- name: store file to remote server
copy:
src: "/tmp/{{ item }}"
dest: /tmp/
with_items:
- a.txt
- b.txt
- c.txt
반응형
'IT > ansible' 카테고리의 다른 글
[Ansible] 설정파일 라인 변경 (0) | 2020.12.22 |
---|---|
[Ansible] 앤시블 AWX 설치(on centos7) (0) | 2020.10.29 |
[Ansible] yum module 예제 정리 (0) | 2020.08.20 |
[Ansible] 앤서블 학습 - 2. inventory(INI) (0) | 2020.05.10 |
[Ansible] 앤서블 학습 - 1. 설치 및 기본 명령어 (0) | 2020.05.09 |