이전에 JBoss 6.2 EAP Patch에 대한 포스팅을 한 바 있습니다.
/index.php/jboss/283-jboss-6-2-eap-patch-apply
이번에는 Chef의 cookbook을 이용하여 JBoss 6.2 EAP Patch를 적용하는 과정을 구현해보고자 합니다.
전제사항
- JBoss EAP 6.2.0까지는 이미 설치되어 있다.
- 6.2.1부터 6.2.4까지의 패치를 순서대로 적용한다.
- 패치 파일은 cookbook에서 접근 가능한 저장소(Repository)에 준비되어 있다.
구현 흐름
- Repository로부터 패치 파일을 다운로드한다.
- 각 패치 버전에 대해 “JBoss 기동 → Patch 적용 → JBoss 중지” 과정을 반복한다.
- 패치는 누적 순서를 고려하여 6.2.1, 6.2.2, 6.2.3, 6.2.4 순서로 적용한다.
Chef recipe에서는 이 흐름을 리소스 단위로 나누어 작성하는 것이 좋습니다. 예를 들어 패치 파일 다운로드는 remote_file, JBoss 기동과 중지는 execute 또는 서비스 리소스, 패치 적용은 JBoss CLI를 호출하는 execute 리소스로 구성할 수 있습니다.
# 예시 흐름
# 1. patch 파일 다운로드
# 2. JBoss 기동
# 3. jboss-cli를 이용해 patch apply 실행
# 4. JBoss 중지
# 5. 다음 patch 버전에 대해 반복
주의할 점
- 패치 적용은 순서가 중요하므로, cookbook에서도 버전 목록을 배열로 관리하여 순차 실행되도록 구성한다.
- Chef는 반복 실행될 수 있으므로, 이미 적용된 패치를 다시 적용하지 않도록 확인 로직을 두는 것이 좋다.
- 패치 적용 후에는 JBoss CLI의 패치 정보 조회 결과나 서버 로그를 통해 정상 적용 여부를 확인한다.
테스트할 때는 먼저 개발 또는 검증 환경에서 cookbook을 실행하고, 각 단계마다 패치 파일 다운로드 여부, JBoss 기동 상태, 패치 적용 결과, 종료 처리가 정상적으로 수행되는지 확인합니다. 특히 Chef를 다시 실행했을 때 동일 패치가 중복 적용되지 않는지 확인하면 운영 환경 적용 시 문제를 줄일 수 있습니다.