Bricoleur88 Tech Insight

Tech News, Insights & Opinions

Study

unattended-upgrades 설정 및 관리 방법 | Ubuntu(우분투)

ubuntu - unattended-upgrades

unattended-upgrades ?

unattended-upgrades 는 Ubuntu 의 최신 보안 패치 및 기타 업데이트를 자동으로 수행하고 시스템을 유지, 관리 하는 것에 목적이 있는 서비스.
Ubuntu 를 설치하면 기본적으로 해당 서비스는 설치되어 작동하고 있습니다.
만약 설치가 안되어 있다면 아래와 같이 설치를 진행합니다.

$ sudo apt install unattended-upgrades -y

unattended-upgrades : 설정

unattended-upgrades 에 Default 로 들어가는 설정은 아래와 같습니다.

unattended-upgrades

기본적으로 설정 되있는 것을 보면 4개의 Repository 에 대해서는 Update 가 Allow 되어 있는 것을 볼 수 있습니다.

특별히 추가한 Repository 가 없다면, Update 대상이 되는 Repository 는 우분투 22.04기준에서는 jammyjammy-security 입니다.

unattended-upgrades : service disable

고유한 서비스를 안정적으로 유지해야 하는경우엔 자동업데이트가 오히려 시스템을 불안정하게 하는 원인이 되는 경우가 대표적입니다.
따라서 운영중인 서비스에 영향이 가는 것을 막기 위하는 목적으로 Disabled을 수행해야 할 때가 있습니다.

Disable 을 위해서는 아래 명령을 이용하면 됩니다.

$ sudo dpkg-reconfigure unattended-upgrades

위 명령을 입력하면 아래와 같은 화면이 나타나며, 여기에서 <No> 를 선택하면 서비스가 Disable 됩니다.

unattended-upgrades 서비스 끄기

상세 설정에서 아래와 같이 0으로 바뀌어 있는지 확인합니다.

ubuntu@ubuntu:~$ sudo dpkg-reconfigure unattended-upgrades
Replacing config file /etc/apt/apt.conf.d/20auto-upgrades with new version
   
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

Enable 을 위해서는 Disable 에서 사용한 명령을 그대로 사용하고 <Yes> 를 선택하면 서비스가 Enable 됩니다.

ubuntu@ubuntu:~$ sudo dpkg-reconfigure unattended-upgrades
Replacing config file /etc/apt/apt.conf.d/20auto-upgrades with new version
    
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

unattended-upgrades : 주요 기능

활용하기 좋은 설정 들을 몇 가지 소개해 봅니다.

Blacklist 기능

/etc/apt/apt.conf.d/50unattended-upgrades 의 Unattended-Upgrade::Package-Blacklist 영역에
내용을 추가하면 특정 Package 를 Update 못하게 할 수 있습니다.

한가지 예로 nginx 에 대해 자동 update 가 안되도록 하기 위해서는 아래와 같이 설정하면 됩니다.

Unattended-Upgrade::Package-Blacklist {
    "nginx";
};

Auto-Reboot

주기적으로 시스템을 Update 하고 자동으로 재부팅을 진행하고 싶은 경우, 아래 설정을 이용 할 수 있습니다.

auto-reboot

Unattended-Upgrade::Automatic-Reboot 에서 재부팅 여부를 설정 할 수 있고,
Unattended-Upgrade::Automatic-Reboot-WithUsers 에서 로그인한 사용자에 대한 재부팅 여부 설정,
Unattended-Upgrade::Automatic-Reboot-Time 에서는 재부팅 시간을 설정 할 수 있습니다.

작동 확인

기본적으로 unattended-upgrades 는 매일 06:25 분에 수행되는 cron.daily 에 등록 되어 있습니다.

ubuntu@ubuntu:~$ cat /etc/crontab | grep daily
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

(위 시간은 각 시스템에 설정에 따라 차이가 있을 수 있습니다.)

수행하는 script 는 아래 부분입니다.

ubuntu@ubuntu:~$ cat /etc/cron.daily/apt-compat  | tail -n1
exec /usr/lib/apt/apt.systemd.daily

작동 로그

자동으로 update 가 완료되는 아래와 경로에 로그가 생성되고 확인이 가능합니다.

unattended-upgrades 동작 로그

apt history.log 에도 해당 내용이 기록됩니다.

unattended-upgrades 동작로그 확인

참고 자료


Bricoleur88 Tech Insight 에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다