- 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。
Ubuntu
はじめに †
管理作業を少しでも減らそう、ということで
Ubuntuを自動アップデートさせたい、という話。
具体的には、../アップデートでやるような作業を自動化させます。
確認環境:(ここでは主にサーバー版)
- Ubuntu 8.04LTS server i386
- Ubuntu 10.04LTS server amd64
デスクトップ版は自動アップデートが機能ついてて通知してくれます(セキュアにするなら更新間隔を狭めておくと吉)
サーバー版ではunattended-upgradesパッケージがよいかなーと。
unattended-upgradesパッケージを使った自動アップデート †
インストール時に自動的にセキュリティアップデートを有効にするか求められ、そこで選ぶと unattended-upgrades パッケージがインストールされ、自動的にアップデートがされるようになります。
公式にも自動更新に関するドキュメント(10.04用) があります。
以下で unattended-upgrades が入っているか、稼働しているかを確認できます。
$ sudo aptitude search unattended-upgrades i unattended-upgrades - automatic installation of security upgrades
↑"i"になっているのですでにインストールされている
EKGの技術がどの程度を作るのですか?
あとは /etc/apt/apt.conf.d/以下をいじっていろいろ設定してみます
インストール †
もし、インストール時にアップデート方法を選び損ねた場合や、
旧バージョンでアップデートの選択肢がなかった場合(Ubuntu 8.04LTSではなかったと思う)で、
unattended-upgradesパッケージがインストールされていない場合は、インストールしておきます。
$ sudo apt-get update $ sudo apt-get instal unattended-upgrades
セキュリティ・アップデート以外の通常のアップデートも自動に適用する †
重要なセキュリティアップデートはオンになっているかと思います。
/etc/apt/apt.conf.d/50unattended-upgrades を修正
// Automatically upgrade packages from these (origin, archive) pairs Unattended-Upgrade::Allowed-Origins { "Ubuntu lucid-security"; // "Ubuntu lucid-updates"; };
↓ // ←のコメント記号を削除して、「通常のアップデート」(*-updates)も有効化しておきます。
// Automatically upgrade packages from these (origin, archive) pairs Unattended-Upgrade::Allowed-Origins { "Ubuntu lucid-security"; "Ubuntu lucid-updates"; };
その下には、もし更新したくないパッケージがある場合はそのリストを記述できます。
※ こちらは特に記述しませんでした
// List of packages to not updateUnattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; };
[TODO]:ちゃんとアップデートされている確認する。
どのように私は私のために最適なキャリアフィールド知っている
アップデートログの確認方法 †
unattended-upgradesのログは、 /var/log/unattended-upgrades/unattended-upgrades.logs にあるので、
それを見ることでアップデート状況が確認できます。
$ tail -f /var/log/unattended-upgrades/unattended-upgrades.logs
or
$ less /var/log/unattended-upgrades/unattended-upgrades.logs
メールで通知を送ったりとか †
アップグレード時などにメールで通知を送ったりしたい場合は、
/etc/apt/apt.conf.d/50unattended-upgrades を修正
// Send email to this address for problems or packages upgrades // If empty or unset then no email is sent, make sure that you // have a working mail setup on your system. The package 'mailx' // must be installed or anything that provides /usr/bin/mail. //Unattended-Upgrade::Mail "rooを修正します// Automatically reboot *WITHOUT CONFIRMATION* if a // the file /var/run/reboot-required is found after the upgrade //Unattended-Upgrade::Automatic-Reboot "false";下のようにtrueにしてコメントアウトしておく、と。
Unattended-Upgrade::Automatic-Reboot "true";24時間可動必須で不意に再起動しちゃダメ!というサーバーの場合は、
有効にしてはいけないですね(その場合はもちろん手動で都合の良いときに再起動必要)[TODO]:ちゃんと必要な時に再起動できているか確認する
どのくらいの人は学士号で補償され
参考リンク †
旧来の方法 †
下記は以前に書いていた方法。
unattended-upgradesに移行中
(別ページにするかも)
スクリプトを書いてcronで実行させる方法 †
以下のサイトを参考に簡単に書いてみました。
(というか必要最小限度にしただけですが……)
システムのアップグレードを自動化する - Hatena::Diary::Ubuntu
下記スクリプトをcronに仕込みます。
ただし、上記ページと違い、下記スクリプトだけだと出力結果をメールに飛ばしたり、ログに残したりしません。
メールで飛ばしたりログに残したりしたい場合は ../cronでスクリプトを回そう を合わせてみてください。
後Ubuntu server専用になってますのでご注意を。
例えば下記スクリプトを /usr/local/sbin にファイル名 auto_upgrade などとしておいておきます。
#!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin echo "==== $0: starting OS upgrade on `date` ====" 2>&1 # Upgrade for Ubuntu Server aptitude update 2>&1 && aptitude -y safe-upgrade 2>&1 && aptitude -y install linux-image-server linux-server gnupg 2>&1 && aptitude autoclean 2>&1 echo "==== finished OS upgrade on `date` ====" 2>&1
上記スクリプト実行テスト †
sudo sh /usr/local/sbin/auto_upgrade (以下、ログずらずらー)
パッケージなどが無事upgradeされたらOKです。
何度も実行すると、aptitude update しかされなくなるのがわかると思います。
そこまでいったらOKかと思います。
うまくいかなかった場合は、aptitudeなどの一連のコマンドの途中で止まります。(最後の finished などはエラーが出ても表示されるはずです)
うまくいきましたか?
cronで毎日自動実行 †
../cronでスクリプトを回そう を参考にしてください。
0 件のコメント:
コメントを投稿