특정 Debian 배포판의 모든 것(배포판 포함)을 지속적으로 업그레이드하시겠습니까? [폐쇄]

특정 Debian 배포판의 모든 것(배포판 포함)을 지속적으로 업그레이드하시겠습니까? [폐쇄]

배포판(일부 데비안 배포판 포함)의 모든 것을 안전한 방법으로 지속적으로 업그레이드하는 방법은 무엇입니까?

내가 왜 이런 질문을 하는지

제가 이 질문을 하는 이유는 Nginx 환경 설정 스크립트가 커지고 유지 관리하는 데 점점 더 많은 시간이 걸리면서 제가 뭔가 잘못하고 있다는 느낌이 들었기 때문입니다.

학습, 연습 및 공개 공유로 인해 스크립트를 유지 관리하는 것은 제가 할 수 있고 즐길 수 있는 일이지만 곧 직원으로 일하러 나가야 하고 스크립트를 유지 관리할 시간이 줄어들게 됩니다. 이러한 상황에서 나는 항상 다음과 같은 두려움을 가지고 있습니다.

-- 현재 배포판 LTS가 더 이상 지원되지 않으면 어떻게 되나요?

-- 비록 그것이 Debian Stable이고 다른 것이 아니라고 하더라도, 몇 달 된 오래된 배포판에서 보안 취약점이 있을 수 있지만 그보다 훨씬 오래되지는 않았습니다.

-- 오래된 배포판 등으로 인해 잘 구성된 구성만으로는 안전을 유지하기에 충분하지 않은 경우 unattended-upgrades어떻게 해야 합니까 ?

현재 나는 DigitalOcean에서 Droplet에 대해 5달러를 지불하고 있으며 다음과 같은 특성을 가진 LEMP 스택을 갖는 가장 좋은 솔루션이 무엇인지 정말로 모르겠습니다.

  • Bash에 무료로 액세스할 수 있습니다.
  • 무인 업그레이드.
  • CSF-LFD 및 Maldet.
  • Certbot이 처리하는 웹 애플리케이션 구성.
  • cron에서 생성하는 즉시 자동 cron 백업입니다(내 스크립트에서 사용 가능).
  • .rsync
  • 워드프레스 웹사이트
  • WP-CLI
  • 모든 VPS 가격은 10달러 미만입니다.

Ansible이 답인지 Salt가 답인지 잘 모르겠습니다. (Ansible은 배우기 쉽다고 광고하지만 나에게는 배우기가 쉽지 않은 것 같고, 자세히 공부할 시간이 없을 것 같습니다. 향후 3개월).

Azure가 답인지는 잘 모르겠습니다. 가격 때문에 제가 원하는 환경을 사용하려면 Azure에서 최소 15달러의 비용이 듭니다.

어쩌면 모든 기본 측면에서 지속적으로 전달되는 배포판이 필요할 수도 있습니다(있는 경우).

기본적으로는 그런 이야기입니다.

답변1

좋은 CI(지속적 통합)는 최소한 다음 세 가지에 의존합니다.

  1. 스크립트 기반 배포
  2. 대역외 테스트 환경
  3. 자동화된 테스트는 전체 표면을 포괄합니다.

현재 #1만 있습니다. 다른 VPS는 #2로 작동할 수 있지만 (명백한) 테스트는 없습니다.


하지만 더 나아가기 전에 리듬 기반 버전 지원에 대해 간단히 말씀드리겠습니다.

Ubuntu LTS 버전은 출시 후 5년 동안 업데이트를 받습니다. 모든 패키지는 아니지만 LEMP에 필요한 모든 것입니다. 이러한 업데이트는 향후 버전의 보안 수정 사항을 백포트하므로 가능하면 최신 수정 사항이 포함된 이전 주요 버전을 얻을 수 있습니다. 이는 일이 계속 작동한다는 것을 의미합니다.

롤링 퍼블리싱은 모든 것을 항상 최신 상태로 유지합니다. systemd와 같은 주요 구성 변경이 언제 발생할지, 이를 수정하는 데 얼마나 많은 작업이 필요할지 알 수 없습니다. 업데이트를 자동으로 설치하는 경우 이는 예측 가능한 간격이 없음을 의미합니다.

Ubuntu LTS를 사용하면 4~5년마다 서버에서 업그레이드를 안내하는 데 1~2시간을 소비해야 한다는 것을 알고 있습니다.이렇게 하시면 선택할 수 있어요다음 LTS 출시 후 3년 이내. 이는 결함이 아닌 주요 기능입니다.


귀하의 전투 계획을 위해 저는 (아마도 논란의 여지가 있지만) 자동 업데이트를 완전히 비활성화하고 이를 다음으로 대체하겠습니다.비교적간단한 스크립트:

  • 두 번째 VPS를 시작합니다(공급업체의 API를 사용하므로 실행되는 동안에만 비용을 지불합니다). 동일한 운영 체제 버전(예: 기본 VPS가 해당 버전인 경우 Ubuntu 16.04)을 기반으로 하는 템플릿입니다.
  • 최신 버전의 소프트웨어로 업데이트하고, 콘텐츠를 배포하고, 데이터베이스를 복원하세요.
  • 테스트 스위트를 실행하고 모든 서비스에 대한 긍정적 또는 부정적 결과를 보고하십시오.
  • 실패 시 이메일을 보내고 apt dist-upgrade성공 시 기본 VPS에서 실행됩니다.

핵심은 얻을 수 있다는 것입니다.시끄러운업데이트를 받지 못한 경우 다시 신고해 주세요. 예, 이것도 테스트해야 합니다.

Ansible 등으로 이동할 수 있지만 이것이 주요 문제는 아닙니다. 테스트를 작성하는 것입니다.

많은 작업이 필요하지만 이러한 작업을 통해 규모를 확장하고 확장할 수도 있습니다. 부하 분산 클러스터가 이미 있는 경우 클러스터를 분리하고 업데이트하고 테스트한 다음 클러스터에 다시 도입할 수 있습니다.

관련 정보