Quản lý môi trương phát triển web bằng Vagrant + Cheft
Sử dụng máy ảo Vagrant cho môi trường development trong team đã thành một “quy luật bất thành văn” nhờ sự hiểu quả, thuận tiện và đồng nhất mà Vagrant mang lại.
Đồng nhất OS cho việc development, đa dạng sử dụng trên nhiều OS khác nhau là điểm mạnh của Vagrant.
Và sự kết hợp với Chef với khẩu hiệu:
Bộ đôi Vagrant + Chef sẽ mang lại sự đồng nhất OS, software, everything the team should,….
Trong bài viết hôm nay mình sẽ sử dụng Vagrant + Chef để setup môi trường Laravel development (PHP framework) hoàn chỉnh.
(Bạn cần cài đặt trước những phần mềm sau:
Plugin cho Vagrant:
1
2
3
4
5
6
7
|
vagrant plugin install vagrant - omnibus
)
Let’ s start ! ! !
|
INIT PROJECT & VAGRANTFILE
Tạo project Laravel nào:
composer create-project –prefer-dist laravel/laravel vagrant-chef-laravel
Tạo Vagrantfile (đây là file config của vagrant, chỉ cần làm 1 lần, những người trong team về sao sẽ dùng lại)
cd vagrant-chef-laravel
vi Vagrantfile
Nhập nội dung vào Vagrantfile:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# Domain config site của các bạn
DOMAIN = 'vagrant-chef-laravel.dev'
Vagrant . configure ( "2" ) do | config |
# Config OS, ở đây mình dùng Centos version 6.5
# Các bạn có thể sử dụng bất kỳ OS nào phù hợp
config . vm . box = "centos65-vagrant-chef-laravel"
config . vm . box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box"
# Config IP private network cho máy ảo, đây là IP sử dụng để từ máy local
# truy cập vào máy ảo
# Các bạn có thể đổi số tùy "sở thích" hoặc trách trùng các con máy ảo khác
# Trong trường hợp khi chạy vagrant up bị lỗi network thì làm theo như sau:
# vagrant ssh
# sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
# exit
# vagrant reload --provision
config . vm . network "private_network" , ip : "192.168.33.101"
# Đoạn này config synced folder, nó sẽ map folder project của bạn vào
# đường dẫn /var/www/{domain bạn cung cấp phía trên}
config . vm . synced _folder "./" , "/var/www/#{DOMAIN}"
# Install chef
# Ở đây mình dùng plugin omnibus để kiểm soát version của chef
config . omnibus . chef_version = "12.10.24"
# provisioning with chef solo.
# phần chính đây rồi CHEF....
config . vm . provision : chef_solo do | chef |
chef . cookbooks_path = "./chef/cookbooks"
chef . data_bags_path = "./chef/data_bags"
chef . add _recipe "ntp"
chef . add _recipe "remi"
chef . add _recipe "httpd"
chef . add _recipe "php"
chef . add _recipe "composer"
chef . add _recipe "laravel"
end
end
|
CHEF & THE MYTH
1
2
3
4
5
6
7
8
9
10
11
12
|
config . vm . provision : chef_solo do | chef |
chef . cookbooks_path = "./chef/cookbooks"
chef . data_bags_path = "./chef/data_bags"
chef . add _recipe "ntp"
chef . add _recipe "remi"
chef . add _recipe "httpd"
chef . add _recipe "php"
chef . add _recipe "composer"
chef . add _recipe "laravel"
end
|
Chef Solo là:
chef-solo is an open source version of the chef-client that allows using cookbooks with nodes without requiring access to a Chef server
Nói một cách đơn giản, chúng ta sử dụng cookbooks đê define những thứ cần install!
Chúng ta cần tạo chef folder gồm 2 thư mục con là cookbooks và data_bags
Cấu trúc folder như sau:
Nhìn đoạn config Chef thì ta sẽ công việc rất đơn giản:
- chúng ta config cookbooks & data_bags
- sau đó lần lượt add các recipe trong cookbooks
NOW, NO MORE CONFIG
RUN IT:
vagrant up
Lần đầu hơi lâu 1 chút đấy nhé:
Xong rồi đây:
Edit C:\Windows\System32\drivers\etc\hosts
Add dòng này vào cuối file:
192.168.33.101 vagrant-chef-laravel.dev
Mở browser ra nào:
IT WORK, MAMA!!!
Vậy bây giờ chỉ cần 2 bước đơn giản là tất cả mọi người đã cả thế khởi động project 1 cách đơn giản, nhanh nhất có thể:
- Clone repository
- vagrant up File chef và cookbooks các bạn có thể tham khỏa ở đây
See you next time, more explain & practice in chef cookbooks!!!
(Kipalog người viết bonbon1702)
- Thị trường máy tính bảng hiện nay
- Disable Firefox Insecure Warnings
- Bản Đồ Tư Duy - Công cụ tuyệt vời để viết ý tưởng và sử dụng thông tin
- Các quy định về phát hành và quảng cáo game
- Tôi code vì tiền?
- Đầu tư vào ứng dụng, kênh đầu tư 1 vốn tỷ lời
- Một số dự án ứng dụng giao thông thông minh ở các thành phố tại Việt Nam
- Hướng dẫn tạo Module Joomla 1.5
- Máy tính bảng như một công cụ của doanh nghiệp
- Lập trình Cặp: chúng ta giúp nhau thành công?
- Top 10 nguồn học JavaScript trực tuyến tốt nhất
- Hướng dẫn tạo webserver với Google Cloud free, cài đặt Kloxo lên Google Cloud
* Viết ứng dụng cho smartphone và máy tính bảng: iPhone, iPad , Android, Tablet, Windows Phone, Blackberry, Uber app, Grab app, mạng xã hội, vận tải thông minh, thực tế ảo, game mobile,...
* Viết ứng dụng tìm và đặt xe, các hệ thống theo mô hình kinh tế chia sẻ, uber for x, ứng dụng giúp việc,...
* Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
* Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup, ...
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>