Create A Vagrant Windows Base Box


開始使用 Vagrant 是從開始練習寫 Chef 的 cookbook 開始的,而最常用的 base box 分別為 Ubuntu 及 CentOS, 而我都是去 Vagrant Cloud 去找到適合自己的版本,用了將近半年後,開始要將 Chef 做一個推廣到整個部門的動作,而在部門內有許多的 Web Server 是部署在 Windows 上面,因此需要一個 Windows base box也是合情合理的事情,但是...在 Vagrant Cloud 裏找不到適合自己的 box,所以就決定自己動手做一個…

事前工作

  • 首先準備好一個已經安裝完 Windows Server 的 Virtual box image,這個地方我就不多作著墨,相信網路上可以 Google 到很多圖文並茂的教學文章,而我底下的教學是以 Windows Server 2008 R2 以後為主,畢竟微軟也不支援 2003 了,又何必多說呢XD

環境設定

  • 這個步驟是最關鍵的,大部份是參考 Windows Cookbook 的 README,但是有遇到小小的卡關,克服後可以說是水到渠成
  1. 登入你的 Guest OS Windows Server 虛擬機器內
  2. 新增一個使用者,帳號及密碼皆是 vagrant
  3. 把 UAC(使用者帳戶控制) 給關掉,不管要做什麼事情都會跳出來問題真的要做嗎的惱人對話視窗,可以參考這篇文章
  4. 把 complex passwords 關掉,可以參考這篇文章
  5. 把 Shutdown Event Tracker 關掉,就是那個你把 Windows Server 重開機後會跳出來質詢你的程式,可以參考這篇文章
  6. 把 Server Manager 一開機就會自動跳出來的功能給關掉,可以參考這篇文章
  7. 在設定WinRM之前,有件很重要的事情,就是確定目前登入的帳號不是 admin,這一點超級重要的,接著打開 cmd 執行底下的指令
winrm quickconfig -q
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="512"}
winrm set winrm/config @{MaxTimeoutms="1800000"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
winrm set winrm/config/service/auth @{Basic="true"}
sc config WinRM start= auto

設定到這裡之後,Vagrant 才能如入無人之境的使用你所製作出來的 base box

安裝程式

  • 接著就是安裝你的 Server 常常會使用到的應用程式,這邊因人而異,像我是必須把 IIS 的一些功能給啟動好,安裝 Notepad++, Chef Client, JRE, Logstash…

轉存成 base box

  • 接下來的工作為在 Host OS 內進行
  1. 打開 terminal,把目錄切換到你想要儲存 Base box 的地方
  2. 輸入以下指令
vagrant package --base my-virtual-machine(你的虛擬機器名稱)

經過漫長的等待之後,你就可以在該目錄下看到熱騰騰的 Windows base box 了

使用 Windows Base Box 的注意事項

  • 因為 Window 使用一些跟 Linux 不太一樣的協定,所以在 Vagrantfile 內記得要多底下這些設定
config.vm.network :forwarded_port, guest: 3389, host: 3389 # 給遠端桌面使用的 port
config.vm.guest = :windows
config.vm.communicator = "winrm"

假如以上的設定過程都成功的話,在 Vagrant up 之後,你應該就可以看到 Vagrant 幫你開啟一台 Windows Server VM 嘍~

廣告

對「Create A Vagrant Windows Base Box」的一則回應

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s