Vagrant是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。它使用Oracle的開源VirtualBox虛擬化系統,使用 Chef建立自動化虛擬環境。html
在Windows下,也能夠方便地使用Linux環境開發程序shell
官方文檔 http://docs.vagrantup.com/v2/getting-started/index.htmlapache
box https://vagrantcloud.com/discover/featuredbootstrap
下載安裝 VirtualBox https://www.virtualbox.org/wiki/Downloadscentos
下載安裝 Vagrant http://www.vagrantup.com/downloads.html安全
#進入D盤 C:\Windows\system32>d: #建立一個虛擬機的主目錄,這個目錄會與虛擬機/vagrant保持同步 mkdir vagrant_getting_started cd vagrant_getting_started #初始化,這裏須要一個centos的box,在box分享網站上能夠找到chef/centos-6.5 vagrant init chef/centos-6.5 #啓動虛擬機 vagrant up #登陸虛擬機 vagrant ssh
su root Password:vagrant #更改root密碼,方便SecureCRT登陸 默認虛擬機22端口映射宿主機2222端口 service sshd reload passwd root #後續的服務器安全加固措施,可使用key登陸 #下面的操做是讓虛擬機更加穩定 sudo yum update -y sudo yum install gcc sudo install kernel-devel
vagrant box list #列出可用box vagrant box add chef/centos-6.5 #添加雲box上的鏡像 vagrant box add chef/centos-6.5 chef/centos-6.5.box #添加本地box
vagrant up #啓動 vagrant reload #修改Vagrantfile快速使之快速生效 vagrant halt #關閉 vagrant suspend #暫停 vagrant resume #恢復 vagrant destroy #刪除
Vagrant::Config.run do |config| #Forward apache config.vm.forward_port 80, 8080 end
#打包完成後,會在工程根目錄下生成package.box vagrant package --vagrantfile Vagrantfile.pkg
rm -f /etc/udev/rule.d/70-persistent-net.rules
Vagrantfile 工程根目錄下,虛擬機的主要配置文件,提供網絡配置,共享配置,環境初始化配置ruby
(支持shell命令及腳本,chef,puppet,salt,Docker)bash
#端口映射 config.vm.network :forwarded_port, guest: 80, host: 8080 #私有網絡 config.vm.network :private_network, ip: "192.168.1.104" #DHCP接入實體網絡 config.vm.network :public_network #網卡橋接接入實體網絡 config.vm.network "public_network", bridge: 'en1: Wi-Fi (AirPort)'
#目錄共享 config.vm.synced_folder "E:/Blog", "/home/vagrant/Blog"
#!/usr/bin/env bash yum update yum install -y apache2 rm -rf /var/www ln -fs /vagrant /var/www
Vagrant.configure("2") do |config| config.vm.box = "chef/centos-6.5" config.vm.provision :shell, path: "bootstrap.sh" end
vagrant halt vagrant plugin install vagrant-vbguest vagrant up