Mở bài
Trong quá trình phát triển application thì chắc chắn developer phải đi qua 1 công đoạn gọi là "setup environment" bởi vì từng project sẽ có những yêu cầu, frameworks, tools, libraries etc.. khác nhau. Và nếu là ở vị trí team leader, project management, technical leader thì việc tốn thời gian setup environment cho project mới và cho developer mới là 1 việc làm lập đi lập lại và khá tốn thời gian, làm giảm năng suất làm việc. Và việc để từng developer tự setup environment có thể gây ra sự không đồng bộ dẫn tới những sai sót trong quá trình phát triển Ngoài ra, trong lúc phát triển thì 80% là sẽ phải thêm vào những libraries, tools etc.. khác vào project, và việc đồng bộ thay đổi này với cả team lại 1 lần nữa tốn thời gian của cả team. Tiếp theo là việc deployment, việc nhớ và ghi lại cái libraries, tools đã dùng trong lúc development và cài những cái đó vào production environment thì lại 1 lần nữa tốn thời gian và có thể có sai sót Tóm lại là quá trình setup environment và deployment nếu làm 1 cách thủ công thì rất mất thời gian và dễ sai sót Thân bài VAGRANT!!!! Từ trang chủ Vagrant(http://vagrantup.com/)
Quote:
Trong lúc phát triển, nếu như có những thay đổi nào về environment, developer chỉ cần thêm vào "cookbooks" (1 thuật ngữ dùng để chỉ 1 folder gồm nhiều file ruby dùng để setup environment), hoặc developer liên hệ với team leader để team leader update vagrant box và các developers khác chỉ cần chạy 1 câu lệnh để update environment Nhược điểm duy nhất của Vagrant là ngốn nhiều CPU + RAM + HDD vì phải cài đặt 1 virtual machine. Ưu điểm của vagrant - Dễ backup vì chỉ cần sao lưu file máy ảo - Không phải cài lung tung vào máy chính - Sau vài tháng nếu muốn tiếp tục phát triển project thì chỉ cần 1 câu lệnh là đâu vào đó - Code được chạy native trên Linux nhưng không cần phải cài Linux vào máy chính, vagrant có thể chạy được trên Mac, Linux và Windows. Developers có thể sử dụng bất kì IDE, text editor nào để phát triển - Cookbooks của vagrant có thể dùng để deploy trực tiếp cho production server thông qua chef solo (1 ruby library khác để cài đặt environment) ================================================ Tạm thời nhiêu đây, đi ăn cái rồi mai viết tiếp |
#2
| |||||||||||||||
| |||||||||||||||
Re: Vagrant
Cách cài đặt Vagrant
- Đầu tiên là phải cài VirtualBox trước - Sau đó là cài vagrant, có 2 cách cài vagrant
[b]Cài đặt base box[b] Sau khi cài xong vagrant thì việc đầu tiên cần làm là cài base box. Base box cũng giống như 1 file ISO để cài 1 máy ảo, nhưng nó được tối ưu để sử dụng với vagrant. Thường thì Base box là Ubuntu LTS (Lucid, Precise) 32bit và sử dụng 384MB, tuy nhiên cũng có những community box (http://www.vagrantbox.es/). Base box sẽ được cài 1 lần duy nhất, từ 1 base box thì nhiều virtual machine sẽ được setup và provision (cài đặt các libraries cần thiết) tuỳ theo yêu cầu từng project.
Quote:
Vào thư mục của project, chạy 2 câu lệnh sau
Quote:
Dòng tiếp theo là khởi động máy ảo (tầm 1,2 phút tuỳ cấu hình máy chủ) Cấu trúc thư mục trong vagrant Điểm chính của vagrant là sử dụng máy ảo để chạy project trên môi trường Linux, và đồng thời vẫn tạo cho developers sự thoải mái để sử dụng IDE yêu thích. Để làm được việc đó thì sẽ có 1 thư mục được chia sẽ giữa máy ảo và máy chủ. Mặc định thì thư mục đó là thư mục chứa file Vagrantfile. Tuy nhiên developer vẫn có thể sử dụng Vagrantfile để thêm vào nhiều thư mục khác. Bên trong máy ảo thì thư mục share mặc định sẽ nằm ở /vagrant Để vào bên trong máy ảo, thì dùng lệnh sau
Quote:
Trong Vagrantfile sẽ có nhiều dòng như vầy
Quote:
5432 là port của Postgresql server chạy bên trong máy ảo Vagrant sẽ forward port 80 và 5432 của máy ảo về port 8080 và 9090 của máy chủ. Như vậy developers sẽ có thể access web server thông qua localhost:8080 và sử dụng Postgresql admin tool connect vào localhost:9090 để access Postgresql server. Cookbooks Trong vagrant, cookbooks là tập hợp của nhiều ruby files được dùng để provision máy ảo. Trong Vagrantfile, sẽ có configuration cho cookbook
Quote:
Chef solo sử dụng cookbooks để provision máy ảo, vì cookbooks chỉ là ruby code cho nên sẽ đảm bảo các máy ảo đều có chung 1 environment. Cookbook có thể tham khảo ở đây Bây giờ đi qua từng dòng của configuration trên
Quote:
Quote:
Cấu trúc thư mục của vagrant_main
Quote:
Quote:
Quote:
Cách tắt vagrant Lúc không cần tới 1 vagrant nữa
Quote:
Quote:
Quote:
Quote:
Last edited by FighterVn; 05-08-2012 at 23:05. |
#3
| |||
| |||
Re: Vagrant
Mình mới nghe cái này lần đầu, cần hỏi bác FighterVn 1 chút, thực chất cái VM này nó chạy Ubuntu ah?
|
#4
| |||
| |||
Re: Vagrant
VM thì chạy gì cũng đc, thường thì vagrant box sẽ chạy cùng 1 distro với production server
|
#5
| |||
| |||
Re: Vagrant
Quote:
Chờ phần giải thích cách hoạt động |
#6
| |||
| |||
Re: Vagrant
Bài chia sẻ rất hay , có cái để vọc rồi, thanks chủ thớt nhé, cái này mới biết
|