Linux管理者-システムアップデート

CentOS7システムは3つの方法で更新できます-

  • Manually
  • Automatically
  • 主要なセキュリティ問題について手動で更新し、自動更新を構成します

実稼働環境では、実稼働サーバー用に手動で更新することをお勧めします。または、少なくとも更新計画を確立して、管理者が業務に不可欠なサービスを保証できるようにします。

単純なセキュリティ更新により、管理者によるアップグレードと再構成が必要な一般的なアプリケーションで再帰的な問題が発生する可能性があります。したがって、開発サーバーとデスクトップで最初にテストする前に、本番環境で自動更新をスケジュールすることにうんざりしてください。

CentOS7を手動で更新する

CentOS 7を更新するには、yumコマンドについて理解しておく必要があります。yumCentOS7でパッケージリポジトリを処理するために使用されます。yumは一般的に使用されるツールです。

  • CentOS 7Linuxシステムを更新します
  • パッケージを検索する
  • パッケージをインストールする
  • パッケージに必要な依存関係を検出してインストールします

更新にyumを使用するには、CentOSサーバーがインターネットに接続されている必要があります。ほとんどの構成では、基本システムをインストールしてから、yumを使用してメインのCentOSリポジトリにパッケージ内の追加機能を照会し、システム更新を適用します。

すでにyumを使用していくつかのパッケージをインストールしています。yumを使用する場合は、常にrootユーザーとして使用する必要があります。または、rootアクセス権を持つユーザー。それでは、nanoと呼ばれる使いやすいテキストエディタを検索してインストールしましょう。

[root@centos rdc]# yum search nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.rackspace.com
 * epel: mirror.chpc.utah.edu
 * extras: repos.forethought.net 
 * updates: repos.forethought.net 
====================================================================== 
      N/S matched: nano 
======================================================================
nano.x86_64 : A small text editor
nodejs-nano.noarch : Minimalistic couchdb driver for Node.js
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
 Name and summary matches only, use "search all" for everything.
 
[root@centos rdc]#

それでは、nanoテキストエディタをインストールしましょう。

[root@centos rdc]# yum install nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================  
Package                             Arch
Version                          Repository                            Size  
================================================================================  
 Installing: 
 nano                               x86_64
 2.3.1-10.el7                    base                                  440 k
 
Transaction Summary
Install  1 Package
Total download size: 440 k
Installed size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm
| 440 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : nano-2.3.1-10.el7.x86_64
1/1  
 Verifying  : nano-2.3.1-10.el7.x86_64
1/1  
Installed: 
 nano.x86_64 0:2.3.1-10.el7
 
Complete!

[root@centos rdc]#

nanoテキストエディタをインストールしました。この方法であるIMOは、Webサイトでユーティリティを検索し、インストーラーを手動で実行するよりもはるかに簡単です。また、リポジトリはデジタル署名を使用してパッケージを検証し、yumを使用して信頼できるソースからのものであることを確認します。新しいリポジトリを信頼するときに信頼性を検証するのは管理者の責任です。これが、サードパーティのリポジトリにうんざりすることがベストプラクティスと見なされる理由です。

Yumを使用してパッケージを削除することもできます。

[root@centos rdc]# yum remove nano 
Loaded plugins: fastestmirror, langpacks 
Resolving Dependencies 
--> Running transaction check 
---> Package nano.x86_64 0:2.3.1-10.el7 will be erased 
--> Finished Dependency Resolution

Dependencies Resolved

それでは、更新を確認しましょう。

