web-dev-qa-db-ja.com

実行中のシステムでVagrantポート転送を変更する

Vagrantシステムを稼働させており、転送ルールの1つを変更するだけの変更を適用したいと思います。

から このページ

転送されたポートは、他の構成と同様にvagrant up中に適用されます。ただし、すでに実行中のシステムがある場合は、vagrant reloadを呼び出すと、すべてを再インポートして再構築しなくてもシステムが適用されます。

VirtualBoxは完全に再起動されるまで転送されたポートを取得しないため、転送ポートでは仮想マシンを再起動する必要があることに注意してください。

私が欲しいものとまったく同じように聞こえます!しかし、vagrant reloadを試してみると、すべてのChefレシピが再読み込みされ、プロセス全体に約30分かかるため、キッチンに行ってn番目のコーヒーを飲む必要があります。

プロビジョニングプロセス全体を実行せずに、実行中のシステムにVagrantfileの変更を適用する方法はありますか?私はあまりコーヒーを飲むことができません。

28
Roberto Aloi

VirtualBoxユーザーインターフェイスを使用して、新しいポート転送ルールを手動で追加しようとしましたか? VirtualBoxを開き、実行中のVMを選択してから、[設定]-> [ネットワーク]-> [ポート転送]を押して、新しいルールを追加します。たとえば、127.0.0.1:222310.0.2.15:22に転送します。これを行った後、ポート2222(通常どおり)および2223(新しいルール)でVM)に接続できました。

当然、この新しいルールを同時にVagrantfileに追加して、最終的な再起動後にマッピングが永続的になるようにします。

また、VMプロビジョニングに非常に時間がかかる場合は、シェフ/パペットのステップの一部を実際のベースボックスに移動することを検討しましたか?たとえば、次のようなサーバーソフトウェアをインストールしている可能性があります。このソフトウェアがすでにインストールされている状態でボックスを再パッケージ化すると、Vagrantの起動時間を大幅に短縮できます。

お役に立てれば!

41
DuffJ

できるよ

vagrant reload --no-provision

シェフや人形などなしで実行する必要があります。

それでもvm-は再起動しますが、「しかし、すでにシステムを実行している場合は...」というのは少し誤解を招く可能性があります。

16
awongh