1

我有一个流浪文件。一旦在运行 vagrant 的文件中,rsync 失败并且生成的实例变得无用(有时 sshd 进程在目标 AWS 实例可用后重新启动)。我想让 vagrant rsync 进程休眠约 20 秒,然后启动 rsync 到目标实例。所以,不用担心 sshd 进程。我在 Vagrant 文件中尝试了以下命令,但没有运气(在 rsync 运行之前在命令下方指定)。有人能帮助我吗

试验一:

 puts "Sleep for a while to keep SSH alive"
 sleep(20)

试验二:

   config.vm.provision "shell", inline: "echo Sleep for a while to keep SSH alive;sleep 20" 

流浪文件:

Vagrant.configure(2) do |config|
 FOLDERS_TO_SYNC = {
      "." => "/folder1",
      "../folder2" => "/folder2"
  }

config.vm.provider "aws" do |aws, override|
.....
  override.vm.provision "shell", inline: "echo Sleep for a while to keep SSH alive; sleep 20"
  override.vm.synced_folder "folder1", "dest/folder1", type: "rsync", create: true
  override.vm.synced_folder "folder2", "dest/folder2", type: "rsync", create: true

  end

  config.vm.provision "chef_solo" do |chef|
...
end

结尾

流浪者 v1.8.1

4

2 回答 2

0

对于 Windows/PowerShell

config.vm.provision "shell", inline: "Start-Sleep -s 15"

为我工作,见这里

于 2019-08-23T12:11:49.267 回答
0

I did something like that, in my case 10 seconds was necessary.

This is a line in my Vagrantfile.

config.vm.provision "shell", inline: "cp #{host_sync_folder}/Resources/settings.xml /.m2 2>/dev/null || :; sleep 10"

I see in your trial 2, that you are missing an empty space between ; and sleep command.

Please try it out and let me know.

于 2016-09-28T13:34:46.327 回答