vagrant笔记(一)
添加一个虚拟机
vagrant add {title} {path} #tiltle是虚拟机的名字 path是box的路径
建立虚拟机
mkdir test # 创建一个叫test的文件夹
cd test
vagrant init {title} #出现一个Vagrantfile文件这是虚拟机的配置文件
各种指令
vagrant up #开机
vagrant halt #关机
vagrant reload #重启
...
vagrant的三种网络配置
端口转发
在配文件找到或直接添加如下语句
config.vm.forwarded_port 80, 8080 #宿主机对8080端口的访问会转发至虚拟机的80端
私有网络
在配文件找到或直接添加如下语句
config.vm.network "private_network", ip: "192.168.50.4"
该情况下只有宿主主机可以访问虚拟机,如果多个虚拟机设定在同一个网段也可以互相访问,当然虚拟机是可以访问外部网络的。
公有网络
在配文件找到或直接添加如下语句
config.vm.network "public_network", ip: "192.168.1.120"
或网卡桥接
config.vm.network "public_network", :bridge => 'en1: Wi-Fi (AirPort)'
这使得虚拟可以和宿主机一样
虚拟机以root用户登录
修改虚拟机文件
vim /etc/ssh/sshd_config file
修改此句为
PermitRootLogin yes
输入命令
sudo service ssh restart
与宿主机共享文件夹的建立
在配文件找到或直接添加如下语句
config.vm.synced_folder "./code", "/var/www/html"
将宿主机的改目录与虚拟机的该目录共享无论哪边的修改都会是对方同步
还有以下配置方式
config.vm.synced_folder
"your_folder"(必须) //物理机目录,可以是绝对地址或相对地址,相对地址是指相对与vagrant配置文件所在目录
,"vm_folder(必须)" // 挂载到虚拟机上的目录地址
,create(boolean)--可选 //默认为false,若配置为true,挂载到虚拟机上的目录若不存在则自动创建
,disabled(boolean):--可选 //默认为false,若为true,则禁用该项挂载
,owner(string):'www'--可选 //虚拟机系统下文件所有者(确保系统下有该用户,否则会报错),默认为vagrant
,group(string):'www'--可选 //虚拟机系统下文件所有组( (确保系统下有该用户组,否则会报错),默认为vagrant
,mount_options(array):["dmode=775","fmode=664"]--可选 dmode配置目录权限,fmode配置文件权限 //默认权限777
,type(string):--可选 //指定文件共享方式,例如:'nfs',vagrant默认根据系统环境选择最佳的文件共享方式