使用 Vagrant 首次透過 rsync 將檔案從用戶端複製到主機

使用 Vagrant 首次透過 rsync 將檔案從用戶端複製到主機

vagrant up執行“shell”配置時,將一些檔案下載到同步資料夾中。這些檔案也應該複製到主機同步資料夾中,以便可以從主機使用該專案。當使用網路檔案系統同步,這是自動完成的,但不是透過同步。有沒有辦法使用 rsync 和 Vagrant 來實現這一點?這是同步的資料夾配置:

config.vm.synced_folder "./", "/vagrant", type: "rsync", owner: "www-data",
rsync__exclude: [".git", "project1/app/cache", "project1/app/logs"],
rsync__args: ["--no-owner", "--verbose", "--archive", "-z", "--copy-links"]

答案1

根據文件、rsync只是vagrant中的一種單向同步。這意味著您必須使用不同的機制(例如 nfs)來從來賓同步回主機,或者必須實作自己的一些反向同步機制,例如在主機上手動執行 rsync 命令。

人們可能會為 vagrant 編寫一個 rsync-back 擴充功能(插件)。我不知道現有的插件可以實現這一目標。

如果您的來賓中安裝了 virtualbox 來賓擴展,您可能還需要查看 virtualbox 共享資料夾機製vboxsf作為 varant 同步資料夾而不是 nfs 和 rsync 的傳輸。

答案2

這些是從來賓同步到主機的命令,它們應該從您運行的資料夾中執行vagrant up

$ vagrant ssh-config > ssh_config
$ rsync -avH -e "ssh -F ./ssh_config" default:/vagrant/ ./

也可以看看這個答案是我在 stackoverflow 上寫的

答案3

如果您的訪客和主機有 ssh,您可以使用scp它來雙向傳輸資料。

相關內容