Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

Ảo hóa mơ hồ - hướng dẫn giới thiệu

Nếu bạn nghĩ rằng cuộc sống của bạn thật nhàm chán và bạn không có đủ phần mềm ảo hóa để chơi và mày mò, thì bạn sẽ hài lòng nhất với nội dung hôm nay. Toàn bộ bài viết dành riêng cho Vagrant, một phần mềm bao bọc để triển khai và thử nghiệm ảo hóa.

Ý tưởng như sau:bạn ẩn các lệnh khó hiểu và trình bày một giao diện hợp nhất, sau đó kết hợp một số từ thông dụng như đám mây và không có gì, và nó trở thành một công nghệ mới hấp dẫn mà mọi người đều nói đến. Khá giống với OpenStack, OpenShift, OpenCloud và những cái tên lạ mắt khác. Trên thực tế, nếu bạn cũng quản lý để tung ra nhiều tên nhỏ hơn như PostgreSQL, Jenkins và Node.js, bạn sẽ giành được thêm điểm vì sự hiện đại, sành điệu và thú vị. Nhưng gạt tất cả những lời mỉa mai sang một bên, hãy xem công cụ này có thể làm được những gì, và liệu nó có ích lợi, giá trị và niềm vui nào không.

Lời nói rất cần thiết

Chỉ cần một chút giới thiệu, để cung cấp cho bạn một số ngữ cảnh. Vagrant ban đầu được thiết kế để đơn giản hóa việc kiểm tra phần mềm, phát triển và quản lý tài nguyên ảo hóa trong môi trường hỗn hợp, nhanh chóng. Ban đầu, nó chỉ có thể hoạt động với VirtualBox, đây không chính xác là trình ảo hóa được lựa chọn trong ngành, nhưng gần đây, chương trình này cũng hỗ trợ các công nghệ khác, như VMware, KVM và các công ty khác, đồng thời đi kèm với một số thủ thuật tích hợp hay.

Tóm lại, phương thức hoạt động là bạn sử dụng các lệnh lang thang hơn là các lệnh bản địa. Bạn có thể có nhiều trình ảo hóa và tất cả chúng sẽ có các cú pháp khác nhau, đây có thể là một loại chi phí chung. Đây là lý do tại sao bạn sử dụng Vagrant và ẩn những thứ xấu xí đằng sau một lớp trừu tượng linh hoạt đầy hy vọng. Nhưng với những từ nhàm chán đủ rồi, chúng ta hãy thực tế và học hỏi bằng tay và chân của mình.

Cài đặt

Để làm cho nó thú vị hơn, tôi sẽ KHÔNG trình diễn điều này trên Linux. Đợi đã, w00t. Chúng tôi sẽ sử dụng Windows, chỉ để thêm một chút đa dạng. Trong các bài viết tiếp theo, và tin tôi đi, sẽ có rất nhiều, chúng ta sẽ quay lại Linux, nhưng ở đây, tôi muốn cho bạn thấy rằng về mặt khái niệm, nó thực sự không có gì khác biệt.

Sau đó, hoàn toàn phấn khích và không có gì, hãy mở một cửa sổ Powershell và bắt đầu nhập một số lệnh. Ví dụ:bạn có thể muốn chạy Vagrant và điều này được thực hiện bằng cách chạy:

đi lang thang

Tuy nhiên, nếu bạn chưa chuẩn bị và khởi tạo môi trường làm việc, bạn sẽ gặp một số lỗi khá xấu xí:

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe lên
Cần có môi trường Vagrant hoặc máy đích để chạy cái này
yêu cầu. Chạy `vagrant init` để tạo môi trường Vagrant mới. Hoặc, lấy ID của máy mục tiêu từ `vagrant global-status` để chạy lệnh này. Tùy chọn cuối cùng là thay đổi thư mục có Vagrantfile và thử lại.

Sau khi khởi tạo môi trường, bạn có thể bắt đầu làm việc nghiêm túc.

Nhưng một lần nữa, chúng ta phải đối mặt với một số lỗi khó chịu:

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe lên
Đưa máy 'mặc định' lên với nhà cung cấp 'hộp ảo'...
==> mặc định:Không thể tìm thấy hộp 'cơ sở'. Đang cố gắng tìm và cài đặt...
mặc định:Nhà cung cấp hộp:hộp ảo
mặc định:Phiên bản hộp:>=0
==> mặc định:Thêm hộp 'cơ sở' (v0) cho nhà cung cấp:hộp ảo
mặc định:Đang tải xuống:cơ sở
mặc định:
Đã xảy ra lỗi khi tải xuống tệp từ xa. Lỗi
tin nhắn, nếu có, được sao chép dưới đây. Vui lòng sửa lỗi này và thử lại.

Không thể mở tệp /HashiCorp/Vagrant/bin/base
PS C:\HashiCorp\Vagrant\bin>

