Ansible Playbook 모듈화(Role)

안녕하세요. 베스핀글로벌 DevOps실 윤영기 님이 작성해 주신 글입니다. 이번 글에서는 Ansible Playbook을 모듈화하는 방법에 대해서 알아보겠습니다. 보시고 궁금하신 사항이 있으시면 댓글 달아주시기 바랍니다. 🙂

이전 포스팅에서는 VPC 생성부터 EC2 생성까지 하나의 Playbook으로 작성하였는데, 하지만 코드가 많아질수록 가독성도 떨어지고 재활용률도 떨어질 수밖에 없습니다.

Ansible은 Role이라는 개념을 이용하여 쉽게 모듈화하는 것이 가능합니다.

또한, 변수도 별도의 yaml 파일로 분리하여 관리가 가능하기 때문에 매우 심플한 Playbook을 작성할 수 있습니다.

1. 변수 파일 생성

적당한 파일 명으로 yaml 파일을 만들고 아래와 같이 작성한 후 적당한 경로에 저장한다.

(예 : group_vars/var.yaml)

2. role 파일 생성

  • role 파일은 반드시 정해진 규칙에 맞는 파일 명과 지정된 경로에 저장한다.
    • 파일명 : main.yaml
    • 저장경로 : roles/{role name}/tasks/main.yaml
  • vpc를 생성하는 main.yaml 파일을 아래와 같이 작성한 후 다음 경로에 저장한다. (roles/vpc/tasks/main.yaml)
  • 나머지 role들도 동일하게 만든다.

3. Ansible이 실행할 Playbook 생성

  • 마지막으로 Ansible이 실행할 playbook을 아래와 같은 내용으로 생성한다.

감사합니다 🙂

Written by 윤 영기 / Youngki Yoon

Software Engineer

Leave a Comment