우분투에서 자동 업그레이드로 최신 상태 유지하기

Ubuntu 시스템을 최상태로 유지하는 방법을 찾고 있나요? 행운이 가득하군요! Ubuntu에서 자동 업그레이드를 유지하고 시스템을 정기적으로 업그레이드하는 방법을 배워보세요.

이 자습서에서는 기계에 자동 업그레이드를 설정하는 방법과 어떤 패키지를 업그레이드할지에 대한 완전한 제어가 구성됩니다.

계속해서 자동 업그레이드를 통해 Ubuntu 시스템을 최신 상태로 유지하세요!

요구 사항

이 자습서에는 실습이 포함되어 있습니다. 이 자습서를 완료하려면 다음이 필요합니다:

  • Ubuntu 시스템 – 이 자습서는 Ubuntu 20.04를 사용하지만 Ubuntu 데스크톱, Ubuntu 서버 또는 쿠분투를 포함한 Ubuntu의 모든 플레이버를 사용할 수 있습니다.
  • A user account with sudo privileges.

Ubuntu에서 자동 업그레이드 설치

릴리스되는 최신 업데이트를 빠르게 받는 가장 빠른 방법 중 하나는 자동 업그레이드를 사용하는 것입니다. 이 자습서에서는 apt 패키지 관리자를 사용하여 기계에 자동 업그레이드를 설치합니다.

1. 터미널을 열고 다음 명령어를 실행하여 시스템 패키지 인덱스를 업데이트하십시오.

sudo apt update -y
Updating your system’s package index

2. 다음으로, 아래 명령어를 실행하여 무인 업그레이드 패키지를 설치하십시오.

sudo apt install unattended-upgrades -y
Installing the unattended-upgrade package

3. 설치가 완료되면 아래 systemctl 명령어를 실행하여 무인 업그레이드 서비스 시스템디 유닛을 시작하고 활성화하십시오. 이 명령은 서비스가 부팅 시 자동으로 시작되고 재부팅 후에도 유지되도록합니다.


sudo systemctl start unattended-upgrades

sudo systemctl enable unattended-upgrades

4. 마지막으로, 다음 명령어를 실행하여 무인 업그레이드 서비스 유닛의 상태를 확인하여 올바르게 작동하는지 확인하십시오.

sudo systemctl status unattended-upgrades.service
Checking the status of the unattended-upgrades service unit

자동 업그레이드 구성

자동 업그레이드를 설치하고 활성화하면 기계의 자동 업데이트를 얻는 데 문제가 없어야합니다. 그러나 지속적인 업데이트를 받고 싶지 않은 패키지가 있으면 어떻게 해야합니까? 자동 업그레이드 구성을 설정하면 문제가 해결됩니다.

자동 업그레이드를 구성하려면 선호하는 텍스트 편집기에서 구성 파일(/etc/apt/apt.conf.d/50unattended-upgrades)를 엽니다.

아래와 비슷한 구성을 볼 수 있습니다. 각 옵션 앞의 // 기호는 해당 옵션이 주석 처리되었음을 나타내며, 자동 업그레이드 서비스가 무시합니다.

Opening the Automatic Upgrade configuration file

계속적인 업데이트를 받을 패키지를 완전히 제어하는 방법을 알아보세요.

특정 패키지 무시하기

다른 패키지를 업데이트하게 두는 대신에 블랙리스트에 추가할 수는 없을까요? 자동 업그레이드 구성 파일을 사용하여 특정 패키지를 무시할 수 있습니다. 이 기능은 패키지를 완전히 무시하거나 나중에 업그레이드할 때까지 대기하도록 설정할 때 유용합니다.

Unattended-Upgrade::Package-Blacklist 섹션으로 스크롤하고 각각 한 줄에 블랙리스트에 추가할 패키지 이름을 추가합니다.

예를 들어, Apache 패키지를 블랙리스트에 추가하려면 apache2를 추가합니다.

Ignoring specific packages from automatically updating

