CentOS 6에서 패키지 자동 업데이트하기

윈도우 업데이트처럼 CentOS 6에도 yum-cron이라는 서비스가 있습니다. yum update -ycron으로 돌리는 것과 유사하다고 보면 됩니다. 이메일 통지라던가 몇 가지 기능이 추가된 정도입니다. 자동으로 패키지를 업데이트하면 버그 있는 패키지가 서비스에 적용이 되어서 문제가 발생할 수도 있습니다. 그러므로 자동 업데이트는 개발/스테이지 환경에 적용하면 좋습니다. 이렇게 Stage 환경에 최신 패키지를 유지해 놓으면 Production에 자신있게 보안 또는 패키지 패치를 할 수 있습니다.

리눅스 노드가 여러 대이므로 한대 한대 이렇게 설정할 수는 없고 Puppet을 이용해 yum-cron을 구성합니다.

  1. 우선 Puppet forge에서 yum_autoupdate를 찾아서 설치합니다.
    puppet module install aco-yum_autoupdate
    
  2. yum-cron이 필요한 노드에 yum_autoupdate를 설치하고
    include ::yum_autoupdate
    
  3. 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에서는 패키지를 설치하지는 않고 미리 다운로드만 받게 합니다.

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu