UNIX 패키지를 최신 상태로 유지하는 모범 사례?


30
  • 서버를 어떻게 최신 상태로 유지합니까?
  • Aptitude 와 같은 패키지 관리자 를 사용할 때 업그레이드 / 설치 기록을 유지합니까? 그렇다면 어떻게 수행합니까?
  • 여러 서버에 패키지를 설치하거나 업그레이드 할 때 프로세스 속도를 최대한 높이는 방법이 있습니까?

답변:


19

Linux / Debian 기반 시스템에서 cron-apt 는 cron을 통해 자동화 된 apt를 관리 할 수있는 매우 편리한 도구입니다.

apt-get update매일 사용하고 있으며 새 업데이트를 설치해야 할 경우 이메일을 보내십시오.

해당 도구에 대한 간단하고 잘 소개 된 내용은 다음과 같습니다 .


자동 업데이트 된 패키지를 최소로 유지하고 중요한 업데이트는 보안 업데이트입니다. 이러한 이유로 cron-apt 구성 파일에 다음을 추가 한 다음 OPTIONS="-o Dir::Etc::SourceList=/etc/apt/security.sources.list" /etc/apt/security.sources.list에 데비안 보안 리포지토리 만 활성화시킵니다. 이렇게하면 모든 보안 업데이트가 적시에 (매일 밤) 자동으로 설치되며 수동으로 문제를 일으킬 수있는 더 위험한 다른 업그레이드를 수행 할 수 있습니다.
Drew Stephens

10

세 번째 질문과 관련하여 항상 로컬 저장소를 실행합니다. 한 대의 컴퓨터에만 해당 되더라도 다시 설치해야 할 경우 (일반적으로 적성 자동 청소와 같은 것을 사용) 시간이 절약되며 두 대의 컴퓨터의 경우 거의 항상 돈을 지불합니다.

내가 관리하는 클러스터의 경우 일반적으로 명시 적 로그를 유지하지 않습니다. 패키지 관리자가 처리하도록합니다. 그러나 해당 컴퓨터 (데스크톱이 아닌)의 경우 자동 설치를 사용하지 않으므로 모든 컴퓨터에 설치하려는 내용에 대한 메모가 있습니다.


4
와우; 내가 너무 똑똑해서 사람들이 투표를합니까, 아니면 사람들이 배지를 얻기 위해 경주하고 있습니까? ;)
Mikeage


4

나는 역사 를 위해 apt-history 를 사용 합니다. 이 유용한 도구가 왜 기본적으로 포함되어 있지 않은지 잘 모르겠습니다 . 꼭두각시로 배포 한 첫 번째 패키지 입니다.


apt-history는 / var / log에 기본적으로 기록 된 것과 어떻게 다릅니 까?
jldugger

나는 당신이 (당신의 대답에서) 무엇을 말하는지 알지 못했습니다. 나는 적절한 역사를 알고 그것에 익숙해 졌다고 생각합니다.
마크

3

나는 매일 밤마다 cron 작업으로 / usr / bin / apt-get update -qq; / usr / bin / apt-get dist-upgrade -duyq 를 실행합니다. 아침에 업그레이드해야 할 패키지에 대한 알림을 받았으며 파일이 이미 컴퓨터에 다운로드되었습니다.

그런 다음 일반적으로 머신의 스냅 샷을 작성하고 (대부분의 서버는 가상 임) apt-get dist-upgrade를 수행 하고 nagios 를 확인하고 모든 것이 여전히 작동하는지 확인하고 스냅 샷을 제거하십시오.

마지막으로 나중에 발생하는 문제를 추적하기 위해 Wiki의 모든 서버에 대한 모든 변경 사항의 실행 목록을 유지합니다 .

중복 다운로드를 제한하는 한 서버와 인터넷간에 캐시 된 웹 프록시 (오징어?)를 설정하여 처음 액세스 할 때 .deb 파일을 캐시 할 수 있음을 이해합니다. 아마도 이것은 로컬 패키지 리포지토리를 설정하는 것보다 간단하며 일반적인 웹 브라우징 속도를 높이는 이점이 있습니다.


1

apt-cacher는 패키지 캐싱에 편리하며 전체 리포지토리의 전체 미러를 완료하지 않고 필요할 때 처음 캐시하므로 디스크와 대역폭을 절약합니다. 또한 동시에 캐싱하면서 패키지의 첫 번째 요청을 요청자에게 직접 스트리밍하므로 추가 지연이 없으므로 편리합니다.


1

로컬 리포지토리를 실행하는 것이 로컬 서버의 내용을 정확하게 관리하는 가장 좋은 방법입니다. 또한 사용자 정의 백 포트 또는 사용자 정의 로컬 패키지를 쉽게 배포 할 수 있습니다. 로컬 설치를 쉽게하기 위해 종속성이 거의없는 로컬 '메타 패키지'를 만드는 것으로 알려져 있습니다. (예 : 'apt-get install local-mailserver'). 이것은 구성 변경을 '버전'할 수있게하는 부작용이 있습니다. (보다 복잡한 구성 관리를 위해서는 꼭두각시와 같은 것이 필요합니다)


1

Windows 상자에는 로컬 WSUS 서버와 월별 패치를 적용하는 표준 창이 있습니다. Linux 시스템 (RHEL)의 경우 캠퍼스에 RHN 위성 서버가 모두 있습니다. 이는 관리하는 모든 결합 된 시스템과 각 시스템에 적용되지 않은 업데이트에 대한 유용한 대시 보드를 제공합니다. 꼭두각시에있는 사람들을 위해, 우리는 일반 창에서 패치를 자동으로 적용하고 결과와 함께 이메일 알림을 보내는 스크립트를 밀어냅니다.


0

로컬 리포지토리가 있고 업데이트를 위해 모든 서버가이를 가리 키도록 구성 할 수 있습니다. 로컬 다운로드 속도를 높일뿐만 아니라 호환성 문제를 방지하기 위해 인프라에 설치할 공식 업데이트를 제어 할 수도 있습니다.

Windows 측면에서는 Windows Server Update Services를 사용 하여 매우 만족스러운 결과를 얻었습니다.


0

Aptitude와 같은 패키지 관리자를 사용할 때 업그레이드 / 설치 기록을 유지합니까? 그렇다면 어떻게 수행합니까?

apt는 / var / log / apt /에 로그를 유지하고 dpkg는 /var/log/dpkg.log를 사용합니다. dpkg는 특히 구문 분석이 가능합니다.


0

OpenSuSE Linux, SLES 및 Novell OES (모든 SuSE 기반 제품)에는 zypper를 실행하고 업데이트가 필요한 패키지를 찾는 스크립트가 있습니다. 티켓을 찾으면 JIRA에 티켓을 제출하고 sysadmins에 할당합니다. 업데이트를 설치할 때 티켓을 닫습니다.이 티켓은 설치 시점과 대상을 알려주는 감사 내역을 남깁니다. 이는 syslogging 서버에서 중앙 집중화 된 zypper 및 sudo 로그로 조정 / 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.