«前の日記(2016-07-18) 最新 次の日記(2016-07-21)» 編集

会長@腹部日記


2016-07-20 [長年日記]

_ windows2012のvagrant box(Virtualbox)を作成する (1) - 201607時点

とある講演*1を連発で聴講したので、たまには外へ情報を出そうと思い立ちました。

動機

windows2012に対する手作業が多く辛いため、何度も作業できる環境を用意したいためです。(時間の関係でそうそう作れない・・・)

自作boxだと安心できますので!*2

環境

  • vagrant: 1.8.5
  • VirtualBox: 5.1
  • ホストOS: Windows2012R2 + Windows Update済み、CPUとメモリはそこそこ搭載
  • ゲストOS: windows 2012 R2 評価版 → vagrant upして動かしたい

参考になる手順

捕捉

ゲストOS
  • 先のURLの通りWindows Updateをしておくこと
    • vagrant upコマンドで利用されている rubyのgemの winntlmの通信で失敗してしまいます。
  • その過程でproxyの設定も必要になるので、netshコマンド等で適宜実施してしまいましょう
  • ここでansibleで ping module で動作確認しておくと安心
    • python2.7+ansible 2.1.0を利用しました。windowsの場合、winrm用の記述をhostsに施す必要があるため、これはまた後ほど。。。
vagrant package時
  • できあがったboxが大きくなりがちなので、先のURLの通り、いろいろ削除したくなると思います。必要なものは残しておきましょう。
  • 間違いなく4GByteは超えるboxが生成されます。
vagrant up時
  • vagrantコマンドの出力先や、virtualboxが仮想マシンのディスク用ファイルを配置するボリュームまたはドライブを別にしておくと、vagrant upコマンドが速いです。それでも20分はかかります。
  • vagrant upの後は、Windowsの何かが、評価版であることの確認ができておらず、「ライセンス切れてます」と表示されます。多分放っておくと直った記憶が。。
    • 気になる方は、 管理者権限のDOSプロンプト等で `slmgr -rearm` コマンドを実行してみてください。適当にOKを何度か押して、Windowsを再起動すると180日に戻ります
ansibleも動くので

ansible経由で色々動かす土台ができますよ~

本当は slmgr -realm もansibleで実行できたら楽ですがうまくいかず。VBScriptでダイアログを表示しちゃうので、WinRMだと失敗です。

いくらansibleでもWindowsは苦行ですね。割り切って色々やってみます、ということで終わります。

*1 Rubyの生みの親の方

*2 会社だとWindowsの場合、色々インストールする決まりがあります