2

これまでのところ、Vagrantを使用してWindowsホスト上にCentOS VMを作成し、それに接続しています。

次に、Chefを使用して、作成されたVMにスタックをプロビジョニングします。ローカルディレクトリのクックブックとレシピへのURLを提供してみましたが、エラーからわかるように、ゲストボックスにSSHで接続できないため、おそらく失敗します。

SSH authentication failed! This is typically caused by the public/private keypair for the SSH user not being properly set on the guest VM. Please verify that the guest VM is setup with the proper public key, and that the private key path for Vagrant is setup properly as well.

だから私の最初の質問は:

1)すべてのスクリプトが正常に実行されるように、WindowsホストでゲストOSを起動したのと同じウィンドウ内でSSHが機能することを確認するにはどうすればよいですか?

さて、vagrantfileの以下の行にコメントすると

config.ssh.username = "root"

上記のエラーはなくなりますが、別のエラーが発生します。

The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=id -u vagrant,gid=id -g vagrant v-csr-2 /tmp/vagrant-chef-1/chef-solo-2/roles

これは、ユーザーvagrantがボックスへの十分なアクセス権を持っていないためです。これは私の2番目の質問です。

2)sudoまたはsuアクセスですべてのコマンドを実行するようにVagrantに指示するにはどうすればよいですか?

4

2 に答える 2

1

SSHを機能させる方法は次のとおりです。

cygwinをインストールします(http://www.cygwin.com/)

cygwin内からopensshをセットアップする

〜/ .ssh/id_rsa_vagrantを追加します

ここからダウンロード

〜/ .ssh/configを変更します

ホストlocalhostIdentityFile〜/ .ssh / id_rsa_vagrant

sshディレクトリの権限を変更する

chmod 600〜/ .ssh / *

すべてが正常に機能しているはずです。

于 2013-01-25T09:12:59.123 に答える
0

Windowsからバッチファイルと同じコマンドプロンプトウィンドウを使用してVMに接続する方法を見つけました。

だからここにステップがあります:

  • 同じマシンにパテをインストールする必要があります。
  • 次のバッチスクリプトでパテ実行可能ファイルへのパスを構成する必要があります
  • バッチファイルを使用してボックスに接続します

バッチファイルは次のとおりです。

@echo off REM REM This is a replacement for the "vagrant ssh" command on Windows REM (since "vagrant ssh" doesn't actually work on Windows). REM REM PuTTY must be installed. If it is not installed in REM "C:\Program Files (x86)\PuTTY" then set the PUTTY_DIR environment REM to point to the installed location. REM REM As with any vagrant command this should be executed in the directory REM containing the Vagrantfile. REM

setlocal enableextensions

if "%PUTTY_DIR%" == "" ( REM Default location of PuTTY if the Windows installer is used. set "PUTTY_DIR=C:\Program Files (x86)\PuTTY" )

if not exist "%PUTTY_DIR%" ( echo ERROR: PuTTY not found. echo Install PuTTY or check setting of PUTTY_DIR. goto end )

for /F "tokens=1,2" %%A in ('vagrant ssh-config') do ( if "%%A" == "HostName" ( set VagrantHostName=%%B ) if "%%A" == "Port" ( set VagrantPort=%%B ) if "%%A" == "User" ( set VagrantUser=%%B ) if "%%A" == "IdentityFile" ( set IdentityFile=%%B ) )

if "%VagrantHostName%" == "" ( goto end )

if exist %IdentityFile%.ppk ( set "VGPUTTY_OPTIONS=%VGPUTTY_OPTIONS% -i %IdentityFile%.ppk" ) else ( echo. echo TIP: For password-free Vagrant VM login use PuTTYGen to generate echo this file: %IdentityFile%.ppk echo from file: %IdentityFile% echo. )

start "%VagrantHostName%:%VagrantPort%" "%PUTTY_DIR%\PuTTY.exe" %VGPUTTY_OPTIONS% %VagrantUser%@%VagrantHostName% %VagrantPort%

:end

于 2012-09-25T21:08:23.723 に答える