Trả lời nhanh: Dựng một máy ảo chuẩn với hệ điều hành đã cập nhật và công cụ cần thiết, dọn sạch danh tính máy, rồi chuyển nó thành mẫu. Từ mẫu đó tạo máy mới trong vài giây. Kết hợp với cơ chế cấu hình tự động khi khởi động lần đầu thì máy mới có sẵn tên, địa chỉ mạng và khóa truy cập.
Cài hệ điều hành cho mỗi máy ảo mới là việc lặp lại tốn hai mươi phút mỗi lần và luôn có nguy cơ mỗi máy một kiểu. Mẫu dựng sẵn giải quyết cả hai vấn đề, và với một hạ tầng có vài chục máy ảo thì đây là thứ nên làm sớm.
Chuẩn bị máy mẫu
Sáu việc làm trên máy ảo trước khi biến nó thành mẫu.
- Cài hệ điều hành và cập nhật đầy đủ. Mẫu càng mới thì máy con càng ít phải cập nhật lúc dựng.
- Cài trình điều khiển bán ảo hóa cho đĩa và mạng. Bỏ qua bước này là mọi máy con sinh ra đều chậm.
- Cài các công cụ chung: tác nhân giao tiếp với lớp ảo hóa, công cụ giám sát, phần mềm sao lưu nếu có.
- Đặt cấu hình chuẩn của công ty: múi giờ, máy chủ đồng bộ thời gian, kho cập nhật, cấu hình nhật ký.
- Dọn sạch dấu vết. Xóa nhật ký, xóa lịch sử dòng lệnh, xóa các tệp tạm.
- Xóa danh tính máy. Đây là bước quan trọng nhất, chi tiết ở phần dưới.
Xóa danh tính máy, bước dễ quên nhất
Nếu bỏ qua bước này, mọi máy tạo từ mẫu sẽ mang cùng một danh tính, và điều đó gây ra hàng loạt vấn đề khó chẩn đoán.
Với máy Linux: xóa định danh máy, xóa các khóa của dịch vụ truy cập từ xa, xóa quy tắc gắn tên cố định cho card mạng, và xóa cấu hình mạng gắn với địa chỉ cụ thể.
Hệ quả nếu quên: nhiều máy có cùng định danh sẽ nhận cùng một địa chỉ từ máy chủ cấp phát, gây xung đột mạng rất khó tìm. Và các khóa truy cập giống nhau là một vấn đề bảo mật thật.
Với máy Windows: có công cụ chuẩn bị hệ thống của chính Microsoft, chạy nó ở chế độ tổng quát hóa. Việc này xóa định danh bảo mật của máy, thứ mà nếu trùng nhau sẽ gây vấn đề khi các máy tham gia cùng một miền.
Sau khi dọn xong, tắt máy và chuyển nó thành mẫu. Từ lúc đó mẫu ở chế độ chỉ đọc và không bật lên được nữa.
Hai kiểu nhân bản
Nhân bản liên kết. Máy con chỉ lưu phần khác biệt so với mẫu, phần chung vẫn đọc từ đĩa của mẫu. Tạo trong vài giây và tốn rất ít dung lượng ban đầu.
Đổi lại máy con phụ thuộc vào mẫu: không xóa được mẫu khi còn máy con, và không chuyển máy con sang máy chủ khác nếu mẫu không nằm trên kho dùng chung.
Rất hợp cho môi trường kiểm thử, nơi bạn dựng đi dựng lại nhiều máy giống nhau và xóa sau khi xong.
Nhân bản đầy đủ. Chép toàn bộ đĩa. Chậm hơn và tốn dung lượng bằng đúng kích thước mẫu, nhưng máy con độc lập hoàn toàn.
Đây là lựa chọn cho máy ảo chạy thật, vì bạn tự do chuyển nó, sao lưu nó và xóa mẫu mà không ảnh hưởng gì.
Cấu hình tự động khi khởi động lần đầu
Có mẫu rồi vẫn phải vào từng máy con đặt tên và địa chỉ mạng. Cơ chế cấu hình tự động giải quyết nốt phần này.
Cách hoạt động: bạn khai báo tên máy, địa chỉ mạng, tài khoản và khóa truy cập ở phần cấu hình của máy ảo. Khi máy khởi động lần đầu, một tác nhân bên trong đọc các thông tin đó và tự áp dụng.
Kết quả là quy trình tạo máy mới rút xuống ba bước: nhân bản từ mẫu, điền tên và địa chỉ, bật lên. Sau chưa tới một phút bạn đã có máy sẵn sàng dùng.
Để dùng được, mẫu phải có tác nhân tương ứng cài sẵn. Các bản Linux thông dụng đều có ảnh dựng sẵn kèm tác nhân này, tải về là dùng ngay làm mẫu.
Bảo trì mẫu
Mẫu cũ dần theo thời gian, và một mẫu ba tháng tuổi nghĩa là mỗi máy con sinh ra đều phải tải hàng trăm bản cập nhật.
Quy trình bảo trì gợi ý, làm mỗi quý:
- Nhân bản đầy đủ từ mẫu hiện tại ra một máy ảo tạm.
- Bật lên, cập nhật đầy đủ, cài thêm những gì mới cần.
- Dọn dẹp và xóa danh tính máy như quy trình ban đầu.
- Chuyển thành mẫu mới, đặt tên có ghi ngày tháng.
- Giữ mẫu cũ thêm một thời gian rồi xóa, sau khi chắc chắn không còn máy con liên kết nào.
Nên có tối thiểu hai mẫu: một cho bản Linux chuẩn của công ty và một cho Windows Server. Nếu có nhiều loại tải khác nhau thì thêm mẫu chuyên biệt, nhưng đừng quá nhiều vì mỗi mẫu là một thứ phải bảo trì.
Bước dễ quên nhất và hậu quả của nó
| Thứ phải xóa khỏi máy mẫu | Nếu quên thì sao |
|---|---|
| Định danh máy trong hệ điều hành | Nhiều máy nhân bản có cùng định danh, gây lỗi khi tham gia miền |
| Khóa máy chủ của dịch vụ đăng nhập từ xa | Mọi máy nhân bản dùng chung một khóa, đây là vấn đề bảo mật |
| Cấu hình mạng cố định | Các máy nhân bản đều nhận cùng một địa chỉ và xung đột |
| Nhật ký và tệp tạm | Máy mới sinh ra đã mang theo nhật ký của máy mẫu |
| Định danh dùng cho bản cập nhật hệ thống | Hệ thống quản lý cập nhật đếm nhầm nhiều máy thành một |
Việc dọn trước khi biến máy thành mẫu
# Tren may Linux, truoc khi chuyen thanh mau: # Xoa khoa may chu cua dich vu dang nhap tu xarm -f /etc/ssh/ssh_host_* # Xoa dinh danh maytruncate -s 0 /etc/machine-idrm -f /var/lib/dbus/machine-id # Xoa nhat ky va tep tamrm -rf /var/log/*.log /tmp/* # Xoa lich su dong lenhhistory -c && rm -f ~/.bash_history # Xoa cau hinh mang co dinh neu co, de may moi tu nhan dia chi # Tren may Windows, dung cong cu chuan bi he thong cua chinh# he dieu hanh do de xoa dinh danh may truoc khi tao mau.# Nhan ban ma bo qua buoc nay se gay loi khi may tham gia mien. # Sau khi nhan ban, viec dau tien tren may moi:# 1. Doi ten may# 2. Dat dia chi mang# 3. Cap nhat he thong len ban moi nhatBảo trì mẫu để nó không thành gánh nặng
- Cập nhật mẫu mỗi quý. Mẫu cũ nghĩa là mỗi máy mới sinh ra đều phải cài hàng trăm bản vá ngay sau khi dựng, và đó là thời gian lặp lại vô ích.
- Ghi lại trong mô tả của mẫu: cập nhật lần cuối ngày nào, có sẵn phần mềm gì. Không có ghi chú này thì sáu tháng sau không ai dám dùng.
- Đừng làm quá nhiều mẫu. Hai tới ba mẫu nền cộng với một kịch bản cấu hình tự động dễ bảo trì hơn nhiều so với mười mẫu chuyên biệt.
Câu hỏi thường gặp
Quên xóa danh tính máy thì sửa thế nào
Vào từng máy con, xóa các định danh liên quan rồi khởi động lại để hệ thống sinh mới. Với Windows thì phức tạp hơn và đôi khi phải rời miền rồi tham gia lại. Cách rẻ nhất vẫn là làm đúng ngay từ đầu ở mẫu.
Mẫu có tính vào dung lượng lưu trữ không
Có, mẫu chiếm dung lượng như một đĩa ảo bình thường. Với nhân bản liên kết, các máy con chỉ tốn thêm phần khác biệt, nên tổng dung lượng tiết kiệm đáng kể so với nhân bản đầy đủ.
Có nên đặt mẫu trên kho dùng chung không
Nên, nếu bạn có cụm nhiều máy chủ. Mẫu nằm trên kho dùng chung thì tạo máy con được ở bất cứ máy chủ nào, và máy con nhân bản liên kết cũng chuyển được giữa các máy chủ.
Tạo mẫu cho Windows có gì khác
Khác chủ yếu ở bước xóa danh tính: phải dùng công cụ chuẩn bị hệ thống của Microsoft ở chế độ tổng quát hóa. Cũng nhớ tính giấy phép: mỗi máy ảo Windows sinh ra từ mẫu vẫn cần được cấp phép đầy đủ theo quy tắc thông thường.
