Vagrant使用說明

建立本身的box

安裝

最小化安裝

  1. 用戶vagrant,密碼vagrantgit

    這個安裝的時候設置就行了,若是是CentOS會讓你選擇是否讓這個用戶作管理員,勾選就行了。其餘的後面再設置。
  2. 設置.ssh/authorized_keysgithub

mkdir -p $HOME/.ssh
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O $HOME/.ssh/authorized_keys
chmod 0700 $HOME/.ssh
chmod 0600 $HOME/.ssh/authorized_keys
chown -R vagrant $HOME/.ssh

這裏原來就是以vagrant@vagrant爲例,後來以爲vagrant這個單詞很差拼,索性改用戶名吧,爲了方便不一樣用戶名的讀者複製代碼,把裏面的絕對路徑都改爲了帶環境變量的。改了用戶名之後用vagrant ssh就無法直接登陸了,須要在Vagrantfile裏面指定
`config.ssh.username = "frost"服務器

更新系統

Debian:
sudo apt-get update && sudo apt-get dist-upgradessh

CentOS:
sudo yum updateui

安裝VirtualBox Guest Additions

設備->安裝VirtualBox Guest Additions,就能夠把相應的iso『放在』虛擬機的光驅裏。只有安裝了這些附加功能才能正經常使用端口映射和目錄同步功能。.net

Debianvagrant

apt-get install build-essential module-assistant
m-a prepare
cd /media/cdrom
sh VBoxLinuxAdditions-x86.run

CentOScode

sudo yum groupinstall "Development Tools"
sudo yum install kernel-devel
sudo mkdir /media/cdrom/
sudo mount /dev/cdrom /media/cdrom/
sudo ./VBoxLinuxAdditions.run

配置用戶權限

  1. 設置vagrant用戶的sudo權限開發

    Debian: 
    
    `root@debian:~# gpasswd -a vagrant sudo`
  2. 設置vagrant用戶的sudo權限無需密碼get

    `root@debian:~# visudo`

把下面這行

`%sudo    ALL=(ALL:ALL) ALL`

改爲

`%sudo    ALL=(ALL:ALL) NOPASSWD:ALL`

這是Debian的習慣,CentOS系的用的組是wheel,因此也是同樣把相應的wheel組的設置改一下。

其餘

若是還要安裝其餘的包,這時候能夠開始了,固然也能夠以後用vagrant登錄再安裝。

打包

vagrant package --base Debian --output Debian.box

添加

vagrant box add --name Debian Debian.box

設置本身的box

生成配置

到你喜歡的目錄執行vagrant init,會生成一個Vagrantfile的文件,按下面的說明作一些修改。

基本配置

config.ssh.insert_key = false
config.vm.box = "Debian"

同步目錄

config.vm.synced_folder "./Code", "/home/vagrant/Code"

端口映射

這裏只添加一條HTTP用的80端口,須要其餘的能夠再添加。
config.vm.network "forwarded_port", guest: 80, host: 8000

使用本身的box

開機

正常開機vagrant up

關機

優雅的關機vagrant halt

重啓

標準的重啓 vagrant reload

注意,覺得個人經驗來看,若是你直接在虛擬機中用reboot或者shutdown -h了,極可能會引發不可預知的錯誤,好比鏡像恢復到最初狀態,全部軟件被重置。因此若是可能,請使用上面說的這三個命令。

登錄

vagrant ssh由於前面已經設置了免密碼登錄,因此這時候就能夠很任性的隨意登錄了。

後記

因此如今咱們安裝完一個完整的方便分發的開發環境了,然而有什麼用呢?

想象一下這樣的場景,你有一臺配置還能夠的Windows電腦,而後你須要Linux下的開發環境。這時問題來了,若是你裝個虛擬機,在虛擬機裏開發,那你就和你喜歡的IDE無緣了—-這麼說有點絕對,你仍是能夠用sftp之類的協議實現文件同步的,但明顯沒有咱們如今這種方式優雅。

設置一個同步目錄,你在本地任性的用你喜歡的任何IDE寫代碼,寫完以後訪問127.0.0.1:8080就能夠訪問,這是一種什麼樣的體驗啊?(固然,若是你有多個域名要用,仍是配個本地域名比較好)

還有,你說我是Mac,什麼服務器,開發語言均可以安裝在本地,和Linux也沒有什麼差異。這個問題我也考慮過,但我我的的愛好是把他們隔離開。你的Mac上安裝個Apache了,Nginx了總感受怪怪的,並且搞很差這些東西哪裏配置很差你的宿主機都沒法工做了。因此,用虛擬機是成本最低的一種方式了。

我上面總結的這些僅限於我的使用,團隊用的話還須要更多的配置,例如前面使用了insecure key,這就是不適合團隊用的——但我尚未見過有團隊用這個東西,至於puppet/chef更是沒見過了。須要用到的時候再瞭解也不晚。

相關文章
相關標籤/搜索