이번 시간에는 앤서블 플레이북에 대해 알아보자
플레이북은 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를 제거하는 걸 볼 수 있다.
해당 플레이북을 실행하려면 아래와 같은 명령어를 입력하면 된다..
'AWS > Part 4. Ch04 앤서블을 이용한 서버 형상 관리' 카테고리의 다른 글
CH04_06. 핸들러 (Handler) (0) | 2022.06.17 |
---|---|
CH04_05. 모듈 (Module) (0) | 2022.06.16 |
CH04_03. 애드혹 명령어 (Ad-hoc Command) (0) | 2022.06.10 |
CH04_02. 인벤토리 (Inventory) (0) | 2022.06.10 |
CH04_01. 앤서블 소개 (0) | 2022.06.09 |