이번 시간에는 앤서블에서 가장 많이 사용되는 모듈에 대해 알아보자
모듈은 task에서 호출하는 함수와 같다. 따라서 앤서블에서 제공하는 built-in 모듈과 커뮤니티 모듈들이 다양하다.
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 모듈을 사용했다.
'AWS > Part 4. Ch04 앤서블을 이용한 서버 형상 관리' 카테고리의 다른 글
CH04_07. 변수 (Variables) (0) | 2022.06.17 |
---|---|
CH04_06. 핸들러 (Handler) (0) | 2022.06.17 |
CH04_04. 플레이북 (Playbook) (0) | 2022.06.16 |
CH04_03. 애드혹 명령어 (Ad-hoc Command) (0) | 2022.06.10 |
CH04_02. 인벤토리 (Inventory) (0) | 2022.06.10 |