GithubHelp home page GithubHelp logo

ghichep-vargrant's Introduction

#Tìm hiểu về Vargrant.

Vargrant là gì?
  • Là một công cụ giúp chúng ta có thể thiết lập và cấu hình môi trường dev một cách nhanh chóng , gọn nhẹ.
  • Điều quan trọng nhất nó là mã nguồn mơr => Free.
  • Nó có thể tự động tạo ra máy ảo sử dụng Oracle's vitualbox.
  • Là một sản phẩm được viết bằng Ruby.
  • Nó là một giải pháp tự động dễ dàng tương tác với vitualbox từ Oracle.
  • Nó cài đặt một máy ảo mới dựa trên Box được cấu hình sẵn và được quy định trong VargrantFile.
  • Các IP tĩnh được gán cho máy ảo có thể truy cập từ bên ngoài.
  • Các port cần thiết có thể được thiết lập để truy cập.
  • Khi một công việc được thực hiện , môi trường có thể bị phá hủy hoặc loại bỏ.
Vargrant và những lợi ích nó đem lại.
  • Giảm thiểu thời gian thiết lập.
  • Thực hiện dễ dàng và đơn giản.
  • Tự phục vụ, dựa trên Pull của một Base Box nào đó (Mỗi VM được dựa trên một basebox).
  • CÓ khả năng lặp lại (Một VM mới có thể được khởi tạo hoặc loại bỏ trong một vài phút).
Mô tả cách hoạt động .

Vargrant

##Tạo máy ảo từ Vargrant.

  • Để tạo được máy ảo bằng Vargrant thì trên máy tính của chúng ta cần có vitualbox và Vargrant.

  • Cách cài đặt vitualbox chúng ta có thể xem tại đây

  • Sau khi cài đặt xong Vitualbox chúng ta cần cài đặt Vargrant, công việc này cũng khá đơn giản, chúng ta tải Vargrant từ trang chủ và cài đặt bình thường.

  • Sau khi quá trình cài đặt hoàn tất chúng ta mở terminal lên (Ctrl + Alt + T) và gõ :

vagrant
  • Sau đó chúng ta tạo file vagrant_sample :
mkdir vagrant_sample
cd vagrant_sample
  • Sau đó chúng ta dùng lệnh:
vagrant init
  • Lệnh này giúp chúng ta khở tạo ra 1 file đó là Vagrantfile File này có 2 việc: 1 là chỉ định root directory cho project của bạn, các setup sau này sẽ được tính toán relative path từ Vagrantfile. 2 là setting cho toàn project, bao gồm OS, distribution, resources và các phần mềm được cài đặt cũng như cách access vào machine. Đây là 1 file được viết bằng Ruby (mặc dù không có đuôi .rb).

  • Mỗi máy ảo được tạo ra đề dựa vào 1 Boxes, các boxes này được cung cấp tại đây chúng ta có thể tham khảo và tải các boxes cần thiết về máy để có thể dễ dàng cài đặt masy ảo theo như cầu một cách nhanh nhất.

  • Ở đây mình sẽ tải Ubuntu 12.02-32bit :

vagrant box add hashicorp/precise32
  • Vagrant sẽ tự động tìm box với tên hashicorp/precise32 từ HashiCorp’s Atlas box catalog và download box này về máy tính của bạn. Đây là box có thể tái sử dụng trong nhiều project. Mỗi khi 1 project mới được tạo từ box này, vagrant sẽ tự động copy ra 1 image khác, mọi chỉnh sửa sẽ không ảnh hưởng đến base box. Để set box cho project của bạn, bạn cần edit file Vagrantfile. Mở file Vagrantfile
vi Vargrantfile
  • Tìm đến dòng config.vm.box = "base" và sửa thành :
config.vm.box = "hashicorp/precise32"
  • Lưu file lại và tiến hành tạo máy ảo bằng lênh:
vagrant up
  • Khi quá trình tạo VM kết thúc chúng ta có một máy Ubuntu trên Vitualbox nhận địa chỉa IP NAT được DHCP từ Vitualbox, để kiểm tra chúng ta thực hiện SSH vào VM đó :
vagrant ssh
  • kết quả chúng ta nhận được khi kiểm tra địa chỉ IP như sau :

scr1

  • Tuy nhiên như thế chúng ta tạo máy ảo với card mạng NAT và không có địa chỉ IP như mong muốn. Ở đây mình sẽ tiến hành tạo máy ảo đó với 2 card mạng NAT và hostonly (10.10.10.0/24) và eth1 nhận địa chỉ 10.10.10.10.

  • Trước tên chúng ta tạo một vboxnet với tên "vboxnet0" có dải 10.10.10.0/24

  • Sau đó chúng ta mở file Vagrantfile , tìm đến dòng : config.vm.network "private_network", ip: "x.x.x.x", và sửa lại như sau:

 config.vm.network "private_network", ip: "10.20.10.69",
  virtualbox__intnet: "vboxnet0"
  • Sau đó thực hiện tạo máy ảo và SSH vào để kiểm tra:
vagrant up
vagrant ssh
  • Kết quả chúng ta thu được như sau :

scr2 #Nguồn:

ghichep-vargrant's People

Contributors

datkk06 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.