ここで見られるように、単純なシェル スクリプトを使用して vagrant セットアップ用のソフトウェアをプロビジョニングしています。
しかし、vagrant に渡されたコマンド ライン引数を取得し、それらを外部シェル スクリプトに送信する方法がわかりません。Google は、これが機能として追加されたことを明らかにしていますが、それをカバーするドキュメントや例は見つかりません。
ここで見られるように、単純なシェル スクリプトを使用して vagrant セットアップ用のソフトウェアをプロビジョニングしています。
しかし、vagrant に渡されたコマンド ライン引数を取得し、それらを外部シェル スクリプトに送信する方法がわかりません。Google は、これが機能として追加されたことを明らかにしていますが、それをカバーするドキュメントや例は見つかりません。
あなたは正しいです。引数を渡す方法は、:args
パラメーターを使用することです。
config.vm.provision :shell, :path => "bootstrap.sh", :args => "'first arg' second"
一重引用符で囲むfirst arg
必要があるのは、渡される引数の一部としてスペースを含める場合のみであることに注意してください。つまり、上記のコードは、ターミナルで次のように入力するのと同じです。
$ bootstrap.sh 'first arg' second
スクリプト内で、$1 は文字列「first arg」を参照し、$2 は文字列「second」を参照します。
これに関する v2 ドキュメントは、http: //docs.vagrantup.com/v2/provisioning/shell.htmlにあります。
実際、変数では機能しません! 正しいsnytaxは次のとおりです。
var1= "192.168.50.4"
var2 = "my_server"
config.vm.provision :shell, :path => 'setup.sh', :args => [var1, var2]
次に、シェル setup.sh で:
echo "### $1 - $2"
> ### 192.168.50.4 - my_server
ドキュメントページの古いバージョンで見つけた情報に基づいて、自分の質問に答えます:
config.vm.provision :shell, :path => "bootstrap.sh", :args => "'abc'"
-- @user1391445