040-解決Linux使用virtualbox共享文件夾問題

這是堅持技術寫做計劃(含翻譯)的第40篇,定個小目標999,每週最少2篇。php

本文主要介紹,在使用virtualbox時,如何共享文件夾html

  • rsync 是單向(宿主機修改了,定時同步到虛擬機裏,可是虛擬機修改的不會對宿主形成影響)
  • nfs 官方文檔說 Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows. 並且須要下載插件,新手十有八九會被坑
  • smb 兼容性比較好,支持mac,linux,windows訪問(虛擬機),宿主機只限mac和win,可是win須要管理員權限,mac下操做挺複雜,還得進行配置,防止自動超時
  • VirtualBox 綜合來看,virtualbox不錯,固然,若是文件量太多的話,也有性能問題,意思是別想着用來構建前端項目(一個 node_modules 搞死你啊),能夠結合rsync使用,rsync能夠設置排除目錄,而後定時同步到虛擬機,須要雙向的,再把文件複製到掛載爲virtualbox的目錄下,宿主機就能夠訪問了。

python+vagrant+virtualbox系列文章
前端

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box_check_update = false
  config.vm.box = "centos/7"
  config.vm.hostname = "ansible"
  config.vm.network "private_network", ip: "172.17.8.102"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "4096"
    vb.cpus = 2
    vb.name = config.vm.hostname
  end
  ## 單向同步
  config.vm.synced_folder ".", "/vagrant", type: "rsync",
    rsync__verbose: true,
    rsync__auto: true,
    rsync__exclude: ['.git*', 'node_modules*','*.log','*.box','Vagrantfile']
    config.trigger.after :up do |t|
      t.info = "rsync auto"
      t.run = {inline: "vagrant rsync-auto"}
    end
  
  config.vm.provision "shell", inline: <<-SHELL
## 配置xshell等能夠使用密碼登陸
sed -e "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" -e "s/PasswordAuthentication no/PasswordAuthentication yes/g" -i  /etc/ssh/sshd_config
service sshd restart

## 設置yum的清華源(阿里雲源不穩定)
sudo sed -e "/mirrorlist/d" -e "s/#baseurl/baseurl/g" -e "s/mirror\.centos\.org/mirrors\.tuna\.tsinghua\.edu\.cn/g" -i /etc/yum.repos.d/CentOS-Base.repo
sudo yum makecache
sudo yum install -y epel-release

## 安裝virtualbox須要kernel-headers
yum install -y gcc make kernel-headers-$(uname -r) kernel-devel-$( uname -r)

## 能夠使用rsync同步目錄,不用每次都聯網下載
curl -O http://download.virtualbox.org/virtualbox/6.0.10/VBoxGuestAdditions_6.0.10.iso
sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro VBoxGuestAdditions_6.0.10.iso /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm VBoxGuestAdditions_6.0.10.iso
sudo umount /media/VBoxGuestAdditions
sudo rmdir /media/VBoxGuestAdditions
  SHELL
end
複製代碼

image.png

控制檯輸出以下所示,即爲掛載成功。
image.png

招聘小廣告

山東濟南的小夥伴歡迎投簡歷啊 加入咱們 , 一塊兒搞事情。
長期招聘,Java程序員,大數據工程師,運維工程師,前端工程師。node

參考資料

相關文章
相關標籤/搜索