윈도우 업데이트처럼 CentOS 6에도 yum-cron
이라는 서비스가 있습니다. yum update -y
를 cron
으로 돌리는 것과 유사하다고 보면 됩니다. 이메일 통지라던가 몇 가지 기능이 추가된 정도입니다. 자동으로 패키지를 업데이트하면 버그 있는 패키지가 서비스에 적용이 되어서 문제가 발생할 수도 있습니다. 그러므로 자동 업데이트는 개발/스테이지 환경에 적용하면 좋습니다. 이렇게 Stage 환경에 최신 패키지를 유지해 놓으면 Production에 자신있게 보안 또는 패키지 패치를 할 수 있습니다.
리눅스 노드가 여러 대이므로 한대 한대 이렇게 설정할 수는 없고 Puppet을 이용해 yum-cron
을 구성합니다.
- 우선 Puppet forge에서 yum_autoupdate를 찾아서 설치합니다.
puppet module install aco-yum_autoupdate
yum-cron
이 필요한 노드에yum_autoupdate
를 설치하고include ::yum_autoupdate
- hiera를 통해서 각 환경 별로 설정을 달리 합니다.
--- # stage yum_autoupdate::notify_email: true yum_autoupdate::action: 'apply' yum_autoupdate::email_from: "sysadmins+%{::environment}@gmail.com" yum_autoupdate::email_to: "sysadmins+%{::environment}@gmail.com" yum_autoupdate::exclude:
--- # production yum_autoupdate::notify_email: false yum_autoupdate::action: 'download' yum_autoupdate::email_from: "sysadmins+%{::environment}@gmail.com" yum_autoupdate::email_to: "sysadmins+%{::environment}@gmail.com" yum_autoupdate::exclude: - 'kernel*'
이 경우에는 Stage에는 패키지를 자동으로 업데이트하고, Production에서는 패키지를 설치하지는 않고 미리 다운로드만 받게 합니다.
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.