资讯专栏INFORMATION COLUMN

Vagrant使用说明

big_cat / 2829人阅读

摘要:配置用户权限设置用户的权限设置用户的权限无需密码把下面这行改成这是的习惯,系的用的组是,所以也是一样把相应的组的设置改一下。

创建自己的box 安装 最小化安装

用户vagrant,密码vagrant

这个安装的时候设置就好了,如果是CentOS会让你选择是否让这个用户做管理员,勾选就好了。其他的后面再设置。

设置.ssh/authorized_keys

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

CentOS:
sudo yum update

安装VirtualBox Guest Additions

设备->安装VirtualBox Guest Additions,就可以把相应的iso『放在』虚拟机的光驱里。只有安装了这些附加功能才能正常用端口映射和目录同步功能。

Debian

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

CentOS

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权限无需密码

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9219.html

相关文章

  • win10下搭建virtualbox+vagrant+centos7box

    摘要:网址是一款基于的工具,用于创建和部署虚拟化开发环境,使用的虚拟化系统。解决了在我电脑上可以正常运行啊的情况。网址由于官网下载速度捉急,请保存到百度云自行下载到本地链接密码添加及配置下载好后,请找到在本地的路径,我的路径是。 作为一个javaweb开发者,一直使用windows作为开发系统,多少有点和行业不太匹配,对Linux开始产生兴趣,一方面想熟悉使用Linux作为后台系统做web开...

    KoreyLee 评论0 收藏0
  • win10下搭建virtualbox+vagrant+centos7box

    摘要:网址是一款基于的工具,用于创建和部署虚拟化开发环境,使用的虚拟化系统。解决了在我电脑上可以正常运行啊的情况。网址由于官网下载速度捉急,请保存到百度云自行下载到本地链接密码添加及配置下载好后,请找到在本地的路径,我的路径是。 作为一个javaweb开发者,一直使用windows作为开发系统,多少有点和行业不太匹配,对Linux开始产生兴趣,一方面想熟悉使用Linux作为后台系统做web开...

    figofuture 评论0 收藏0
  • 2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例Vagrantfile

    摘要:年最简单最通俗的安装使用说明,附带示例本章内容需要关闭啊,希望大家提前关闭,避免其他问题附带说明,本文有示例在文章下方,请耐心查看,使用时,希望您已经安装好了。是一个基于的工具,用于创建和部署虚拟化开发环境。 2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例vagrantfile 本章内容需要关闭 Hyper-V 啊,希望大家提前关闭,避免其他问题附带说明,本文有示...

    ningwang 评论0 收藏0
  • 2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例Vagrantfile

    摘要:年最简单最通俗的安装使用说明,附带示例本章内容需要关闭啊,希望大家提前关闭,避免其他问题附带说明,本文有示例在文章下方,请耐心查看,使用时,希望您已经安装好了。是一个基于的工具,用于创建和部署虚拟化开发环境。 2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例vagrantfile 本章内容需要关闭 Hyper-V 啊,希望大家提前关闭,避免其他问题附带说明,本文有示...

    dingda 评论0 收藏0
  • 2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例Vagrantfile

    摘要:年最简单最通俗的安装使用说明,附带示例本章内容需要关闭啊,希望大家提前关闭,避免其他问题附带说明,本文有示例在文章下方,请耐心查看,使用时,希望您已经安装好了。是一个基于的工具,用于创建和部署虚拟化开发环境。 2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例vagrantfile 本章内容需要关闭 Hyper-V 啊,希望大家提前关闭,避免其他问题附带说明,本文有示...

    2json 评论0 收藏0
  • Vagrant搭建可移动的PHP开发环境

    摘要:准备开发所需工具系统环境搭建系统搭建环境以及环境为啥不用因为很多公司用的,然而才能正常支持,在下安装一大堆东西不行,折腾了好些下,决定不躺着个坑。 准备 开发所需工具: Vagrant Oneinstack Virtualbox Vagrant box 系统环境:macOS Sierra 10.12.5搭建系统:CentOS 7搭建环境:Oneinstack(PHP以及Java环境...

    ckllj 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<