Theo mặc định, phiên bản Windows của Vagrant sẽ cố gắng khởi động một máy ảo từ một hình ảnh cơ sở. Hình ảnh đó sẽ không có sẵn, đó là lý do tại sao lệnh up sẽ bị lỗi khi bạn chạy nó mà không có bất kỳ sự chuẩn bị nào trước đó.

Do đó, điều đầu tiên là kéo một số hình ảnh. Giống như Docker, Vagrant đi kèm với kho lưu trữ trực tuyến của riêng mình, nơi lưu trữ các mẫu cơ bản. Bạn có thể lấy và cài đặt hệ điều hành theo cách thủ công, nhưng điều đó thiếu điểm trừu tượng đã nói ở trên. Hãy lấy một hình ảnh, ví dụ:

hộp lang thang thêm hashicorp/base

Nếu bạn chỉ định một hình ảnh không tồn tại, bạn sẽ gặp nhiều lỗi hơn:

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe hộp thêm hashicorp/base
Không thể tìm thấy hoặc không thể truy cập hộp 'hashicorp/base' trong danh mục từ xa. Nếu đây là hộp riêng tư trên Atlas của HashiCorp, vui lòng xác minh rằng bạn đã đăng nhập qua `vagrant login`. Ngoài ra, vui lòng kiểm tra lại tên. mở rộng
URL và thông báo lỗi được hiển thị bên dưới:

URL:["https://atlas.hashicorp.com/hashicorp/base"]
Lỗi:Lỗi URL được yêu cầu trả về:Không tìm thấy 404

Nhưng bạn mong đợi hình ảnh cơ sở. Có nhiều tài liệu tham khảo trực tuyến khác nhau về lý do tại sao sự cố này xảy ra và nó thuộc về khai báo mặc định trong tệp cấu hình. Nếu bạn thay đổi nó thành một trong những hình ảnh có sẵn và tải xuống, bạn sẽ giải quyết được sự cố. Thật vậy, trong Vagrantfile, bạn sẽ cần chỉnh sửa mục nhập mặc định. Thay thế cơ sở chuỗi bằng bất cứ thứ gì bạn muốn sử dụng làm hình ảnh mặc định khi khởi động Vagrant. Đây có thể là Ubuntu, Fedora, CoreOS hoặc bất kỳ thứ gì thuộc loại đó.

# Mọi môi trường phát triển Vagrant đều yêu cầu một hộp. Bạn có thể tìm kiếm các hộp tại https://atlas.hashicorp.com/search.
config.vm.box ="cơ sở"

Đối với bài tập của chúng tôi và có một lý do rất chính đáng trong tương lai cho việc này, chúng tôi sẽ kiểm tra sự lựa chọn ít rõ ràng hơn về hình ảnh CoreOS (yungsang/coreos). Lấy hình ảnh.

Xác minh rằng nó thực sự đã được thêm vào danh mục:

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe danh sách hộp
ubuntu/trusty64 (hộp ảo, 20150506.0.0)
yungsang/coreos (hộp ảo, 1.3.8)

Sau đó chạy lại Vagrant. CoreOS sẽ bắt đầu, bao gồm thiết lập mạng và người dùng, cùng một vài chi tiết khác. Sau một thời gian, hệ thống sẽ chạy. Bây giờ bạn có thể thử kết nối với máy chủ bằng SSH. Theo mặc định, mỗi phiên bản đang chạy sẽ được gán một cổng trên máy chủ cục bộ. Trong trường hợp của chúng tôi, dịch vụ SSH cho hộp của chúng tôi đang chạy trên cổng 2222 trên 127.0.0.1. Điều này rất giống với những gì chúng ta đã thấy với Docker. Một lần nữa, khái niệm repo, mạng, rất giống nhau. Gợi ý, có một lý do tốt cho việc này.

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe lên
Đưa máy 'mặc định' lên với nhà cung cấp 'hộp ảo'...
==> mặc định:Đang nhập hộp cơ sở 'yungsang/coreos'...
==> mặc định:Khớp địa chỉ MAC cho mạng NAT...
==> mặc định:Đang kiểm tra xem hộp 'yungsang/coreos' có được cập nhật không...
==> default:Đặt tên VM:bin_default_1431611566870_38538
==> mặc định:Xóa mọi giao diện mạng đã đặt trước đó...
==> mặc định:Chuẩn bị giao diện mạng dựa trên cấu hình...
mặc định:Bộ điều hợp 1:nat
==> mặc định:Cổng chuyển tiếp...
mặc định:22 => 2222 (bộ chuyển đổi 1)
==> mặc định:Đang chạy các tùy chỉnh VM 'khởi động trước'...
==> mặc định:Đang khởi động VM...
==> mặc định:Chờ máy khởi động. Có thể sẽ mất vài phút...
mặc định:Địa chỉ SSH:127.0.0.1:2222
mặc định:tên người dùng SSH:lõi
mặc định:Phương thức xác thực SSH:khóa riêng
mặc định:Cảnh báo:Hết thời gian kết nối. Đang thử lại...
==> mặc định:Máy đã khởi động và sẵn sàng!

