Vagrant 快速入门
1. Vagrant功能:
?????Vagrant uses?Oracle’s VirtualBox?to build configurable, lightweight, and portable virtual machines dynamically..
??????【Vagrant 使用Oracle VM VirtualBox 動態(tài)創(chuàng)建和配置輕量級的,可重現(xiàn)的,便攜的虛擬機環(huán)境?!?/p>
2. Vagrant下載:
??????http://downloads.vagrantup.com/tags/v1.0.5
3. Vagrant安裝:
?????? 3.1. 下載并安裝Oracle VM VirtualBox: 例如在Windows環(huán)境下,需要安裝VirtualBox-4.2.0-80737-Win.exe
???????????????https://www.virtualbox.org/wiki/Downloads
?????? 3.2. 下載并安裝最新版本的Vagrant:
??????????????http://downloads.vagrantup.com/
???????[注]在 Windows and Mac OS X,vagrant?命令應(yīng)該自動添加到環(huán)境變量PATH. 但是在其他操作系統(tǒng)下,?你必須手動添加/opt/vagrant/bin?到環(huán)境變量PATH。
4. Vagrant命令
?????? Vagrant安裝完成之后,我們就可以從命令行通過vagrant命令來進行操作。vagrant 常用命令如下:
?????? vagrant box add <name> <url>
????? ?vagrant box list
????? ?vagrant box remove <name>
?????? vagrant box repackage <name>?
???????vagrant init [box-name] [box-url]
?????? vagrant up [vm-name] [--[no-]provision] [-h]
????? ?vagrant destroy [vm-name]
?????? vagrant suspend [vm-name]
?????? vagrant reload [vm-name]
?????? vagrant resume [vm-name]
?????? vagrant halt [vm-name]
?????? vagrant status [vm-name]?
?????? vagrant package [vm-name] [--base name] [--output name.box][--include one,two,three] [--vagrantfile file]
?????? vagrant provision [vm-name]
?????? vagrant ssh [vm-name] [-c command] [-- extra ssh args]
?????? vagrant ssh-config [vm-name] [--host name]
5. Vagrantfile
???????任何Vagrant工程下都有一個Vagrantfile,?就像makefile一樣,Vagrantfile用來配置vagrant的行為所創(chuàng)建虛擬機的信息,下面是一個基本的Vagrantfile:??????
Vagrant::Config.run do |config| # Setup the box config.vm.box = "my_box" end6. 創(chuàng)建第一個Vagrant虛擬環(huán)境以及工程:
(1)創(chuàng)建工程目錄,?并且執(zhí)行vagrant init命令,該命令會產(chǎn)生最初的?Vagrantfile
$ mkdir vagrant_guide $ cd vagrant_guide $ vagrant init(2)添加一個Base Box:
???? Vagrant不是從頭開始創(chuàng)建虛擬機,而是導(dǎo)入一個虛機的base image,在這個基礎(chǔ)上進行構(gòu)建。這些image就叫做Box.
??? ?Vagrant 支持從本地文件系統(tǒng)或者HTTP URL來添加boxes
????$vagrant box add?base?http://files.vagrantup.com/lucid32.box
??? ?$vagrant box add base D:\lucid32.box
????
(3)配置Project使用這個Box: 修改Vagrantfile為如下內(nèi)容:
???? Vagrant::Config.run do |config|
??????? config.vm.box = "base"
?????end
(4)啟動虛擬機
????$vagrant up
????
(5)停掉虛擬機
????$vagrant destroy
(6) SSH配置
???? Vagrant 提供了對虛擬機的SSH連接,只需要執(zhí)行一個命令:
????$vagrant ssh
????在Windows環(huán)境下可以使用PUTTY,配置下面的信息來連接虛擬機:
???? hostname: localhost
???? port:???????????? 2222
???? Connection Type: SSH
???? User Name:?? vagrant
???? Password:???? vagrant
????
(7)訪問剛才創(chuàng)建的Project.
???? Vagrant 通過VirtualBox的shared folder來連接你的application和虛擬機, 默認的shared folder的衛(wèi)士是/vagrant, 所以想要查看剛才創(chuàng)建的項目,只需要執(zhí)行:
?????vagrant@lucid32:~$?ls /vagrant
?????index.html? Vagrantfile
(8) Provisioning:
????? 通常情況下Box只做最基本的設(shè)置,而不是一次到位的設(shè)置好所有的環(huán)境。Vagrant通常使用chef或者Puppet來做進一步的環(huán)境搭建。
????? 回到剛才創(chuàng)建的index.html,我們需要安裝Apache。我們下面用Puppet來完成這一設(shè)置。
????? 1. 在項目的根目錄下創(chuàng)建文件夾manifests,然后在該文件家中創(chuàng)建Puppet的配置文件default.pp,該文件內(nèi)容如下:?????
# Basic Puppet Apache manifestclass apache { exec { 'apt-get update': command => '/usr/bin/apt-get update' } package { "apache2": ensure => present, } service { "apache2": ensure => running, require => Package["apache2"], } } include apache?? 2. 在Vagrantfile里添加對Puppet provisioning的支持:?
Vagrant::Config.run?do?|config|
??config.vm.box?=?"base"
??# Enable the Puppet provisioner
??config.vm.provision?:puppet
end
(9)?運行Project
??????? 為了使puppet的配置生效,如果不重啟虛機,則需要執(zhí)行vagrant reload命令。
???????? $ vagrant reload?
??????? 因為沒有配置port forwarding,所以你還不能從本地瀏覽器查看Project的輸出。只能SSH到虛擬機上查看127.0.0.1的輸出:
???????
(10) 進行端口映射
??????? 修改Vagrantfile, 添加本地端口和虛機端口的映射關(guān)系, 然后執(zhí)行vagrant reload,?然后你就可以通過本地瀏覽器來訪問:http://localhost:4567.??
Vagrant::Config.run do |config| # Forward guest port 80 to host port 4567 config.vm.forward_port 80, 4567 end? 7. 打包 Packaging 1. 創(chuàng)建一個新的文件Vagrantfile.pkg,內(nèi)容如下: Vagrant::Config.run do |config| # Forward apache config.vm.forward_port 80, 8080 end 2. 打包Project $ vagrant package --vagrantfile Vagrantfile.pkg 8. 打包完成后,在工程根目錄下就會生成package.box,別人就可以使用這個Box了: $ vagrant box add my_box /path/to/the/package.box $ vagrant init my_box $ vagrant up來自:http://blog.csdn.net/jillliang/article/details/8251242
轉(zhuǎn)載于:https://www.cnblogs.com/heidsoft/p/3823487.html
總結(jié)
以上是生活随笔為你收集整理的Vagrant 快速入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOM剪切板
- 下一篇: 正则表达式30分钟入门教程(转)