반응형
다수의 host 서버를 관리해야 할 때 각 서버에 똑같은 파일을 생성 및 복사하고, 프로그램을 다운받아야해 번거롭기 그지없다. 하지만 Ansible Playbook을 이용해 하나의 스크립트에 명령어를 적고, 그 명령어가 전체 host에 동일하게 적용되도록 할 수 있다.
1. 파일 복사
1-1) 새로운 playbook 스크립트 파일을 만든다.
vi playbook-sample1.yml
1-2) 파일에 내용을 채워준다.
- name: Ansible Copy Example Local to Remote
hosts: devops
tasks:
- name: copying file with playbook
copy:
src: ~/sample.txt
dest: /tmp
owner: root
mode: 0644
~ (틸다)는 root 경로 의미이다.
이전에 hosts 파일에 관리 host로 devops 그룹을 만들었다.
devops 그룹에 포함된 host들에게 tmp 경로로 sample.txt를 복사할 것이라는 의미이다.
sample.txt는 미리 만들어둔 파일이다. (별 내용 없음!)
1-3) 전체 host에게 파일을 복사시킨다.
1-1)에서 만들어둔 playbook을 실행하여 sample.txt 파일을 전체 host에게 tmp폴더 경로에 복사시킬 것이다.
ansible-playbook playbook-sample1.yml
2. 프로그램 다운로드
1-1) 새로운 playbook 스크립트 파일을 만든다.
vi playbook-sample2.yml
1-2) 파일에 내용을 채워준다.
---
- name: Download Tomcat9 from tomcat.apache.org
hosts: devops
tasks:
- name: Create a Directory /opt/tomcat9
file:
path: /opt/tomcat9
state: directory
mode: 0755
- name: Download Tomcat using get_url
get_url:
url: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz
dest: /opt/tomcat9
mode: 0755
checksum: sha512:https://downloads.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz.sha512
url의 톰캣 프로그램을 전체 host에 다운로드 시킬 것이다.
1-3) 전체 host에 프로그램을 다운로드 시킨다.
ansible-playbook playbook-sample2.yml
퇴근하고 뒹굴거리다 강의 하나 듣고, 블로그 쓸 생각하니
투머치하게 적으면 오래가지 못할거란 생각을 해서
간단하게 정리하는 방식으로 전환했다!
반응형
'INFRA > CICD' 카테고리의 다른 글
minikube - 쿠버네티스 (1) | 2024.07.22 |
---|---|
Jenkins + Ansible Playbook (0) | 2024.07.06 |
Docker 컨테이너로 Ansible 실행 (0) | 2024.06.30 |
[젠킨스 설정] 다른 서버에 war 파일 복사 후 기동 (0) | 2024.06.24 |
젠킨스 SSH Server 설정 (0) | 2024.06.23 |