1. 下载virtualBox,vagrant
具体的下载过程无非就是到官网下载安装包(VirtualBox,Vagrant),除了vagrant软件下载因为没有国内的镜像,所以下载比较麻烦,没有梯子的话就迅雷百度云离线下载,之后就是下一步下一步的进行,没什么好说的。
2. vagrant box 下载
因为网络问题不能进行远程镜像,所以之后安装需要进行本地镜像安装,需要将所需的box下载下来
3. vagrant常用命令说明
命令 | 作用 |
---|---|
vagrant box add | 添加box的操作 |
vagrant init | 初始化box的操作,会生成vagrant的配置文件Vagrantfile |
vagrant up | 启动本地环境 |
vagrant ssh | 通过 ssh 登录本地环境所在虚拟机 |
vagrant halt | 关闭本地环境 |
vagrant suspend | 暂停本地环境 |
vagrant resume | 恢复本地环境 |
vagrant reload | 修改了 Vagrantfile 后,使之生效(相当于先 halt,再 up) |
vagrant destroy | 彻底移除本地环境 |
vagrant box list | 显示当前已经添加的box列表 |
vagrant box remove | 删除相应的box |
vagrant package | 打包命令,可以把当前的运行的虚拟机环境进行打包 |
vagrant plugin | 用于安装卸载插件 |
vagrant status | 获取当前虚拟机的状态 |
vagrant global-status | 显示当前用户Vagrant的所有环境状态 |
4. vagrant 使用
## 新建一个做实验用的文件夹
md virtual/vagrant
cd virtual/vagrant
## vagrant box add {title} {url}
## title:可以自行设置,是添加的box名称; url:下载到本地的box路径
vagrant box add centos7-1902 f:\hardwareResource\CentOS-7-x86_64-Vagrant-1902_01.VirtualBox.box
## vagrant init {title}
## 初始化Vagrantfile,生成Vagrantfile,title 里面是刚才添加的box名称
vagrant init centos7-1902
vagrantfile配置
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# centos 是显示在status中的名称
config.vm.define :centos do |centos|
# 当前vm使用的box镜像名称
centos.vm.box = "centos7-1903"
# 指定vm的hostname,多台虚拟服务器的时候,依靠hostname來做识别
centos.vm.hostname = "centos7"
# 将主机的8080端口请求,转发到vm的80端口,guest:虚拟机端口 host:本机端口
centos.vm.network "forwarded_port", guest: 80, host: 8080
# 桥接模式,该模式下的VM就像是局域网中的一台独立的主机
centos.vm.network "public_network", ip: "192.168.0.110"
#前面的路径是本机代码的地址,后面的地址就是虚拟机的目录,这是在虚拟机启动时自动挂载的
#centos.vm.synced_folder "G:/syncedFolder/centos7", "/outdate/vagrant_data"
# 登录用户名(默认有vagrant这个用户、在未设置之前root可能登录不了)
centos.ssh.username = 'vagrant'
# 默认的登录密码 (root用户的默认密码也是这个密码)
centos.ssh.password = "vagrant"
# 是否使用秘钥、公钥登录(默认为true,如果设为true那么上面的账号密码是无效的,建议设为true)
centos.ssh.insert_key = false
centos.vm.provider "virtualbox" do |vb|
#指定vm-name,也就是virtualbox管理控制台中的虚机名称
vb.name = "centos7Name"
# vagrant up启动时,是否自动打开virtual box的窗口,缺省为false
vb.gui = true
#指定vm内存,单位为MB
vb.memory = "1024"
#设置CPU个数
vb.cpus = 2
end
centos.vm.provision "shell", privileged: true, path: "./setup.sh"
end
end
- 修改配置文件需要重启。指令:
vagrant reload
。 -
在配置中没有配置username,password的话默认的账号密码都是vagrant
配置说明
Vagrant.configure("2") do |config| # ... end
当前配置文件有两个版本,分别是“1”和“2”,“1”:描述的是vagrant 1.0.x的配置(Vagrant::Config.run do |config| 此也为Vagrant 1.0.x 的配置);“2”:描述的是1.1之后版本的配置。
config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" config.vm.network "private_network", ip: "192.168.33.10" config.vm.network "public_network"
forwarded_port:端口映射 将虚拟机的端口映射到主机的端口上
private_network:私有网络 只有主机才能访问虚拟机,主句局域网内成员不能访问的虚拟机的内容
public_network:共有网络 主机局域网内成员可以访问虚拟机中的内容,虚拟机相当于局域网内的一员## 禁用原有的默认的共享目录 config.vm.synced_folder '.', '/vagrant', disabled: true ## 增加新的共享目录,第二个参数以当前文件夹为基准 ## windows下的abc文件夹对应linux下的/www/abc文件夹 config.vm.synced_folder "abc", "/www/abc",
vagrant文件夹有四种共享的方式
a、NFS共享方式,windows平台无法使用此配置,且用此方式时不能修改文件的所有者和所有组(可以通过插件来改变)b、RSync共享方式,所有平台都可以使用,但这种方式貌似有个缺点就是主机的改动可以同步到虚拟机中,但虚拟机中的改动无法同步到主机中,如果要实现双向同步可能还需做其它设置。
c、SMB共享方式,windows平台可以使用。
d、VirtualBox共享方式,这是VirtualBox提供的也是vagrant默认的共享方式。当文件数量小时用着不错,当文件数量大的时候打开网页会卡到超时。
I. 禁用fastestmirror插件
vi /etc/yum/pluginconf.d/fastestmirror.conf
#修改内容
enabled = 1//由1改为0,禁用该插件
II. 常用Linux命令
# 根据进程名查看进程信息
ps -ef | grep yum
# 根据进程id查看进程占用端口
netstat -nap | grep 1005
# 根据端口查看对应进程,查看占用8080端口的进程id
netstat -tunlp | grep 8080
# 根据进程id杀死进程,杀死进程id为1005的进程
kill -9 1005
# 重启
init 6
III. kernel headers not found for target kernel解决办法
yum update kernel -y
yum install kernel-headers kernel-devel gcc make -y
init 6
IV. Vagrant改变boxes存放路径
1. vagrant 的 boxes 默认是放在~/.vagrant.d/boxes下面的,先将之前 ~/.vagrant.d/
里面的文件夹复制到新的目录
cp ~/.vagrant.d/ /path/vagrant_home/
2. 设置环境变量,VAGRANT_HOME='/path/vagrant_home'
,重新运行后,boxes的存放目录就在 /path/vagrant_home/boxes
下面了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。