しばたテックブログスマートフォン用の表示で見るしばたテックブログPowerShellを中心に気分で書いている技術ブログです。Windowsインストール編とBox作成編Part.1、Part.2の続きです。最後にVagrantを使った運用周りについて書きます。Vagrantfileの設定VagrantでWindowsを扱う場合、Vagrantfileにいくつか独自の設定をする必要があります。ゲストの種類まずVMのゲストの種類をデフォルトのLinuxからWindowsにする必要があります。OSを管理するためCommunicatorをデフォルトのSSHからWinRMに変更します。"winrm"また、WinRMとリモート管理のためにRDPのポートに対してポートフォーワードする様にします。Provisonerが使え、PowerShellのスクリプトを実行することができます。Bypassで実行しています。powershell_argsパラメーターを設定することで実行するPowerShellに追加のオプションを設定することもできます。ProvisonerがWindowsでも使えるっぽいですが試していません。上記を踏まえた最低限必要な設定を以下に示します。endend複数ゲストの設定Vagrantfileで複数ゲストを扱う場合は、以下の設定例の様に各ゲスト毎のブロックを作ります。VM名やポートフォーワードするポートが重複しない様に気をつけてください。endendよく使うコマンドとデバッグオプションよく使うコマンドについて軽く説明します。詳細は公式のヘルプをみてください。init最初に一回だけ行います。ディレクトリの初期化処理と、Boxに応じた初期Vagrantfileを作成します。upゲストVMを起動します。VM名を指定しない場合は全てのVMを起動します。haltゲストVMをシャットダウンします。VM名を指定しない場合は全てのVMを停止します。rdpゲストVMにRDPで接続します。複数VMある場合はVM名の指定が必須になります。ホストOSがWindowsの場合はmstsc.exeが実行され、--の後ろにmstsc.exeの引数を指定することも可能です。詳細については公式のヘルプを参照してください。[mstsc.exeのオプション]また、ホストOSがWindowsでない場合、Macの場合は.rdpファイルに紐づくアプリを、その他Linuxの場合はrdesktopを起動しようと試みます。destroyVMを破棄します。実行の際は注意して行ってください。[VM名]--debugオプション各コマンドの末尾に--debugを付けるとコマンド実行時に標準エラー出力にデバッグログを出すことができます。コマンドの実行に失敗した場合にこのオプションをつけて再実行することで調査の役に立つことがあります。--debugプラグインについてVagrantはプラグイン方式で機能を追加することができます。プラグインの実態はGemパッケージでどの様なプラグインが存在するかはGemを検索することで見つけることが出来ます。だいたいの場合vagrant-****という名称になっているので、こちらのリンクから探すと見つけやすいでしょう。Qiitaで紹介されているプラグインはお勧めです。WinRMにおける日本語の扱い現在Vagrantが使用しているWinRMライブラリは日本語の扱いに難が有り、実質日本語は扱えないものとして考えた方が良いでしょう。これによって何が問題かというと日本語のWindowsをインストールした際にNIC名が日本語(ローカルエリア接続やイーサネット)な為にIPアドレスを設定する際にエラーが発生してしまう場合があります。これを解決するにはNIC名をASCII文字にしておく必要があります。*2*1:ソースを見る限りWindows向けのコードがあるのは確認しました。*2:Vagrant自体にパッチを当てる方法もあるのですが、こちらについては別エントリで書きます。upするとエラーが出る件についてちょっとハマったのでメモ。広告スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。