用戶vagrant,密碼vagrantgit
這個安裝的時候設置就行了,若是是CentOS會讓你選擇是否讓這個用戶作管理員,勾選就行了。其餘的後面再設置。
設置.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-upgrade
ssh
CentOS:sudo yum update
ui
設備->安裝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
設置vagrant用戶的sudo權限開發
Debian: `root@debian:~# gpasswd -a vagrant sudo`
設置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
到你喜歡的目錄執行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
正常開機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更是沒見過了。須要用到的時候再瞭解也不晚。