Kết nối với máy ảo

Máy ảo của chúng tôi đang chạy. Tuyệt quá. Bạn có thể kiểm tra với trạng thái lang thang:

Bạn có thể sử dụng lệnh vagrant ssh hoặc vagrant rdp wrapper để bước vào máy ảo đang chạy. Có nhiều cách khác, nâng cao hơn để thực hiện việc này, nhưng chúng ta sẽ thảo luận về điều đó trong hướng dẫn tiếp theo, tập trung vào mạng và cụm.

Đối với máy khách Windows, bạn có thể sử dụng RDP, nhưng điều này sẽ không hoạt động trong trường hợp của chúng tôi, vì RDP không có sẵn trong CoreOS. Tôi không chắc liệu VNC có phải là một tùy chọn hay không, nhưng đó là điều tôi phải kiểm tra. Tương tự, SSH đặt ra một vấn đề, bởi vì Windows không đi kèm với tác nhân SSH mặc định và nếu bạn đã cài đặt PuTTY, nó có thể không có trong đường dẫn.

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe rdp mặc định
==> mặc định:Đang phát hiện thông tin RDP...
Thông tin kết nối RDP cho máy này không thể
phát hiện. Điều này thường xảy ra khi chúng tôi không thể tìm thấy IP
hoặc cổng để kết nối với RDP. Vui lòng xác minh bạn đang chuyển tiếp
một cổng RDP và máy của bạn có thể truy cập được.

PS C:\HashiCorp\Vagrant\bin> .\vagrant.exe ssh mặc định -- -A
Không tìm thấy tệp thực thi `ssh` trong bất kỳ thư mục nào trong biến %PATH%. Máy khách SSH có được cài đặt không? Hãy thử cài đặt Cygwin, MinGW hoặc Git, tất cả đều chứa ứng dụng khách SSH. Hoặc sử dụng ứng dụng khách SSH yêu thích của bạn với thông tin xác thực sau được hiển thị bên dưới:

Máy chủ:127.0.0.1
Cảng:2222
Tên người dùng:lõi
Khóa cá nhân:C:/Users//.vagrant.d/insecure_private_key

Sau đó, nếu bạn đang làm việc trên Windows, bạn cũng sẽ cần chuyển đổi khóa OpenSSH sang định dạng PuTTY hoặc tương tự. Một lần nữa, không phải điều mà hầu hết mọi người sẽ gặp phải trong cuộc phiêu lưu Vagrant của họ, nhưng thật hữu ích khi thấy những vấn đề tương tự được giải quyết theo nhiều cách khác nhau.

Tại thời điểm này, chúng tôi đã khởi chạy thành công phiên bản máy ảo Vagrant đầu tiên của mình, sử dụng VirtualBox làm nhà cung cấp, nhưng đó là điều mà chúng tôi chưa gặp phải ở bất kỳ đâu trong quá trình thử nghiệm của mình. Vâng, loại. Nhưng chúng tôi không cần sử dụng bất kỳ lệnh VirtualBox rõ ràng nào hoặc lo lắng về các tệp XML và những thứ khác. Đây mới chỉ là bắt đầu, nhưng nó cũng là phần cuối của hướng dẫn của chúng tôi ngày hôm nay. Chúng tôi kết luận trên một lưu ý cao.

Đọc thêm

Nếu bạn thích một chút văn bản:

Giới thiệu Vagrant, một bài viết trên Tạp chí Linux

Khóa học cấp tốc trên Vagrant

Kết nối mạng docker

Kết luận

Vagrant có vẻ là một khái niệm thú vị, mặc dù nó có thể không phải là cách tốt nhất để giải quyết các thách thức trong môi trường của bạn. Nếu bạn muốn thực sự làm chủ ảo hóa và bạn cần kiểm soát mọi thông tin thực tế về thiết lập của mình, thì bạn cần đầu tư thời gian, tâm huyết và sự kiên nhẫn cần thiết để tìm hiểu mọi thứ từ đầu. Bởi vì nếu không, bạn sẽ không thực sự có thể giải quyết bất kỳ vấn đề nào khi chúng xuất hiện và chúng sẽ hiểu hoặc hiểu được công nghệ.

Nhưng đó là một vòng quay thú vị và chúng ta vẫn sẽ xem Vagrant có thể đi bao xa trên hành trình ảo của mình. Chà, ít nhất, chúng tôi đã xử lý các sự cố thiết lập chương trình và cấu hình ban đầu, chúng tôi đã học cách kéo hình ảnh và khởi động chúng, thực hiện một số kiểm tra cơ bản và xử lý xung quanh kết nối mạng. Khá hữu dụng. Chắc chắn sẽ có nhiều hơn nữa, bao gồm khung plugin rất quan trọng, giúp mở rộng phần kết nối cho VMware, LXC, libvirt, cộng với mạng nâng cao, thiết lập cụm, v.v. Hãy theo dõi để cập nhật.

Chúc mừng.