본문 바로가기
AWS/Part 4. Ch04 앤서블을 이용한 서버 형상 관리

CH04_04. 플레이북 (Playbook)

by Engineer-Lee 2022. 6. 16.
반응형

이번 시간에는 앤서블 플레이북에 대해 알아보자

플레이북은 yaml파일로 이루어져 있다. 먼저 yaml파일의 구문을 알기 위해 syntax.yaml 파일을 보자

https://github.com/tedilabs/fastcampus-devops/tree/main/2-ansible/03-playbook

 

GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료

🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.

github.com

 

플레이란 특정 호스트 목록에 대해서 수행되는 작업 목록이다.

 

그리고 플레이북이란 플레이의 집합이다.

 

루트 원소가 array로 정의되어 있고 첫 번째 플레이로 Play 1이 있고 그 밑에는 Play 2가 있다. 

플레이들은 절차를 가지고 정의된 순서대로 실행된다.

hosts 키로 ubuntu 그룹을 명시하고 있고

tasks 키로 작업 목록을 정의하고 있다.

애드혹 명령어로는 한 명령어로 하나의 단일 작업을 수행했지만 플레이북을 이용하면 여러 호스트에 대해 여러 작업을

순서대로 실행시킬 수 있는 것이다.  

Play 1을 보면 ubuntu 호스트에 대해 task 1로 command 모듈, task 2로 script 모듈, task 3로 apt 모듈을 이용해서 패키지 설치,  task 4로 service 모듈로 서버를 실행시키고 있다.

 

 

 

 

 

그다음으로 install-nginx.yaml파일의 플레이북을 보자

이 플레이북에서는 두 가지 플레이가 진행되는데

첫 번째 플레이는 우분투에 nginx를 설치하고 두 번째 플레이는 아마존 리눅스에 nginx를 설치한다.

각각에 맞는 호스트를 명시하고 패키지 설치를 위해서는 root 권한이 필요하므로 become: true를 명시했다.

첫 번째 task로는 apt(우분투)/yum(아마존 리눅스) 모듈을 통해 nginx가 존재하도록 구성하는 작업이고

두 번째 task는 service 모듈을 이용해서 nginx 서비스를 동작시킨다.

 

이때 아마존 리눅스의 yum 패키지 매니저에서는 nginx를 바로 설치할 수 없고 레포지토리를 추가해야 하는데

아마존 리눅스에서는 amazon-linux-extras enable nginx1라는 명령어로 nginx를 활성화해야 한다.

 

이제 앤서블 플레이북을 실행해보자

앤서블 플레이북 명령어는 ansible-playbook 명령어를 사용한다.

 

 

이렇게 nginx가 설치됐다.

잘 실행하는지 알아보기 위해 동일한 인벤토리에 애드혹 명령어로 로컬 호스트에 http 요청을 날려보자

 

 

 

 

이번에는 nginx를 제거하는 uninstall-nginx.yaml 플레이북을 보자

첫 번째 task는 state: stopped로 nginx 서비스를 멈추고

두 번째 task는 state: absent를 통해 nginx를 제거하는 걸 볼 수 있다.

 

해당 플레이북을 실행하려면 아래와 같은 명령어를 입력하면 된다..

반응형