6

Vagrant を使用して、テスト環境を開始します。悲しいことに、Vagrant ボックスをスピンアップする前に、情報 (パスワード) を取得する必要があります。これまでのところ、Vagrant-Triggers を使用してこれを行い、複数のrun "do something"コマンドを使用しています。

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      run "rm -rf #{cookbooks_path}"
      run "mkdir -p #{cookbooks_path}"
      run "touch fileX"
      run "touch fileY"
      run "touch fileZ"
    end
end

すべてのコマンドを 1 つのバッチ ファイルに移動し、そのファイルだけを含めるにはどうすればよいですか?

したほうがいい

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      include_script "Vagrant_trigger_before.sh"
    end
end

ご協力ありがとうございました!

4

3 に答える 3

5

You can run your script directly using the run instructions

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      run "Vagrant_trigger_before.sh"
    end
end
于 2017-01-05T16:22:50.467 に答える
0

これはかなり古いスレッドであることに加えて、ここにたどり着いた他の人にとって役立つヒントがいくつかあります。

  1. @frederic-henri と @lin-n が指摘したようにtrigger.run、現在のトリガー構文を使用して、特定の Vagrant コマンドの前または後にホスト上でスクリプトを実行できます。
  2. trigger.runはスクリプトの引数を受け入れます

要約(テストされていません):

config.trigger.before :up, :provision do |trigger|
  trigger.run do |run|
    run.args = cookbooks_path
    run.path = <Script>
  end
end
于 2021-09-28T15:45:17.440 に答える