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.