출처 : 앤서블로 시작하는 인프라 자동화, https://www.youtube.com/watch?v=NKVhB7yiDVw
첫 번째 플레이북 작성하기
- 플레이북은 YAML 포맷으로 작성된 텍스트 파일이며, 일반적으로 .yml 이라는 확장자를 사용하여 저장된다.
- 플레이북은 대상 호스트나 호스트 집합에 수행할 작업을 정의하고 이를 실행한다. 이때, 특정 작업 단위를 수행하기 위해 모듈을 적용한다.
플레이북 작성하기
cd my-ansible
프로젝트 디렉토리로 이동한다.
vi first-playbook.yml
---
- hosts: all
tasks:
- name: Print message
debug:
msg: Hello Ansible World!
첫 번째 플레이북을 작성한다. vi 에디터를 이용해 first-playbook.yml 파일을 만들고 위 내용을 작성한다.
이 플레이북은 debug 모듈을 사용하여 Hello Ansible World! 라는 문자열을 출력한다.
도커와 쿠버네티스를 만들 때에도 설명했지만 YAML은 들여쓰기를 통해 구분하므로 탭 문자는 쓰지 않는 것이 좋다.
cp first-playbook.yml error.yml
앤서블은 플레이북 실행 시 자체적으로 제공하는 모듈을 사용했는지 그리고 공백은 잘 들여쓰기가 되었는지 확인하기 위해 문법을 체크할 수 있는 옵션을 제공한다.
에러가 발생하는 경우를 확인하기 위해 error.yml 이라는 복사본을 하나 생성하고 vi 에디터로 들여쓰기를 한 군데 일부러 틀리게 만들어두자.
ansible-playbook --syntax-check first-playbook.yml
ansible-playbook --syntax-check error.yml
ansible-playbook 명령어에 --syntax-check 옵션을 추가한 다음 실행할 플레이북 yml 파일명을 입력하면 문법체크를 수행한다.
특별한 오류가 없다면 위 그림의 first-playbook.yml 처럼 나오지만, 만약 오류가 있으면 붉은색 글씨로 어떤 작업에 문법 오류가 있는지 위치를 보여준다.
첫 번째 플레이북 실행하기
- 작성한 플레이북을 실행해본다.
- 플레이북을 실행할 때는 ansible-playbook 명령어를 사용한다.
- 환경 설정 파일(ansible.cfg)가 존재하는 프로젝트 디렉토리 내에서 실행할 경우, ansible-playbook 명령어와 함께 실행하고자 하는 플레이북 파일명을 입력하면 된다.
플레이북 실행하기
ansible-playbook first-playbook.yml
프로젝트 디렉토리에서 ansible-playbook 명령어와 실행하려는 yml 파일명을 입력하면 플레이북을 실행하게 된다.
실행해보면 모든 관리 노드(tnode1, tnode2, tnode3)가 Hello Ansible World! 를 출력하는 것을 확인할 수 있다.
플레이북 실행 점검하기
- --check 옵션을 사용해 플레이북을 실행하기 전에 플레이북의 실행 상태를 미리 점검할 수 있다.
- 이 옵션을 사용하면 앤서블에서 플레이북을 실행해도 관리 대상 호스트는 실제로 변경되지 않고 어떤 내요이 변경될지만 미리 알 수 있다.
vi restart-service.yml
---
- hosts: all
tasks:
- name: Restart sshd service
ansible.builtin.service:
name: sshd
state: restarted
vi 에디터를 사용해 sshd 서비스를 재시작하는 restart-service.yml이라는 파일을 생성한다.
해당 플레이북은 서비스의 상태를 관리하는 데 사용되는 ansible.builtin.service 모듈을 이용하여 서비스를 재시작한다.
ansible-playbook --syntax-check restart-service.yml
문법 체크를 수행한다.
ansible-playbook --check restart-service.yml
--check 옵션을 사용해 플레이북을 실행하기 전에 제대로 실행될지 미리 점검한다.
--check 옵션을 사용하면 앤서블이 플레이북을 실행해도 관리 대상 호스트는 실제로 변경되지 않고 어떤 내용이 변경될지만 미리 알 수 있다.
실행해보면 ssh 서비스가 재시작되어 서비스 상태가 변경될 예정이므로 Restart sshd service 태스크에서 changed 라는 문구를 확인할 수 있다.
ansible-playbook restart-service.yml
--check 옵션을 제거하고 ansible-playbook을 실행한다.
ssh root@192.168.100.5 -p 22
cat /var/log/messages
tnode1-centos 서버에 접속해서 /var/log/messages 를 출력해 실제로 sshd 서비스가 재시작되었는지 확인한다.
앤서블 로그를 확인할 수 있으며 앤서블 로그와 함께 OpenSSH 서비스가 재시작된 것을 확인할 수 있다.
'Study > 앤서블(Ansible)' 카테고리의 다른 글
변수와 팩트 사용하기 - 패스워드 보관 Ansible Vault (0) | 2024.03.18 |
---|---|
변수와 팩트 사용하기 - 변수의 종류와 사용법 (1) | 2024.03.12 |
앤서블 환경 설정 파일 이론 및 앤서블 접근을 위한 SSH 인증구성 (0) | 2024.03.09 |
앤서블 활용 - 인벤토리 이론 및 실습 (0) | 2024.03.09 |
앤서블 실습 환경 준비 (0) | 2024.02.26 |