zalo-icon
facebook-icon
phone-icon
Cài đặt Ubuntu và thiết lập môi trường Linux cho người mới | Ubuntu Setup Guide
Hướng dẫn cài đặt Ubuntu và thiết lập môi trường Linux cho người mới, gồm user, cập nhật, SSH, firewall, Python và backup.

Một máy Ubuntu cài xong chưa phải là môi trường sẵn sàng sử dụng. Cấu hình ban đầu quyết định mức độ an toàn, khả năng tái tạo và thời gian xử lý sự cố về sau.

Bài viết hướng dẫn từ lựa chọn Ubuntu LTS, phân vùng, tài khoản, cập nhật, timezone, SSH, firewall đến Python environment. Trọng tâm là một baseline có thể kiểm tra thay vì chuỗi lệnh cài đặt thiếu bối cảnh.

Sản phẩm người đọc sẽ hoàn thành

Sau bài viết, người học hoàn thành một Ubuntu lab baseline cùng checklist xác minh, inventory, tài khoản quản trị an toàn và môi trường Python tách biệt. Project được tổ chức thành các thư mục src, config, logs, tests và evidence. README ghi rõ phiên bản Ubuntu, kiến trúc máy, user thực thi, cách chạy, cách kiểm thử và cách khôi phục.

Python virtual environment và backup recovery
Thiết lập SSH và UFW Firewall an toàn
Timezone hostname và đồng bộ thời gian trên Ubuntu
Tài khoản quản trị và cập nhật Ubuntu an toàn
Chọn kiến trúc và tài nguyên CPU RAM disk cho Ubuntu Server

Bộ dữ liệu hoặc workload thực hành là máy ảo Ubuntu Server LTS dùng để phát triển ETL nhỏ và kết nối PostgreSQL. Trước khi bắt đầu, tạo snapshot hoặc bản sao dữ liệu, xác nhận còn đủ dung lượng và mở một terminal thứ hai để cứu hộ nếu phiên làm việc chính gặp lỗi. Những nguyên tắc này giúp bài tập gần với cách vận hành Linux trong doanh nghiệp.

Môi trường và quy ước an toàn

mkdir -p ~/linux-lab/{src,config,logs,tests,evidence}
cd ~/linux-lab
printf "started_at=%s\n" "$(date -Is)" | tee evidence/session.txt
uname -a | tee -a evidence/session.txt
cat /etc/os-release | tee -a evidence/session.txt

Bài thực hành dùng Ubuntu Server LTS trên máy ảo tối thiểu 2 vCPU, 4 GB RAM và 20 GB ổ đĩa. Không chạy trực tiếp trên máy production. Những lệnh có khả năng xóa dữ liệu, sửa quyền hoặc khởi động lại service phải được thử trên thư mục lab trước, đồng thời ghi lại trạng thái trước và sau.

1. Chọn phiên bản và kiến trúc

Ubuntu LTS phù hợp lab dài hạn vì có vòng đời hỗ trợ rõ. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Xác nhận kiến trúc CPU, dung lượng image và checksum từ nguồn chính thức trước khi cài. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/1. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

dpkg --print-architecture
uname -m
cat /etc/os-release

Kết quả cần thấy. Kiến trúc amd64 hoặc arm64 khớp image và bản phân phối là LTS đã chọn. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Image production phải có nguồn, checksum, SBOM hoặc quy trình phê duyệt. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

2. Thiết kế CPU RAM và disk

Thiếu tài nguyên làm bài lab lỗi theo cách khó hiểu. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Ghi capacity tối thiểu và đo tài nguyên thực tế sau boot. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/2. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

nproc
free -h
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS
df -hT

Kết quả cần thấy. Máy có ít nhất 2 vCPU, khoảng 4 GB RAM và filesystem còn đủ dung lượng. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Tách data disk khi workload có vòng đời backup và tăng trưởng khác OS disk. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

3. Tạo tài khoản quản trị

Làm mọi việc bằng root làm tăng phạm vi sự cố. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Xác nhận user hiện tại, group sudo và home có quyền riêng tư. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/3. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

id
getent group sudo
stat -c "%A %U:%G %n" "$HOME"

Kết quả cần thấy. User thuộc nhóm phù hợp, home không mở ghi cho người khác. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Dùng named account, MFA ở lớp cloud nếu có và audit sudo. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

4. Cập nhật an toàn

Package cũ có lỗi chức năng và lỗ hổng đã biết. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Cập nhật metadata, mô phỏng nâng cấp, ghi danh sách thay đổi rồi mới áp dụng trong lab. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/4. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

sudo apt update
apt-get -s upgrade | tee evidence/upgrade-plan.txt
sudo apt upgrade -y

