2016-06-17 4 views
1

私は複数マシンのVagrantファイルを持っています。ユーザーがvagrant up machineBを実行したときに素早くチェックしたい場合は、エラーメッセージを表示して終了します。迷惑メール機を起動する際の前提条件を確認するにはどうすればよいですか?

具体的なテストでは、curlにいくつかのURLを入力して200応答を確認していますが、詳細は重要ではないと思います。

考えられるのは、マシンを起動し、いくつかのフォルダを同期してプロビジョニングスクリプトを実行するのにかかる時間を節約し、必要なリソースが利用できないことを発見することです。

私が持っている最良のアイデアは、このチェックをプロビジョニングスクリプトの冒頭に置くことですが、前もってやってみたいと思います。

私は、Vagrantfileの始めにチェックしてみると、hereのようなものですが、すべての変更コマンドでチェックが実行されています。開始machineB

答えて

1
  1. それはあなたがあなたが必ずそれがup

    であることを確認するには、コマンドラインからARGV[0]引数を確認することができ、マシンB

  2. ためのコマンドを呼び出すときにのみ実行されますので、あなたのマシンBのための特定のブロックにあなたの条件を実行することができます

これは何かを見ていきます

Vagrant.configure("2") do |config| 

    config.vm.box = xxx 
    config.ssh.username = xxx 

    config.vm.define "machineA" do |db| 
    db.vm.hostname = xxx 
    p system ("curl http://www.google.fr") 
    and your condition here 
    end 

    config.vm.define "machineB", primary: true do |app| 
    app.vm.hostname = xxx 

    if "up".eql? ARGV[0] 
     p system ("curl http://www.google.fr") 
     and your condition here 
    end 
    end 

最終的にあなたがcurlで終わりたいと思っているかどうかわかりませんが、net/httpのlib

関連する問題