추가 저장소 활성화

자동 업그레이드에서는 기본적으로 공식 Ubuntu 및 보안 저장소만 활성화되어 있습니다. 그러나 다른 저장소를 업그레이드 프로세스에 포함시킬 수 있습니다.

Unattended-Upgrade::Allowed-Origins 섹션으로 스크롤하십시오.

Viewing repositories

이제 활성화하려는 저장소 앞의 // 기호를 제거합니다.

이 튜토리얼에서는 모든 Ubuntu 저장소를 활성화합니다. 예를 들어, 다음과 같습니다:

  • 업데이트 – 안정적인 패키지 릴리스를 위해.
  • 제안된 – 새로운 안정적인 패키지 버전을 테스트하기 위해.
  • 백포트 – 기존 안정적인 패키지의 새로운 버전을 위해.
Enabling extra repositories

시스템 자동 재부팅

성공적인 업그레이드 후 시스템을 자동으로 재부팅하시겠습니까? 왜 그렇게 하지 않나요? 그렇게 함으로써 시스템이 항상 최신 상태로 유지됩니다. 그러나 업그레이드가 발생할 때 시스템을 사용 중일 때 이 기능은 방해가 될 수도 있습니다.

자동 재부팅을 활성화하려면 자동 재부팅 Unattended-Upgrade::Automatic-Reboot 줄까지 아래로 스크롤하여 // 기호를 제거하고 값이 true로 설정되어 있는지 확인하십시오.

Setting the automatic reboot after an upgrade

사용되지 않는 종속성 제거

설치된 종속성은 저장 공간을 차지합니다. 그들을 제거하는 것이 좋지 않나요? 이 구성은 성공적인 업그레이드 후에 사용되지 않는 종속성을 자동으로 제거할지 여부를 구성할 수 있게 합니다.

이 기능은 시스템을 깨끗하게 유지하는 데 도움이 되지만, 업그레이드된 패키지에 더 이상 사용되지 않는 패키지가 제거될 수도 있습니다.

사용되지 않는 종속성의 제거를 활성화하려면 사용되지 않는 종속성 Unattended-Upgrade::Remove-Unused-Dependencies 줄을 찾아 // 기호를 제거하고 값을 true로 설정하십시오.

Setting unused dependencies to be removed after an upgrade

상세 로깅 활성화

업그레이드가 실패하면 그 원인이 무엇인지 어떻게 알 수 있나요? 상세 로깅은 자동 업그레이드 프로세스에 대해 더 많은 정보를 얻을 수 있는 좋은 방법입니다.

이 기능은 실패한 업그레이드를 문제 해결하거나 배경에서 무슨 일이 일어나고 있는지에 대해 더 알고 싶을 때 도움이 될 수 있습니다.

자세한 로깅을 활성화하려면 Verbose Logging 줄로 스크롤하여 // 기호를 제거하고 값을 true로 설정하십시오. 수정한 후 변경 사항이 적용되도록 파일을 저장하고 닫으십시오.

Enabling verbose logging

자동 업데이트 사용

이 시점에서 자동 업그레이드를 구성하는 방법에 대해 충분히 이해하고 있어야 합니다. 그러나 여전히 시스템에 자동 업데이트를 실행할 시기를 알려주는 특정 파일이 필요합니다. 이 파일의 이름은 20auto-upgrades이며 /etc/apt/apt.conf.d 디렉토리에 위치해야 합니다.

/etc/apt/apt.conf.d 디렉토리에서 파일을 관리하거나 생성하려면 sudo 권한이 필요합니다.

자동 업데이트를 활성화하려면 다음 단계를 수행하십시오:

1. 선호하는 텍스트 편집기에서 /etc/apt/apt.conf.d/ 디렉토리에 20auto-upgrades라는 파일을 만듭니다.

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

2. 그런 다음 20auto-upgrades 파일에 다음 구성 옵션을 추가하고 변경 사항을 저장한 후 파일을 닫습니다.

