vagrant打造跨平台可移动的开发环境

版权声明:让我们一起享受这神奇的0和1吧 https://blog.csdn.net/eebaicai/article/details/83050041
vagrant学习

1.vagrant是啥

在这里插入图片描述

  • vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具
    在这里插入图片描述

2.vagrant作用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.vagrant和virtualbox安装

- 安装vagrant 

这个可以避免在虚拟机上繁杂的用iso镜像创建系统

Vagrant提供了一种简单可移植的方式来配置虚拟开发环境, 开发环境可以被打包分发到不同的平台使用, 保证了开发环境的统一, 节约了开发者的生命.

https://www.vagrantup.com/downloads.html

//电脑用户名如果是中文

主要是因为vagrant up命令会尝试访问%userprofile%\.vagrant.d文件夹,但是,您%userprofile%的Windows 1251编码命名。设置VAGRANT_HOME可以指向vagrant的ruby脚本可识别的路径.

设置环境变量VAGRANT_HOME为其他路径,且不包含中文

然后还有打开virtualbox修改 默认虚拟电脑位置VirtualBox VMs的路径,不能包含中文

- 安装virtualbox

4.vagrant常用命令

vagrant -v/--version
vagrant -h/--help

vagrant init  //生成vagrantfile文件,以base的box初始化
vagrant init centos/7  //生成vagrantfile文件,也可以自己创建
vagrant up    //没安装,就先安装然后启动,如果已经安装,就启动
vagrant ssh  //ssh方式登录

vagrant status //状态
vagrant halt #关闭虚拟机环境,其实是调用vitualbox的管理接口,关闭了虚拟机
vagrant suspend #暂停,挂起虚拟机环境
vagrant reload  #修改了Vagrantfile后,使之生效(相当于先halt,再up)
vagrant destroy #销毁

vagrant box add --name box_name /path/of/box/file //离线添加虚拟机
vagrant box list //查看已有的虚拟机
vagrant box remove <name>
vagran box -h

虚拟机的本质底层还是操作系统,一般用虚拟机软件创建系统,需要iso文件,而在vagrant需要.box文件

5.实战

1.初始化启动虚拟机

box下载
https://pan.baidu.com/s/1kU8fUlD
下载之后请确保文件名为ubuntu1404.box
添加box
vagrant box add ubuntu1404 ubuntu1404.box
初始化box
vagrant init ubuntu1404
vagrant ssh

2.lamp和lnmp环境配置

--对虚拟机优化
//替换源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
sudo vim /etc/apt/sources.list #修改源
//将文件内容替换成:
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
//然后
sudo apt-get update #更新列表

//安装l(a|n)mp

-- Ngnix
apt-cache search nginx //看源缓存是否有nginx
sudo apt-get install nginx
nginx -v
//测试Nginx
curl -I 'http://127.0.0.1'

--Apache
apt-cache search apache2 //看源缓存是否有apache
sudo apt-get install apache2
apache2 -v
//测试访问,此时不能访问,因为80端口被nginx占用了,可以先把nginx停掉
curl -I 'http://127.0.0.1'
//更改端口,将端口设置为8888
//修改 ports.conf 文件
curl -I 'http://127.0.0.1:8888'

--Mysql
sudo apt-get install mysql-server #服务器端
//安装期间会提示输入为mysql设置root密码,我这边不操作,直接enter 不设置密码
sudo apt-get install mysql-client #客户端
mysql -uroot -p #测试连接库,上面安装服务端没有设置密码,这里直接enter进入

--php
//安装php
sudo apt-get install php5-cli
php -v

//PHP扩展
php5-mcrypt
php5-mysql
php5-gd

sudo apt-get install php5-mcrypt
...
...

//支持apache2的php模块
sudo apt-get install libapache2-mod-php5
//开启rewrite功能
sudo a2enmod rewrite

//支持nginx fastcgi
sudo apt-get install php5-cgi php5-fpm
//修改成9000端口 ,默认sock模式
cd /etc/php5/fpm/pool.d
sudo vim www.conf # search listen = 127.0.0.1:9000
sudo /etc/init.d/php5-fpm restart

--本机配置virtualbox的网络配置,实现端口转发
//8888 端口转发到 80
http://127.0.0.1:8888/
//8889 端口转发到 8888
http://127.0.0.1:8889/

3. vagran高级知识

在这里插入图片描述

--端口转发
//配置
     config.vm.network "forwarded_port", guest: 80, host: 8888 
     config.vm.network "forwarded_port", guest: 8888, host: 8889

--网络设置
//配置
config.vm.network "private_network", ip: "192.168.199.101"

--共享目录
//配置
config.vm.synced_folder "/Users/vincent/code/", "/home/www"
//NFS下,只能是私有ip就是nat模式

4.优化

--优化
//虚拟机名称
vb.name = "ubuntu_mooc"
//虚拟机主机名
config.vm.hostname = "mooc"
//配置虚拟机内存和CPU
vb.memory = "1024"
vb.cpus = 2

5.打包分发

--打包命令
vagrant package    //package.box
vagrant package --output xxx.box 
//https://www.cnblogs.com/litifeng/p/8589234.html

升级
在这里插入图片描述
在这里插入图片描述
启动可视化
在这里插入图片描述
根据打包的box新建,如果出现网络问题,删除网络配置或者用下图方法
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/eebaicai/article/details/83050041
今日推荐