쉘 스크립트에서 무인 업그레이드 활성화


17

내 목적을 위해 새로운 Ubuntu 가상 머신을 자동으로 구성하는 쉘 스크립트가 있습니다. 이 스크립트를 설치하고 활성화 unattended-upgrades하고 싶지만 사용자 상호 작용 없이는 그렇게하는 방법을 알 수 없습니다.

업그레이드를 가능하게하는 일반적인 방법은 dpkg-reconfigure unattended-upgrades이지만 물론 대화식입니다. 비 대화식 프론트 엔드는 질문을 전혀하지 않으며 텍스트 프론트 엔드는 stdin / stdout이 아닌 tty로 I / O를 수행 할 수밖에없는 것으로 보입니다.


1
이전에는이 ​​도구를 사용해 본 적이 없지만 /etc/apt/apt.conf.d/20auto-upgrades 파일의 두 줄에 1을 쓰도록 설정하는 것 같습니다. 해당 파일을 수동으로 작성하면 작동합니까?
mfisch

답변:


20

원하는 방식으로 구성한 후 /etc/apt/apt.conf.d/20auto-upgrades 사본을 만들어 대상 시스템에 놓으십시오. 스크립트에 포함 시키거나 서버 등에서 rsync 또는 wget 할 수 있습니다.

따라서 기본적으로 스크립트는 다음과 같은 작업을 수행 할 수 있습니다.

apt-get install unattended-upgrades
wget -O /etc/apt/apt.conf.d/20auto-upgrades http://myserver.mytld/confs/20auto-upgrades
/etc/init.d/unattended-upgrades restart

dpkg-reconfigure 스크립트를 사용하여 원숭이를 움직일 이유가 없습니다.

원격 서버에서 conf 파일을 가져 오지 않으려면 매우 간단하고 간단합니다. 보안 업데이트 만 가져오고 설치하는 기본 버전은 다음과 같습니다.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

따라서 다음을 사용하여 해당 줄을 구성 파일에 직접 에코 할 수 있습니다.

echo -e "APT::Periodic::Update-Package-Lists \"1\";\nAPT::Periodic::Unattended-Upgrade \"1\";\n" > /etc/apt/apt.conf.d/20auto-upgrades

1

dpkg-reconfigure를 사용하려면 "debconf-set-selections"를 사용하여 값을 설정 한 다음 비 대화식 방식으로 다시 구성 할 수 있습니다.

echo "unattended-upgrades       unattended-upgrades/enable_auto_updates boolean true" | debconf-set-selections; dpkg-reconfigure -f noninteractive unattended-upgrades

0

에코를 사용하려면 sudo를 사용해야합니다 /etc/apt/apt.conf.d/20auto-upgrades

if [[ ! -f /etc/apt/apt.conf.d/20auto-upgrades.bak ]]; then
    sudo cp /etc/apt/apt.conf.d/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades.bak
    sudo rm /etc/apt/apt.conf.d/20auto-upgrades
    echo "APT::Periodic::Update-Package-Lists \"1\";
    APT::Periodic::Download-Upgradeable-Packages \"1\";
    APT::Periodic::AutocleanInterval \"30\";
    APT::Periodic::Unattended-Upgrade \"1\";" | sudo tee --append /etc/apt/apt.conf.d/20auto-upgrades
fi

0
dpkg-reconfigure -f noninteractive unattended-upgrades

0

무인 업그레이드를 구성하기 위해 구성 매개 변수를 삽입하는 것이 좋습니다.

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

echo "APT::Periodic::Update-Package-Lists "1"" >> /etc/apt/apt.conf.d/20auto-upgrades

echo "APT::Periodic::Unattended-Upgrade "1" " >> /etc/apt/apt.conf.d/20auto-upgrades

conf 파일의 요구 사항에 따라 매개 변수를 구성 / 추가 할 수있는 것과 같은 방법 /etc/apt/apt.conf.d/50unattended-upgrades입니다.

변경 사항을 적용하기 위해 서비스를 다시 시작하는 것을 잊지 마십시오.

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