Kết quả cần thấy. APT hoàn tất không lỗi và kế hoạch nâng cấp được lưu. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Production có maintenance window, staging, reboot policy và rollback image. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

5. Timezone và đồng bộ thời gian

Sai thời gian phá log correlation, token và lịch chạy. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Đặt timezone phù hợp, bật NTP và kiểm tra trạng thái đồng bộ. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/5. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

timedatectl
sudo timedatectl set-timezone Asia/Ho_Chi_Minh
timedatectl timesync-status

Kết quả cần thấy. Timezone đúng, System clock synchronized hiển thị yes sau khi ổn định. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Hệ thống phân tán thường lưu UTC ở dữ liệu, chỉ chuyển múi giờ khi hiển thị. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

6. Hostname và name resolution

Hostname rõ giúp log và inventory không bị nhầm. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Đặt tên theo quy ước môi trường–vai trò–số thứ tự và kiểm tra /etc/hosts. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/6. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

hostnamectl
getent hosts "$(hostname)"
cat /etc/hosts

Kết quả cần thấy. Hostname phân giải được và không trùng với máy khác. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Tên máy được cấp từ inventory hoặc IaC, không đổi tùy ý sau khi service phụ thuộc. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

7. SSH baseline

SSH là cửa ngõ quản trị nên cần cấu hình có kiểm chứng. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Kiểm tra effective config, key permission và mở phiên thứ hai trước khi reload. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/7. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

sshd -T | grep -E "passwordauthentication|permitrootlogin|pubkeyauthentication"
find ~/.ssh -maxdepth 1 -printf "%M %u:%g %p\n" 2>/dev/null

Kết quả cần thấy. Root login bị hạn chế, public key bật và file key có permission đúng. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Thay đổi SSH theo hai giai đoạn, giữ session cứu hộ và có out-of-band console. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

8. Firewall với UFW

Firewall không thay thế việc service bind đúng địa chỉ. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Xem port listen, đặt default deny incoming và chỉ allow SSH từ phạm vi phù hợp. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/8. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

ss -lntup
sudo ufw status verbose
sudo ufw allow OpenSSH
sudo ufw enable

Kết quả cần thấy. UFW active, SSH vẫn kết nối được và không có rule thừa. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Cloud security group và host firewall phải có owner và cùng phản ánh policy. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

9. Python virtual environment

Cài pip toàn hệ thống gây xung đột với package của OS. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Cài module venv, tạo môi trường riêng và chạy chương trình kiểm tra. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/9. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

sudo apt install -y python3-venv
python3 -m venv ~/venvs/data-lab
source ~/venvs/data-lab/bin/activate
python -c "import sys; print(sys.executable)"

Kết quả cần thấy. Python executable nằm trong ~/venvs/data-lab và không ghi vào system site-packages. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Khóa dependency, kiểm tra lỗ hổng và build artifact thay vì pip install trực tiếp trên server. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

10. Snapshot backup và recovery

Snapshot nhanh nhưng không thay thế backup độc lập. Trong bối cảnh một máy ảo mới cần được chuẩn hóa để học và chạy workload Data, bước này không chỉ nhằm ghi nhớ câu lệnh mà còn giúp hiểu trạng thái của hệ thống trước khi thay đổi. Mọi thao tác đều cần có đầu vào, kết quả mong đợi và cách quay lại trạng thái an toàn nếu xảy ra lỗi.

Thực hành. Tạo manifest cấu hình, checksum file lab và diễn tập khôi phục một file. Chạy lệnh bằng tài khoản không có quyền root, quan sát mã thoát với echo $?, rồi lưu kết quả vào thư mục evidence/10. Không sao chép lệnh có sudo trước khi hiểu chính xác file, service hoặc quyền sẽ bị thay đổi.

tar -czf ~/linux-lab-backup.tgz ~/linux-lab
sha256sum ~/linux-lab-backup.tgz | tee evidence/backup.sha256
tar -tzf ~/linux-lab-backup.tgz | head

Kết quả cần thấy. Archive đọc được, checksum lưu riêng và file mẫu phục hồi thành công. Nếu đầu ra khác dự kiến, cần đọc thông báo lỗi từ trái sang phải, xác nhận đường dẫn tuyệt đối, quyền truy cập, biến môi trường và trạng thái tiến trình. Đây là thói quen quan trọng khi làm việc với server thật, nơi một lệnh chạy thành công chưa chắc tạo ra kết quả nghiệp vụ đúng.

