Trước kia dùng linux, sử dụng KVM để chạy máy ảo, chỉ cần vài câu lệnh là đủ để 1 cái máy chạy ngon lành, ssh vào ầm ầm, và chẳng có lý do gì để mình phải cài lên máy 1 phần mềm viết bằng Ruby, chỉ để phục vụ mục đích tương tự - lại còn phải chạy với Virtualbox (ngày xưa thế, giờ chắc đã hỗ trợ KVM).
Nhưng giờ đã khác, mình không còn dùng Linux nữa, Virtualbox là giải pháp duy nhất trên hệ điều hành này, cách để bật một máy ảo lên không gì khác ngoài sử dụng giao diện GUI. Sống tạm bợ được hơn một năm, và một ngày cuối tuần, mình bất ngờ tìm lại với Vagrant.
Từ khoá
vagrant: /ˈveɪɡr(ə)nt/ Vietsub: vâygrờnt : có nghĩa là người lang thang
Vagrant đơn giản đến bất ngờ, cái doc đọc xong trong vòng 20 phút, và cuộc đời sang trang.
Cài đặt
xem chi tiết tại: http://www.vagrantup.com/downloads
Từ giờ cần bật máy, chỉ cần cd vào thư mục tương ứng, gõ
$ vagrant up && vagrant sshTất nhiên bài viết này không viết lại hay dịch cái document rất ngắn gọn và dễ hiểu của vagrant, nên đừng gõ dòng lệnh trên nếu bạn chưa đọc doc.
Trong ví dụ này sẽ tạo một workspace để có một máy ảo ubuntu 14.04:
$ mkdir -p ~/vagrant/trustyhihivagrant sẽ tạo 1 file có tên ``Vagrantfile`` trong thư mục này.
$ cd !$ # bash
$ vagrant init
Chỉnh sửa file Vagrantfile
Có thể mở file này ra và chỉnh sửa theo ý muốn, mọi option đều đã có comment chi tiết nên không phải tìm đâu cả. Vài option đáng chú ý:
config.vm.box = CODE_CUA_BOXVagrant gọi image là "box", giá trị mặc định là "base", bạn có thể chỉ định một trong vài giá trị sau:
config.vm.box = "ubuntu/precise64"hay
config.vm.box = "ubuntu/trusty64"Tất cả các box xem ở đây https://atlas.hashicorp.com/boxes/search
Thay đổi giá trị
config.vm.synced_folderđể chọn thư mục trên máy host sẽ được "sync" vào máy ảo này. Chi tiết xem comment đi kèm.
Đổi kích thước bộ nhớ trong (RAM)
config.vm.provider "virtualbox" do |vb|để cài đặt bộ nhớ lên 1024 MB (mặc định ban đầu là 512 MB).
vb.memory = "1024"
end
Chỉnh sửa file ``Vagrantfile`` chán chê rồi, đến lúc bật máy và ssh vào:
$ vagrant up && vagrant sshNếu máy bạn chưa cài đặt ssh, xem tài liệu tại https://help.github.com/articles/generating-ssh-keys/
Chờ một lúc cho lệnh chạy xong - nếu không có lỗi gì xảy ra là máy ảo đã được bật và mình đã ssh vào máy này, sudo -sH để chuyển sang user root.
Troubleshooting
Về cơ bản chỉ có thế là đủ dùng. Có vài nhu cầu hay vấn đề đặc biệt có thể xảy ra:
- CPU của Vboxheadless thường ở 100% - nóng máy => giải pháp là cài plugin ``vagrant-vbguest``
Lý do là phải có cái này máy ảo mới hoạt động trơn chu được:
Guest Additions are designed to be installed inside a virtual machine after the guest operating system has been installed. They consist of device drivers and system applications that optimize the guest operating system for better performance and usability100% CPU: http://stackoverflow.com/questions/28293238/why-does-virtual-box-vboxheadless-process-using-vagrant-use-100-of-my-cpu
Cài đặt plugin
$ vagrant plugin install vagrant-vbguestCài thêm ``vagrant-vbox-snapshot`` nếu bạn cần thực hiện snapshot.
Danh sách các plugin
https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins
Các process lạ
Các Vagrant box thường đi kèm các chương trình tự động cấu hình như "chef-client" hay "puppet". Nên gỡ chúng nếu không dùng để tiết kiệm tài nguyên.
Cho người khác SSH vào máy ảo của mình
$ vagrant loginhttps://docs.vagrantup.com/v2/getting-started/share.html
rồi nhập user/password
$ vagrant share
Bài viết thực hiện với:
$ vagrant --versionTạm hết.
Vagrant 1.7.2
$ bash --version
GNU bash, version 4.3
hvn at familug.org
No comments:
Post a Comment