Увімкнення без нагляду оновлень із сценарію оболонки


17

У мене є сценарій оболонки для автоматичного налаштування нових віртуальних машин Ubuntu для моїх цілей. Я хотів би встановити та включити цей сценарій unattended-upgrades, але я не можу зрозуміти, як це зробити без взаємодії з користувачем.

Звичайний спосіб активізації оновлень є dpkg-reconfigure unattended-upgrades, але, звичайно, інтерактивним. Неінтерактивний передній кінець взагалі уникає задавати будь-які запитання, а передній кінець тексту здається зв'язаним і вирішеним робити його введення / виведення з tty, а не зі stdin / stdout.


1
Я раніше не використовував цей інструмент, але виглядає так, що він дозволяє записати 1 у два рядки у файлі /etc/apt/apt.conf.d/20auto-upgrades. Якщо ви вручну напишете цей файл, він буде працювати?
mfisch

Відповіді:


20

Просто зробіть копію /etc/apt/apt.conf.d/20auto-upgrades, налаштувавши її так, як вам подобається, і залиште її на своєму цільовому апараті. Ви можете вбудувати його у свій сценарій, або ви можете rsync або ввімкнути його з сервера чи будь-чого іншого.

Тому в основному ваш сценарій може робити щось подібне:

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.

Якщо ви не хочете отримати конф-файл з віддаленого сервера, це ДУЖЕ дуже короткий і простий - версія за замовчуванням, яка отримує та встановлює лише оновлення безпеки, виглядає так:

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-перенастроювання, ви можете встановити значення за допомогою "debconf-set-select", а потім переконфігурувати його неінтерактивним способом.

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

0

Ви повинні використовувати судо, щоб відлучитись /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

Я б запропонував вставити параметри конфігурації для налаштування без нагляду оновлень.

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.