Quản trị viên Linux - Cập nhật hệ thống

Hệ thống CentOS 7 có thể được cập nhật theo ba cách:

  • Manually
  • Automatically
  • Cập nhật thủ công cho các vấn đề bảo mật lớn và định cấu hình cập nhật tự động

Trong môi trường sản xuất, bạn nên cập nhật thủ công cho các máy chủ sản xuất. Hoặc ít nhất là thiết lập một kế hoạch cập nhật để quản trị viên có thể đảm bảo các dịch vụ quan trọng đối với hoạt động kinh doanh.

Thật hợp lý khi một bản cập nhật bảo mật đơn giản có thể gây ra sự cố đệ quy với ứng dụng phổ biến yêu cầu Quản trị viên nâng cấp và cấu hình lại. Vì vậy, hãy bỏ qua việc lên lịch cập nhật tự động trong sản xuất trước khi thử nghiệm trong máy chủ phát triển và máy tính để bàn trước.

Cập nhật thủ công CentOS 7

Để cập nhật CentOS 7, chúng ta sẽ muốn làm quen với lệnh yum .yumđược sử dụng để xử lý kho lưu trữ gói trong CentOS 7. yum là công cụ thường được sử dụng để -

  • Cập nhật Hệ thống CentOS 7 Linux
  • Tìm kiếm các gói
  • Cài đặt các gói
  • Phát hiện và cài đặt các phụ thuộc bắt buộc cho các gói

Để sử dụng yum cho các bản cập nhật, máy chủ CentOS của bạn cần được kết nối với Internet. Hầu hết các cấu hình sẽ cài đặt một hệ thống cơ sở, sau đó sử dụng yum để truy vấn kho lưu trữ CentOS chính về chức năng bổ sung trong các gói và áp dụng các bản cập nhật hệ thống.

Chúng tôi đã sử dụng yum để cài đặt một vài gói. Khi sử dụng yum, bạn sẽ luôn cần phải làm như vậy với tư cách là người dùng root. Hoặc người dùng có quyền truy cập root. Vì vậy, chúng ta hãy tìm kiếm và cài đặt một trình soạn thảo văn bản dễ sử dụng có tên là 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]#

Bây giờ, hãy cài đặt trình soạn thảo văn bản 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]#

Chúng tôi đã cài đặt trình soạn thảo văn bản nano. Phương pháp này, IMO, dễ dàng hơn nhiều so với việc tìm kiếm các tiện ích trên các trang web và chạy trình cài đặt theo cách thủ công. Ngoài ra, các kho lưu trữ sử dụng chữ ký số để xác thực các gói đảm bảo rằng chúng đến từ một nguồn đáng tin cậy với yum. Quản trị viên sẽ xác nhận tính xác thực khi tin tưởng vào các kho lưu trữ mới. Đây là lý do tại sao việc sử dụng các kho lưu trữ của bên thứ ba được coi là phương pháp hay nhất.

Yum cũng có thể được sử dụng để loại bỏ một gói.

[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

Bây giờ chúng ta hãy kiểm tra các bản cập nhật.

[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

Như mô tả, chúng tôi có vài chục bản cập nhật đang chờ cài đặt. Trên thực tế, có tổng số khoảng 100 bản cập nhật vì chúng tôi chưa định cấu hình các bản cập nhật tự động. Vì vậy, hãy cài đặt tất cả các bản cập nhật đang chờ xử lý.

[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]:

Sau khi nhấn phím "y", quá trình cập nhật CentOS 7 sẽ bắt đầu. Quá trình chung mà yum trải qua khi cập nhật là:

  • Kiểm tra các gói hiện tại
  • Tìm trong kho lưu trữ các gói cập nhật
  • Tính toán các phụ thuộc cần thiết cho các gói được cập nhật
  • Tải xuống các bản cập nhật
  • Cài đặt bản cập nhật

Bây giờ, hãy đảm bảo hệ thống của chúng tôi được cập nhật -

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

[root@centos rdc]#

Như bạn có thể thấy, không có bản cập nhật nào được liệt kê.

Định cấu hình cập nhật tự động cho YUM

Trong môi trường Doanh nghiệp, như đã đề cập trước đó, cập nhật tự động có thể là phương pháp cài đặt ưu tiên hoặc không. Hãy xem qua các bước để định cấu hình cập nhật tự động với yum.

Đầu tiên, chúng tôi cài đặt một gói có tên là 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]#

Theo mặc định, yum-cron sẽ chỉ tải xuống các bản cập nhật và không cài đặt chúng. Việc cài đặt các bản cập nhật tự động hay không là ở Quản trị viên. Cảnh báo lớn nhất là: một số bản cập nhật sẽ yêu cầu khởi động lại hệ thống. Ngoài ra, một số bản cập nhật có thể yêu cầu thay đổi cấu hình trước khi các dịch vụ hoạt động trở lại.

Cập nhật phần phụ thuộc có thể tạo ra sự cố đệ quy trong trường hợp sau:

  • Một bản cập nhật được đề xuất bởi yum cho một thư viện nhất định

  • Thư viện chỉ hỗ trợ Apache Server 2.4, nhưng chúng tôi có máy chủ 2.3

  • Trang web thương mại của chúng tôi dựa trên một phiên bản PHP nhất định

  • Phiên bản Apache mới được cài đặt cho thư viện yêu cầu nâng cấp PHP

  • Các ứng dụng web sản xuất của chúng tôi vẫn chưa được thử nghiệm với phiên bản PHP mới hơn

Yum có thể tiếp tục và tự động nâng cấp Apache và PHP mà không cần thông báo trừ khi được định cấu hình không.

Nếu tất cả 5 tình huống diễn ra, nó có thể dẫn đến bất cứ điều gì từ đau đầu lớn vào buổi sáng cho đến khả năng xâm phạm bảo mật làm lộ dữ liệu người dùng. Trong khi ví dụ nói trên là một cơn bão hoàn hảo, chúng tôi không bao giờ muốn một kịch bản như vậy diễn ra.

Quản trị viên tùy thuộc vào việc truy cập các tình huống có thể có khả năng mất doanh thu trong thời gian cần thiết để khôi phục dịch vụ do thời gian ngừng hoạt động có thể xảy ra khi khởi động lại và cấu hình lại cập nhật. Cách làm này có thể không đủ thận trọng đối với một trang web thương mại điện tử trị giá hàng triệu đô la mỗi ngày với hàng triệu khách hàng.

Bây giờ, hãy cấu hình yum-cron để tự động cài đặt các bản cập nhật hệ thống.

[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

Chúng tôi muốn thay đổi apply_updates = no thành apply_updates = yes . Bây giờ hãy định cấu hình khoảng thời gian cập nhật cho yum-cron .

Một lần nữa, việc sử dụng các bản cập nhật tự động và cài đặt các bản cập nhật theo yêu cầu có thể là một con dao hai lưỡi và cần được quản trị viên xem xét cho từng trường hợp riêng biệt.