Ansible를 사용한 크론 작업 자동화 전문가처럼
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
시스템 관리자 및 DevOps 엔지니어. Ansible을 활용한 자동화 경험이 있는 중급 이상 사용자.
핵심 요약
cron-master
Ansible 역할을 통해 크론 작업을 idempotent 방식으로 관리- 모든 크론 작업을 버전 제어 가능한
crons.j2
템플릿으로 관리 clean.sh.j2
및space.sh.j2
템플릿을 활용한 디스크 정리 및 공간 모니터링 자동화
섹션별 세부 요약
1. 환경 설정 및 의존성 관리
ansible-galaxy init
명령어로cron-master
역할 생성deps.yml
에서bc
,curl
패키지 설치 및cronitor
버전 30.3 강제 설치get_url
및unarchive
모듈을 사용한cronitor
이진 파일 다운로드 및 이동
2. 크론 작업 템플릿 관리
crons.j2
템플릿을 통해 로그 파일 정리 및.gz
파일 삭제 작업 정의crons.yml
에서lookup('template')
을 사용해 템플릿 내용을 동적으로 로드minute
,hour
,day
,month
,weekday
,job
등의 파라미터를 자동 추출 및 적용
3. 정리 및 공간 모니터링 작업
clean.yml
과space.yml
에서clean.sh.j2
및space.sh.j2
스크립트 실행main.yml
에서 의존성 설치, 스크립트 배포, 크론 작업 추가를 통합 실행
4. 플레이북 실행 및 테스트
cron-master.yml
플레이북을 통해 모든 호스트에 역할 적용ansible-playbook -i hosts.ini cron-master.yml
명령어로 실행--tags
옵션으로 특정 태그의 작업만 테스트 가능
결론
- 로컬 VM 또는 컨테이너에서 역할 테스트 후 프로덕션 배포 권장
LiveAPI
를 통해 백엔드 API 문서화 자동화 가능 (추가 도구 활용 예시)