[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Updated Packages
NetworkManager.x86_64           1:1.4.0-17.el7_3       updates
NetworkManager-adsl.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-glib.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-libnm.x86_64     1:1.4.0-17.el7_3       updates
NetworkManager-team.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-tui.x86_64       1:1.4.0-17.el7_3       updates
NetworkManager-wifi.x86_64      1:1.4.0-17.el7_3       updates
audit.x86_64                    2.6.5-3.el7_3.1        updates
audit-libs.x86_64               2.6.5-3.el7_3.1        updates
audit-libs-python.x86_64

示されているように、インストールが保留されている数十の更新があります。実際には、自動更新をまだ構成していないため、合計で約100の更新があります。したがって、保留中のすべての更新をインストールしましょう。

[root@centos rdc]# yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: pubmirror1.math.uh.edu
 * extras: repos.forethought.net
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-14.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-17.el7_3 will be an update
 selinux-policy            noarch      3.13.1102.el7_3.15      updates     414 k
 selinux-policy-targeted   noarch      3.13.1102.el7_3.15      updates     6.4 M 
 systemd                   x86_64      21930.el7_3.7           updates     5.2 M 
 systemd-libs              x86_64      21930.el7_3.7           updates     369 k 
 systemd-python            x86_64      21930.el7_3.7           updates     109 k 
 systemd-sysv              x86_64      21930.el7_3.7           updates     63 k 
 tcsh                      x86_64      6.18.01-13.el7_3.1      updates     338 k 
 tzdata                    noarch      2017a1.el7              updates     443 k 
 tzdata-java               noarch      2017a1.el7              updates     182 k 
wpa_supplicant             x86_64      1:2.021.el7_3           updates     788 k  

Transaction Summary 
=============================================================================== 
  Install   2 Packages 
  Upgrade  68 Packages 
Total size: 196 M 
Total download size: 83 M 
Is this ok [y/d/N]:

「y」キーを押すと、CentOS7のアップデートが始まります。更新時にyumが実行する一般的なプロセスは次のとおりです。

  • 現在のパッケージをチェックします
  • リポジトリで更新されたパッケージを探します
  • 更新されたパッケージに必要な依存関係を計算します
  • アップデートをダウンロード
  • アップデートをインストールします

それでは、システムが最新であることを確認しましょう-

[root@centos rdc]# yum list updates 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * updates: mirror.compevo.com

[root@centos rdc]#

ご覧のとおり、更新はリストされていません。

YUMの自動更新を構成する

エンタープライズ環境では、前述のように、自動更新がインストールの推奨される方法である場合とそうでない場合があります。yumを使用して自動更新を構成する手順を見ていきましょう。

まず、yum-cronというパッケージをインストールします。

[root@centos rdc]# yum -y install yum-cron
Install  1 Package
Total download size: 61 k
Installed size: 51 k
Downloading packages:
yum-cron-3.4.3-150.el7.centos.noarch.rpm
|  61 kB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : yum-cron-3.4.3-150.el7.centos.noarch
1/1
  Verifying  : yum-cron-3.4.3-150.el7.centos.noarch
1/1

Installed: 
 yum-cron.noarch 0:3.4.3-150.el7.centos
 
Complete!

[root@centos rdc]#

デフォルトでは、yum-cronはアップデートのみをダウンロードし、インストールしません。更新を自動的にインストールするかどうかは、管理者にあります。最大の注意点は、一部の更新ではシステムの再起動が必要になることです。また、一部の更新では、サービスが再び動作可能になる前に構成の変更が必要になる場合があります。

依存関係を更新すると、次の状況で再帰的な問題が発生する可能性があります-

  • 特定のライブラリについては、yumが更新を推奨しています

  • ライブラリはApacheServer 2.4のみをサポートしますが、サーバー2.3があります

  • 私たちのコマースサイトは特定のバージョンのPHPに依存しています

  • ライブラリ用にインストールされたApacheの新しいバージョンでは、PHPをアップグレードする必要があります

  • 当社の本番Webアプリケーションは、新しいPHPバージョンではまだテストされていません。

Yumは、設定されていない限り、通知なしにApacheとPHPを自動的にアップグレードする場合があります。

5つのシナリオすべてが実行されると、朝の大きな頭痛の種から、ユーザーデータを公開する可能性のあるセキュリティ侵害まで、あらゆる結果が生じる可能性があります。前述の例はある種の完璧な嵐ですが、そのようなシナリオを実行したくはありません。

アップデートの再起動と再構成によるダウンタイムの可能性が原因で、サービスの復元に必要な時間から収益が失われる可能性のあるシナリオにアクセスするのは、管理者の責任です。この慣行は、たとえば、数百万の顧客がいる1日あたり数百万ドルのeコマースサイトには十分に保守的ではない可能性があります。

それでは、システムアップデートを自動的にインストールするようにyum-cronを設定しましょう。

[root@centos rdc]# vim /etc/yum/yum-cron.conf
# Whether updates should be applied when they are available.  Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes

apply_updates = noapply_updates = yesに変更します。それでは、yum-cronの更新間隔を設定しましょう。

繰り返しになりますが、自動更新を使用してオンデマンドで更新をインストールするかどうかは両刃の剣である可能性があり、管理者はそれぞれの固有の状況について検討する必要があります。