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

CH04_05. 모듈 (Module)

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

이번 시간에는 앤서블에서 가장 많이 사용되는 모듈에 대해 알아보자

모듈은 task에서 호출하는 함수와 같다. 따라서 앤서블에서 제공하는 built-in 모듈과 커뮤니티 모듈들이 다양하다.

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html#plugins-in-ansible-builtin

 

Ansible.Builtin — Ansible Documentation

© Copyright Ansible project contributors. Last updated on Jun 06, 2022.

docs.ansible.com

공식 문서에서 여러 모듈에 대한 파라미터 정보가 있고 본인의 유즈케이스와 유사한 예시를 사용하면 유용하다.

 

 

 

이제 실습 파일을 보자

https://github.com/tedilabs/fastcampus-devops/tree/main/2-ansible/04-module

 

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

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

github.com

 

먼저 example.yaml 파일을 보자

task에서 첫 번째 user 모듈은 사용자관리(생성, 수정, 삭제)를 한다.

여기서 특이 사항은 하나의 문자열 내의 키 밸류 형식으로 두 가지 속성 값을 입력했다.

user모듈의 값으로 name은 생성, 수정, 삭제할 사용자의 이름이다. 

shell은 사용할 shell을 선택할 수 있도록 한다. 여기서는 bash shell을 사용하도록 설정했다.

 

또한 단일 명령어에서 task command 모듈을 호출할 수도 있다.(free_form)

 

이번에는 lineinfile 모듈로 설정 파일을 관리할 때 유용하다.

이 모듈은 설정 파일(resolv.cof)에서 해당 라인('nameserver 8.8.8.8')이 있는지 확인하고 없으면 라인을 추가한다.

 

 

apt 모듈은 패키지를 설치하게 해준다. pkg 파라미터를 이용하면 한번에 여러 패키지를 설치할 수 있다.

 

 

다음으로 synchronize 모듈에 src는 로컬 데스크탑에 위치한 디렉토리이고 dest는 원격 호스트에 위치한 디렉토리이다.

따라서 synchronize 모듈은 src와 dest를 동기화한다. 

delete는 원격 디렉토리에 파일이 삭제되어야 할 경우 쓰인다.

 

 

 

 

다음으로 copy 모듈을 사용했다.

copy 모듈은 src에서 dest로 파일을 복사한다.

 

 

마지막으로 service 모듈을 사용했다.

반응형