用户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更是没见过了。须要用到的时候再了解也不晚。