이 구성은 자동 업데이트를 시작하기에 필요한 최소한의 구성으로 다음과 같습니다:

  • 첫 번째 줄은 시스템에 매일 사용 가능한 패키지 목록을 업데이트하도록 지시합니다. 이 옵션은 시스템이 사용 가능한 업데이트가 있는 패키지를 알 수 있도록 필요합니다.
  • 두 번째 줄은 시스템이 매일 unattended-upgrades를 실행하도록 지시합니다. 이 옵션은 업그레이드 프로세스를 수행합니다.
  • 세 번째 줄은 시스템이 한 주에 한 번씩 오래된 또는 사용되지 않는 파일을 자동으로 정리하도록 지시합니다.
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";

3. 마지막으로, 아래 명령을 실행하여 변경 사항을 적용하기 위해 unattended-upgrades 서비스를 재시작하십시오.

이 명령은 출력을 제공하지 않지만, 다음 섹션에서 모든 구성을 테스트합니다.

sudo systemctl restart unattended-upgrades.service

자동 업그레이드 구성 테스트

모든 설정을 구성하는 데 성공했습니다. 하지만 모든 구성이 작동하는지 어떻게 알 수 있나요? 정기 업데이트는 하루에 한 번 발생하므로, 너무 오래 기다릴 필요는 없습니다.

그러나 자동 업그레이드 구성을 테스트하는 가장 빠른 방법은 attended-upgrade 프로세스의 건조 실행을 수행하는 것입니다.

아래의 unattended-upgrade 명령을 실행하여 모든 업그레이드의 –dry-run을 실시하고 어떤 것도 실제로 설치하지 않습니다(–debug).

sudo unattended-upgrades --dry-run --debug

비교적 긴 출력을 볼 수 있습니다. 하지만 처음에는 아래와 같은 출력을 볼 수 있습니다.

보시다시피, apache2 패키지가 블랙리스트에 있어, 패키지 업그레이드에서 블랙리스팅하는 구성이 작동하는 것을 나타냅니다.

Performing a dry run

이제 출력을 스크롤하면 아래와 같은 섹션을 볼 수 있는데, 이는 여러 패키지에 대한 사용 가능한 업데이트를 보여줍니다. 각 업데이트는 다운로드되지만, 건조 실행만 수행했기 때문에 설치되지 않습니다.

Viewing available package updates

자동 업그레이드 로그 보기

구성이 작동한다고 확인한 후, 최근 업그레이드가 어떻게 이루어졌는지 보고 싶을 수 있습니다. unattended-upgrades의 로그는 /var/log/unattended-upgrades 파일에 저장되어 있으며, 볼 수 있습니다.

아래의 grep 명령을 실행하여 단어 문자로 시작하는 로그만 표시합니다(^\w), 모든 빈 줄과 대시만 포함된 줄을 필터링합니다.

grep '^\w' /var/log/unattended-upgrades/unattended-upgrades.log

아래에서 로그 정보를 확인할 수 있습니다:

  • 마지막으로 무인 업그레이드가 실행된 시간.
  • 어떤 패키지가 업그레이드되었는지.
  • 프로세스가 시작되고 끝난 시간.
Viewing the unattended upgrade logs

결론

서버를 최신 상태로 유지하는 것은 그 보안을 유지하는 중요한 부분입니다. 그리고 이 튜토리얼에서는 Ubuntu에서 자동 업그레이드를 설치하고 구성하는 방법을 배웠습니다. 또한 구성을 테스트하고 로그를 확인하여 자동 업데이트가 마지막으로 실행된 내용을 확인했습니다.

이 시점에서 자동 업그레이드를 받아야 하는 패키지를 완전히 제어할 수 있습니다. 하지만 여기에서 멈추지 마세요! 자동 업그레이드에 대한 많은 무인 업그레이드 구성 옵션이 더 있습니다.

Source:
https://adamtheautomator.com/automatic-upgrades-in-ubuntu/