6

私はPuPHPetを使用して仮想開発環境を作成しています。

昨日、新しいボックスの設定ファイルを生成しました。コマンドを使用してスピンアップしようとするとvagrant up、次のエラー メッセージが表示されます。

C:\xx>浮浪者

'virtualbox' プロバイダを使用してマシン 'default' を起動しています... このマシンの構成にエラーがあります。次のエラーを修正して、もう一度お試しください。

SSH: *private_key_pathファイルが存在する必要があります: P://.vagrant.d/insecure_private_key

私はこの質問に出くわし、insecure_private_key を puppet\files\dot\ssh から Vagrantfile と同じディレクトリに移動しました。ただし、これにより同じエラーが発生します。

エラーメッセージに示されているディレクトリにも混乱しています。

P://.vagrant.d/insecure_private_key

「P」ドライブが言及されているのはなぜですか?

私の Vagrantfile はここにあります。

このエラーを解決するためのアドバイスをいただければ幸いです。

4

7 に答える 7

7

insecure_private_key ファイルへのパスをハードコーディングして、insecure_private_key へのパスを置き換えることで問題を修正しました。

したがって、次のようになりました。

config.ssh.private_key_path = [
    customKey,
    "#{ENV['HOME']}/.vagrant.d/insecure_private_key"
]

に:

config.ssh.private_key_path = [
    customKey,
    "C:/Users/My.User/.vagrant.d/insecure_private_key"
]
于 2015-06-04T14:45:15.230 に答える
6

を削除した vagrant destroy を実行した可能性があるためのようですinsecure_private_key

しかし、vagrant ファイルは を検索し、puphpet\files\dot\ssh filesそこにある場合は insecure_private_key を検索します。

delete (rename)id_rsaファイルpuphpet\files\dot\ssh

これは私のためにそれを修正しました!

于 2015-05-05T11:11:10.197 に答える
2

また、puphpet フォルダー内のすべてのファイルを削除することもできます。vagrantrm -rf puphpet/files/dot/ssh/*プロビジョニングを実行すると、vm はそれらを再生成する必要があります。

于 2015-12-19T21:00:48.770 に答える
2

puphet 構成をチームメイトと共有する場合、受け入れられた回答によると、private_key_path をハードコーディングすることはお勧めできません。

私のホスト コンピューターは Windows なので、値が %USERPROFILE% の新しい環境変数 VAGRANT_HOME を追加しました。これは、/.vagrant.d フォルダーが存在する場所だからです。この変数を追加するときは、変数が適用されるように、開いているコマンド プロンプトを必ず閉じてください。

お役に立てれば

于 2016-03-11T11:30:33.710 に答える
1

Vagrant のインストールの何が問題なのかわかりませんが、次の行は次のとおりです。

vagrant_home = (ENV['VAGRANT_HOME'].to_s.split.join.length > 0) ? ENV['VAGRANT_HOME'] : "#{ENV['HOME']}/.vagrant.d"

後でここで使用される変数を設定するものです。

config.ssh.private_key_path = [
  customKey,
  "#{vagrant_home}/insecure_private_key"
]

これが発生する理由は、Vagrant 1.7 の時点で、所有している VM ごとに一意の秘密鍵が生成されるためです。私が考えているのは、private_key_path以前に一意のキーを生成したことが検出された場合、Vagrant がユーザー定義を完全に無視するというバグです。

ここで PuPHPet が行っているのは、Vagrant に固有の SSH キーを生成させ、VM が起動して SSH アクセスできるようになると、それを置き換える別のキーを生成します。

これを置き換える理由は、Windows に必要なツールがないため、この新しい Vagrant 機能が OSX/Linux ホストでのみ機能するためです。

私の方法は、VM 自体の中で SSH キーの生成を行うため、すべての OS で機能します。

これはすべてあなたの質問に関連していますが、答えは、これらの環境変数が定義されていない場合、Vagrant のインストールに問題があるということです。

于 2015-04-16T22:46:24.840 に答える