シェルスクリプトから無人アップグレードを有効にする


17

目的に合わせて新しいUbuntu仮想マシンを自動的に構成するシェルスクリプトがあります。このスクリプトをインストールして有効にしたいunattended-upgradesと思いますが、ユーザーの操作なしにその方法を理解することはできません。

アップグレードを有効にする通常の方法はdpkg-reconfigure unattended-upgradesですが、もちろんそれはインタラクティブです。非対話型のフロントエンドは質問を一切避け、テキストフロントエンドはバインドされ、stdin / stdoutではなくttyでI / Oを実行するように決定されているようです。


1
以前このツールを使用したことはありませんが、有効にすると、ファイル/etc/apt/apt.conf.d/20auto-upgradesの2行に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 fileの要件に応じてパラメーターを構成/追加する方法と同じです /etc/apt/apt.conf.d/50unattended-upgrades

変更を適用するためにサービスを再起動することを忘れないでください。

/etc/init.d/unattended-upgrades restart
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.