Góc nhìn production. Định nghĩa RPO, RTO, retention, encryption và kiểm thử restore định kỳ. Với thiết lập Ubuntu, tiêu chí hoàn thành gồm khả năng chạy lại, log đủ để điều tra, quyền tối thiểu, cấu hình có phiên bản và bằng chứng kiểm thử. Một thao tác thủ công chỉ được chấp nhận khi có lý do, người phê duyệt và kế hoạch tự động hóa sau đó.

Kiểm thử cuối bài

Kiểm thử gồm bốn lớp. Lớp chức năng xác nhận user đăng nhập được, cập nhật thành công, thời gian đúng, firewall có chính sách rõ và Python virtual environment chạy test. Lớp dữ liệu đối chiếu số file, kích thước, checksum hoặc số bản ghi trước và sau. Lớp vận hành kiểm tra retry, log, thời gian chạy và mức sử dụng tài nguyên. Lớp bảo mật xác nhận service không chạy bằng root nếu không cần thiết và file nhạy cảm không mở quyền cho group hoặc other.

set -euo pipefail
test -d ~/linux-lab/logs
test -s ~/linux-lab/evidence/session.txt
find ~/linux-lab -type f -perm -0002 -print | tee evidence/world_writable.txt
df -h | tee evidence/disk_after.txt
free -h | tee evidence/memory_after.txt

Một bài lab chỉ đạt khi lệnh có thể chạy lại mà không tạo trạng thái hỏng, lỗi trả mã thoát khác 0, log có timestamp và người khác làm theo README có thể tái tạo kết quả. Nếu kiểm thử chỉ dựa trên việc “màn hình không báo lỗi”, sản phẩm chưa đủ tiêu chuẩn production.

Những lỗi thường gặp và cách xử lý

Các lỗi thường gặp là chọn bản không còn hỗ trợ, đặt mật khẩu yếu, bật SSH trước khi hiểu firewall, cài package Python vào hệ thống, đổi timezone nhưng không kiểm tra NTP và dùng snapshot thay cho backup. Cách xử lý có hệ thống là tái hiện lỗi bằng đầu vào nhỏ, thu thập trạng thái bằng lệnh chỉ đọc, xác định lớp gây lỗi rồi mới thay đổi. Không sửa nhiều cấu hình cùng lúc vì sẽ mất khả năng xác định thay đổi nào thực sự giải quyết vấn đề.

Khi cần trợ giúp, cung cấp phiên bản hệ điều hành, câu lệnh đầy đủ đã che dữ liệu nhạy cảm, output, mã thoát, quyền của file liên quan và log trong đúng khoảng thời gian xảy ra lỗi. Mô tả tốt giúp rút ngắn thời gian điều tra và tránh các lời khuyên nguy hiểm như mở quyền 777 hoặc tắt firewall.

Đưa kỹ năng vào môi trường production

Baseline nên được mã hóa bằng cloud-init, Ansible hoặc image pipeline. Mỗi máy có asset owner, patch policy, inventory, logging, backup và ngày hết hạn; cấu hình thủ công phải được phản ánh lại trong mã.

Trước mỗi thay đổi, cần có ticket, phạm vi ảnh hưởng, cửa sổ triển khai, backup, tiêu chí thành công, tiêu chí rollback và người chịu trách nhiệm. Sau thay đổi, lưu evidence, cập nhật runbook và theo dõi ít nhất một chu kỳ workload. Linux ổn định không đến từ một câu lệnh thần kỳ mà từ quy trình có thể kiểm chứng.

Bài tập mở rộng

  1. Viết một script chỉ đọc để thu thập trạng thái liên quan đến chủ đề và xuất báo cáo có timestamp.
  2. Tạo một lỗi có kiểm soát trong máy ảo, ghi triệu chứng, giả thuyết, bằng chứng và cách khôi phục.
  3. Chuyển ba thao tác thủ công thành script có set -euo pipefail và kiểm tra đầu vào.
  4. Viết runbook một trang để người khác thực hiện mà không cần hỏi lại tác giả.
  5. Đánh giá thay đổi cần thiết nếu workload tăng gấp 100 lần.

Tài liệu tham khảo

  • Ubuntu Server Documentation.
  • GNU Coreutils và Bash Reference Manual.
  • Linux man-pages project.
  • systemd và OpenSSH documentation, sử dụng theo nội dung từng bài.

Kết luận

Một môi trường chuẩn giúp người mới học nhanh hơn và giúp đội vận hành giảm sai khác giữa máy. Kỷ luật ngay từ bước cài đặt tạo nền tảng cho mọi workload Data và AI sau này.

TechData.AI - Leading the Future.
Tham khảo các khoá học theo link: https://techdata.ai/techdata-ai-course/
Hoàng Minh.

Scroll to Top