基本安裝與配置html
Vagrant版本: 1.8.1web
咱們能夠通SSH登陸而後安裝一個web服務器,可是這樣每一個使用Vagrant的人都須要作一樣的事情。爲了解決這個問題,Vagrant爲咱們提供了自動預置的功能,當vagrant up執行時Vagrant會爲咱們自動安裝配置好的軟件,這樣咱們就可以重複建立多個具備相同軟件配置的客戶機了。shell
咱們爲基項目安裝APACHE,須要作的只是在Vagrantfile相同的目錄下建立一個名爲bootstrape.sh的shell腳本:apache
#!/usr/bin/env bash apt-get update apt-get install -y apache2 if ! [ -L /var/www ]; then rm -rf /var/www ln -fs /vagrant /var/www fi
而後咱們讓Vagrant在啓動的時候執行這個腳本,咱們須要修改Vagrantfile文件bootstrap
Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision :shell, path: "bootstrap.sh" end
這裏起做用的就是config.vm.provision配置。bash
若是Vagrant vm正在運行,咱們能夠執行服務器
vagrant reload --provision
來重啓vm,同時reload會指示Vagrant從新加載預置信息,若是隻是簡單重啓,則不會從新加載預置,由於Vagrant只會在第一次啓動時作這件事。
當Vagrant啓動成功後,咱們能夠先網絡
vagrant ssh
登陸該vm,而後運行ssh
vagrant@precise64:~$ wget -qO- 127.0.0.1
測試APACHE是否安裝成功。測試
Vagrant的網絡特性讓咱們能夠經過主機訪問客戶機
修改Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision :shell, path: "bootstrap.sh" config.vm.network :forwarded_port, guest: 80, host: 4567 end
這樣能夠經過端口4567,在主機上訪問客戶機80端口,執行如下命令
$ wget -qO- 127.0.0.1:4567
測試可否得到客戶機上APACHE的響應。
$ vagrant login Username or Email: mitchellh Password (will be hidden): You are now logged in!
登陸後執行命令
$ vagrant share ... ==> default: Your Vagrant Share is running! ==> default: URL: http://frosty-weasel-0857.vagrantshare.com ...
注意frosty-weasel-0857是臨時建立的url,能夠經過CTRL+C來終止分享對話,若是再次分享統一鏡像,這個臨時url也會發生改變。
關閉分爲三種:suspend掛起,halt停止和destroy銷燬。
Suspend掛起
經過執行命令vagrant suspend來保持當前運行的狀態,而後中止它。這個方法的好處是快速,一般只須要5-10秒的時間來啓動,很差的是掛起的這個vm仍然佔用着磁盤空間,須要更多的磁盤空間來保持vm內存裏面的狀態。
Halt停止
經過執行命令vagrant halt來中止客戶機,關閉客戶機的電源。這樣作的好處是能夠乾淨的關閉客戶機,但又保持了磁盤上的內容。很差的是要花更多的時間進行冷啓動,固然客戶機還佔用着磁盤空間。
Destroy銷燬
經過執行命令vagrant destroy來銷燬客戶機,關閉客戶機的電源。同時也會刪除客戶機上的硬盤。這種方式的好處是,客戶機上沒有任何殘留,磁盤空間和內存空間都會被主機回收。很差的是再次啓動的時候,Vagrant會要從新作全部的事情,好比從新導入vm和從新預置。
更多內容請參考https://www.vagrantup.com/docs/getting-started/