1,介绍Vagrant

我们做web开发的时候经常要安装各种本地测试环境,比如apache,php,mysql,redis等等。出于个人使用习惯,可能我们还是比较习惯用windows。虽然说在windows下搭建各种开发环境是可行的,各大开发环境都有windows版本。然而在windows下配置有时候会显得繁琐,并且还会导致开发环境(windows)和生产环境(lunix)不一致。

能不能在windows下也像linux那样开发?也许你想到了,用虚拟机。用虚拟机装个linux系统就好了。装完linux系统就设置共享目录,设置网络端口映射,等等。好像也有那么点繁琐。

还有,假如我们是一个团队进行开发,那么每个人的电脑上都要装个虚拟机+ linux系统+各种运行环境。手动设置麻烦不说,大家的开发环境不太一致(可能你装了apcahe我装了nginx等),也是头疼。能不能把各种设置都自动化,并且保持整个团队的开发环境一致呢?

Vagrant就是为了解决这个问题而生的。它使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。

2,下载

下载VirtualBox:https://www.virtualbox.org/wiki/Downloads

下载Vagrant:https://www.vagrantup.com/downloads.html

下载虚拟镜像:http://www.vagrantbox.es/ 选择 CentOS 7.2 x64 这个

3,安装

下载好上面的软件包后,先安装VirtualBox,然后安装Vagrant。都是双击即可安装的,所以没什么好介绍。下面介绍下怎么把镜像导入。

将下载好的 vagrant-centos-7.2.box 放到创建的工作目录 D:install\linux 里面

vagrant box list
vagrant box remove centos7.2

然后输入命令初始化

1
2
vagrant init centos7.2
vagrant box add centos7.2 vagrant-centos-7.2.box

检查是否导入成功

vagrant box list

4,配置

用文本编辑器打开 D:install\linux 目录下的 Vagrantfile 文件便可以进行一些常用配置。
下面列举出几个常用的配置。要用到其他配置请访问官网文档或者百度谷歌一下。

  • 1,端口映射

config.vm.network :forwarded_port, guest: 80, host: 8080

把上面这句代码前面的#号去掉。它表示映射本机的8080端口到虚拟机的80端口

优点:简单、容易理解、容易实现外网访问虚拟机。

缺点:需映射很多端口时较麻烦、不支持在宿主机器上使用小于1024的端口来转发(如:不能使用SSL的443端口来进行https连接)。

  • 2,Public network(公有网络) 推荐
    config.vm.network "public_network", ip: "192.168.50.4"
    优点:方便团队协作,别人可以访问你的虚拟机。

缺点:需要有网络,有路由器分配IP

  • 3,目录映射

config.vm.synced_folder "D:/www", "/var/www/html"

如果启用上面的命令,表示把本机的data目录共享到虚拟机里的/var/www目录

  • 5,启动

    进入目录 D:install\linux 后执行命令

    vagrant up

    如果是win7 可能会提示 powershell 版本达不到要求,按照 https://www.jianshu.com/p/16cd4b25249c 升级 powershell

    虚拟机启动之后则可以通过 vagrant ssh 联入虚拟机进行进一步的环境配置,或者软件安装相关的工作,在Windows系统下,并不能直接通过 vagrant ssh 连到虚拟机,需要使用 Putty,Xshell 等第三方工具进行连接。连接地址127.2.0.1,端口2222。登录的帐号root的密码为 vagrant

  • 6,导出

    在cmd里进行工作目录后,执行下面命令

vagrant package --output centos-7.2.box

完成后会在当前目录就会生成package.box,之后新建虚拟机则可使用这个box。如果事先在你的虚拟机里建立好了各种开发环境,那么你直接把这个box给你的团队其他成员安装,这样就可以省去一台台电脑部署的时间,还可以保持开发环境一致。很方便有木有。

  • 7,其他命令

下面列举出一些常用的cmd操作命令

1
2
3
4
5
6
7
8
vagrant up //(启动虚拟机)
vagrant halt //(关闭虚拟机——对应就是关机)
vagrant suspend //(暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
vagrant resume //(恢复虚拟机 —— 与前面的暂停相对应)
vagrant box remove centos6.6 //(移除box,其中centos6.6是box名)
vagrant destroy //(删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)
vagrant ssh // SSH登录到该虚拟机
vagrant reload // 重载

配置centos环境

使用 vagrant ssh 命令登录到该虚拟机 默认账号密码
vagrant vagrant
root vagrant

或者在xshell上访问,ip:127.2.0.1 port:2222 账号密码:root/vagrant

切换到管理员模式

su

更换国内源

1
2
3
4
5
6
7
8
9
10
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
下载阿里云源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者网易云源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
3、之后运行yum makecache生成缓存
yum makecache
4、更新
yum -y update

安装基础工具

1
2
3
yum install wget curl lrzsz git unzip zip net-tools vim
yum install golang vim-golang
yum install nginx

参考

搭建宝塔(可选)

1
2
3
yum update
yum install -y vim lrzsz wget curl git subversion unzip zip net-tools unzip zip
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

记住最后的 地址用户名及密码
Bt-Panel: http://183.17.229.18:8888 http://172.12.10.117:8888
username: fcfu5v0d
password: 3ec942f9