DRBL-Winroll : MS-Windows 延伸工具
大量佈署 Windows 作業系統的輔助工具
說明:實現 Windows client 接收主機命令、解決大量複製(Image clone)時Windows 上相關問題。
*********** 歡迎使用 DRBL-Winroll ***********
國網中心 自由軟體實驗室, NCHC, Taiwan
GPL
ceasar _at_ nchc org tw, steven _at_ nchc org tw
*******************************************************
下載 簡報[PDF] [ODP] 安裝 其他工具 螢幕截圖 相關文件 語系支援 論壇 郵件討論 [En]

索引


DRBL-Winroll 目的為解決使用還原工具來大量佈署 MS Windows-like OS 時,主機名稱、SID重複之問題,並可自動變更『工作群組名稱』與提供自動網路設定功能。另外,並協助 Windows 的客戶端在 drbl 的環境下,可接受 drbl 主機之遠端命令。

特性 :

  • 自動修改 Windows 主機名稱、工作群組、自動判斷隨機 SID
  • 提供自動網路設定功能
  • 提供自動加入AD 網域功能NEW from v1.3.0
  • 提供用戶端系統監測功能NEW from v1.3.1
  • 安裝 sshd 服務
  • 適用於任何印象檔佈署工具(如: Clonezilla, ghost, Acronis True Image, .etc) 簡潔方式協助相關軟體安裝與配置,安裝在一套 Windows 範本機器後即可大量還原。
授權模式 :
  • DRBL-Winroll 為自由軟體(Free Software) ,採由自由軟體基金會(Free Software Foundation)所發行之 GNU GPL(General Public License) v2 授權模式
  • DRBL-Winroll 整合使用下列軟體: cygwin, wsname ; 其則遵循原著作之授權與同意條款
  • 因使用本軟體所造成之直接或間接傷害,開發者則無義務負擔實質或道德上之損失

  1. 下載
  2. 支援 : Windows 2000/ Windows XP/Windows 2003/Vista/Windows 7/Windows 2008 系列之作業系統

    提醒:

    • 如需要 Windows 上 md5sum 檢查工具: md5summer
    • 如下載 zip 檔案需要安裝解壓縮工具:推薦 7-zip
    • EXE 採用 NSIS 進行封裝. 封裝用 winroll.nsi 檔案置於 ~/drbl-winroll/tool 中

  3. 安裝 | Install
    • EXE:
      1. 直接執行 winroll-setup.exe 即可
    • ZIP:
      1. 解開壓縮檔: drbl-winroll_xxxxxx.zip
      2. 直接雙點執行 winroll-setup.bat,程式集會引導您完成安裝步驟
    • 注意事項:
      1. 本程式建議以具有 Administrator 權限之身份執行;若需要安裝 auto-renew SID,則請確定網際網路連線沒問題
      2. 若您之前以安裝過 cygwin 建議先移除後再安裝;或者,可使用『強制安裝』 選項進行安裝
      3. 若您要安裝的作業系統為 Vista, Windows 7/2008 系列之作業系統,務必先關閉 UAC 功能。若您仍需要使用UAC ,可安裝後再啟動即可。


    進行安裝 DRBL-Winroll ** 更詳細的安裝流程[Flash]

  4. 在 DRBL-Winroll 中如何修改主機名稱格式 ?
  5. 目前預設以 windows 上所配到的 IP 後6 碼,另加上前置字元 "PC-" 當為主機名稱,如:
    IP 為 192.168.1.52 ,則主機名稱為:PC-001-052
    管理者可依下列步驟自行修改所需格式:
    1. 步驟 :
    2. 『程式集』-> [Cygwin]-> [Configuration Folder] 進行編輯 "winroll.conf"

    3. 找出下列參數並替換 :
    4. HN_WSNAME_PARAM = xxxx
      以下簡述幾種常用格式:
      # HN_WSNAME_PARAM = /N:PC-$ZFIP[3+]    (IP後3碼零字元補齊, 以'192.168.1.52'為例,結果為'PC-052',因IP字串轉換為'192-168-001-052';目前為系統預設值。)
      # HN_WSNAME_PARAM = /N:PC-$ZFIP[4+]    (IP後4碼零字元補齊, 結果為'PC--052';因IP字串轉換為'192-168-001-052')

      # ----- 其他常用格式
      # HN_WSNAME_PARAM = /N:PC-$MAC     (如: PC-000C294EEF53)
      # HN_WSNAME_PARAM = /N:PC-$MAC[+8]    (網卡位址最前8碼", 如: MYPC-000C294E)
      # HN_WSNAME_PARAM = /N:PC-$IP[3+]    (IP最後3碼,結果為'PC--52';因IP字串轉換為192-168-1-52)
      # HN_WSNAME_PARAM = /N:PC-$IP[4+]    (IP最後3碼,結果為'PC-1-52';因IP字串轉換為192-168-1-52)
    5. 進階設定: 使用檔案指定
    6. 此外,也可用檔案來規範 hostname ;開啟 "winroll.conf" 找到 "HN_WSNAME_PARAM = xxxx " ,置換為
      HN_WSNAME_PARAM = /RDF:C:\cygwin\drbl_winroll-config\hosts.conf /DFK:$MAC
      說明:/RDF 規範名稱檔的路徑,/DFK 規範以何種屬性尋找主機名稱

      hosts.conf 規範如右"IP or MAc Address" = "hostname" , 如:
      00-0C-29-4E-EF-53 = Student-01     # (此 MAc Address 的分配主機名稱為 Student-01)
      192-168-1-12 = Student-02  # (此 IP 的分配主機名稱為 Student-02,需用'-'取代IP中的'.')
      所以 /DFK:$MAC ,則會被指派為 Student-01,/DFK:$IP 則會被指派為 Student-02

      此方式管理者可自由定義主機名稱,但建議先將所有 Mac Address 收集起來寫在範本機器中,複製之後的機器 即會依據各自的屬性來指定主機名稱。

    補充:
    DRBL-Winroll 使用 wsname 工具進行修改主機名稱,所以可使用 wsname 所支援參數進行修改



    主機名稱或工作群組修改需要重開機

  6. 如何設定工作群組名稱格式 ?
  7. 目前 DRBL-Winroll中提供三種格式來定義工作群組名稱
    1. 固定字串 , 如: WG
    2. 由IP/Netmask , 如: GROUP-$NM
    3. 說明:
      以 windows 上所配到的 IP 配合網路遮罩(Netmask),另加上前置字元 "WG"(可於 winroll.conf 中修改) 當為主機名稱,如:
      ip:192.168.20.2 NM:255.255.255.0=> 群組會設為 "GROUP-020"
      ip:172.18.1.5 NM:255.255.0.0 => 群組會設為 "GROUP-018-001"
    4. 由 DNS Suffix : $DNS_SUFFIX
    5. 說明:
      client 跟 DHCP Server 取得 IP, network 相關資訊,其中一個為 DNS SUFFIX 值,系統將取其前兩斷字串,並以 "-"取代"."。以上列參數為例,在下面的環境中, 你可以在 Windows 下使用 ipconfig 指令查看 DNS Suffix 資訊

      DNS Suffix Search List. . . . . . : my..org.domain=> 群組會設為 "WG-my-org"

      安裝時使用固定字串 "WG" 為預設若您有任何建議請告知我們

  8. 如何讓 DRBL-Winroll 配置 Windows 網路設定
    • DRBL-Winroll 提供三種方式來自動設定網路,可於『程式集』-> [Cygwin]-> [drbl_winroll-config] 進行編輯 "winroll.conf" 找出下列參數並替換 :
    • CONFIG_NETWORK_MODE = xxxx
      以下簡述幾種常用格式:
      CONFIG_NETWORK_MODE = dhcp     (使用 DHCP 方式)
      CONFIG_NETWORK_MODE = /RDF:C:\cygwin\drbl_winroll-config\client-mac-network.conf    (透過設定檔設定)
      CONFIG_NETWORK_MODE = none    (讓 DRBL-Winroll 不處理網路設定,也不會使用 dhcp )

    • 安裝程式預設以 DHCP 配置網路;若您想透過 mac address 還讓 drbl-winrll 設定您的網路
    • 進階設定: 使用檔案指定
    • 若使用 CONFIG_NETWORK_MODE = /RDF:C:\cygwin\drbl_winroll-config\client-mac-network.conf ,則需要編輯 c:\cygwin\drbl_winroll-config\client-mac-network.conf

      client-mac-network.conf 範例如下

      _DEFAULT_NETWORK	= 192.168.100.254/24  # 指定網路與遮罩
      _DEFAULT_GATEWAY	= 192.168.100.254			# 預設閘道
      _DEFAULT_DNS		= 168.95.1.1		# DNS, 可不設或單、多組,使用逗號(,)區隔
      _DEFAULT_WINS		= # WINS, 可不設或單、多組,使用逗號(,)區隔
      _DEFAULT_DNS_SUFFIX	= # DNS_SUFFIX 可不設	
      
      subnet 10.0.2.0/8 {
      	THIS_GATEWAY	= 10.0.2.2 # 以 10.0.2.2 作為此網域的預設閘道
      	THIS_DNS	= 10.0.1.1	# 以 10.0.1.1 作為此網域的預設閘道
      	THIS_WINS	= 		# 會取消全域變數中的 _DEFAULT_WINS 值
      	# 由於此區域並無設定 THIS_DNS_SUFFIX ,所以此子網域會繼承全域變數中 _DEFAULT_DNS_SUFFIX 值
      }
      
      subnet 192.168.0.0/24 {
      	THIS_GATEWAY		= 192.168.0.254
      	THIS_DNS			= 192.168.0.1
      	#THIS _WINS			# 此子網域會繼承全域變數中  _DEFAULT_WINS 值
      }
      
      [IP Address]
      00-00-00-00-00-01 = 192.168.100.11
      00-00-00-00-00-02 = 10.0.2.30  # 使用 subnet 10.0.2.0/8 的環境設定
      00-00-00-00-00-03 = 192.168.0.7  # 使用 subnet 192.168.0.0/24的環境設定
      00-00-00-00-00-04 = dhcp  # 還是使用 dhcp
      00-00-00-00-00-05 = none  # 不處理這張網卡
      
    • c:\cygwin\drbl_winroll-doc\sample\ 目錄下有兩個範例檔案可參考

  9. 如何讓用戶端自動加入 AD 網域 ?
    1. 在安裝過程中依指示輸入加入AD 只需要資訊 (網域名稱、帳號、密碼) 即可
    2. 在佈署後,用戶端若加入成功會看到系統重新開機畫面,如右:

    說明:

    • 配置:設定 DRBL-Winroll 中的自動加入 AD 功能後,會在 c:\cygwin\drbl_winroll-config 中產生 add2ad.bat 的批次檔。內容如下:
      netdom join %computername% /domain:[DOMAIN] /userd:[USER] /passwordd:[PASSWORD] /reboot:8
    • 運作:系統等到確認主機名稱已經修正後,會執行上述批次檔。若加入成功,則會刪除上述檔案(因為檔案中記錄帳號與密碼),並新增一個檔案 c:\cygwin\drbl_winroll-config\add2ad.md5,內容為此台機器的網路卡卡號經 md5sum 計算後的值

    注意事項:

    • 加入 AD 功能透過 netdom 完成,故請在系統中安加入 netdom.exe 工具 (建議安裝後先在命令列下測試確認 netdom 指令是否可執行)
    • Windows XP 請參考 這裡
      Windows Vista 請參考 這裡
      Windows 7/Server 2008 請參考 這裡
    • 如果您需要大量佈署,請在製作印象檔前範本機先不要加入 AD,安裝完 DRBL-Winroll 後也避免系統重開機進入Windows (如此有先加入AD 的效果)
    • 一定要更新 SID 嗎? 若 AD server 是使用 Windows 2003 或之後的版本,用戶端不需要更新 SID (只需要本身的主機名稱不同即可)。若有其他需要,當然可以在更新 SID 後再進行加入 AD 之動作

  10. 如何設定用戶端系統監測服務 ?
  11. DRBL-winroll 整合 Munin Win32 作為系統監測工具,以集中式方式監測用戶端系統資源。安裝與設定分用戶端與主機端兩部分說明:
    • 用戶端
      1. 安裝流程中詢問『是否安裝系統監測服務(由Munin Node提供) [Y/n]』時,輸入 y 即會跳出 Munin Node for DRBL-winroll 安裝程式,如下圖:


        Munin Node for DRBL-winroll 安裝程式
      2. 請依安裝程式進行安裝即可完成

    • 監測主機端
      1. 以 Ubuntu Lucid 為例,建議先安裝 apache2 套件以方便透過 Web 來監測用戶端,再行安裝 munin 套件,如以下指令
      2. sudo apt-get install apache2 munin munin-node
      3. 下載 DRBL-winroll Server-site 工具 server-site-*.tgz 後解開。執行 gen_munin_clients_conf.sh 來收集用戶端的設定檔,如下:
      4. $ tar xzf server-site-v167.tgz ; cd server-site ; sudo ./gen_munin_clients_conf.sh
      5. 程式會先取得要被監測的用戶端 IP ,並依指定方式取得其顯示用的主機名稱,再產生出給 Munin 用的設定檔,名為 munin-winroll-clients.conf
        Get ip list from DRBL server [Y/n]y
        Domain name [domain.localdomain]
        Set domain name as : domain.localdomain ...
        Get clients hostname via Munin service ? Default from local /etc/hosts [N/y]
        Still to keep the record if get hostname fail (to use ip as hostname) [N/y]
        get hostname of '192.168.101.1' :PC101
        get hostname of '192.168.101.2' :PC102
        get hostname of '192.168.101.3' :PC103
        Total 3 record(s) done in 'munin-winroll-clients.conf'
        Please copy the file into correct folder for Munin (ex: /etc/munin/munin-conf.d) then restart munin daemon (ex: $ sudo -u munin munin-cron)
      6. 產生後將此設定檔複製至指定位置(如: /etc/munin/munin-conf.d , Ubuntu Lucid 為例),並重新啟動 munin-cron 以產生所需資料,如下
        $ sudo cp munin-winroll-clients.conf /etc/munin/munin-conf.d ; sudo -u munin munin-cron

        1. 如何察看報表
        2. 在監測主機上開啟瀏覽器,網址輸入 http://127.0.0.1/munin 則會看到相關資料。Munin webpage 預設只開放從 localhost 開啟;如要開放從外部讀取或相關安全控制問題請參考相關設定。

    須知 :

    • 致謝 : 感謝 Munin Nodes win32 專案
    • DRBL-winroll 專案將 Munin Win32 重新封裝 NSIS 安裝檔案以符合 DRBL-winroll 安裝環境. 您如果有需要可以參考 ~/drbl-winroll/tool/munin-node-winroll.nsi 設定檔

  12. 如何決定 SID 是否重新指派 ?
    1. 需先自行下載可用命列模式更新 SID 之工具(如:NewSID v4.10);選擇安裝『自動主機SID』服務並給輸入完整執行路徑與適當之程式參數(如:'/a /n', newsid.exe 使用)。如下圖:

    2. 安裝『自動主機SID』服務
    3. 判斷方式是紀錄抓取到的網卡 Mac address 來辨別,如遇到新的 Mac address,則會重新指派 SID
    4. SID 本原意為安全理由設計,所以理應不能有順序性,所以隨機產生。基於安全理由,Mac address 經 md5 編碼後紀錄
    5. 如果有配置自動 SID 服務,在DRBL-Winroll 安裝完後會自動啟動進行第一次修改。請等待至系統動作完畢後自行重開機即可。

    6. 安裝後執行第一次 newsid 服務,並等待直到系統除新開機
      Note: 更換Windwos SID的必要性 ?" [1] [2]

  13. 如何讓用戶端自動接受 DRBL 主機命令?
  14. 如果您要讓您的 windows 能接受 drbl server 的命令,請至您的 drbl 主機完成下列步驟 :
    1. 切換成 root, 先確定 /root/.ssh/ 下有沒有 id_rsa 和 id_rsa.pub 這兩個檔案.如果沒有則繼續下面步驟; 如果已經產生過,請跳至第 3 步驟,進行 ssh key 的安裝.
    2. 在DRBL server產生root的ssh key ,過程中詢問密碼時直接按 [Enter](表示不詢問)
    3. $ ssh-keygen -d
      Generating public/private rsa key pair.
      Enter file in which to save the key (/root/.ssh/id_rsa):
      Enter passphrase (empty for no passphrase):
      Enter same passphrase again:
      Your identification has been saved in /root/.ssh/id_rsa.
      Your public key has been saved in /root/.ssh/id_rsa.pub.
      The key fingerprint is:
      fe:56:XX:XX:XX:XX:XX:XX:XX:XX:83:ff:42
      root@drbl-server

    4. 然後就會在~root/.ssh下產生兩個檔 id_rsa id_rsa.pub,如下 :
    5. $ ls /root/.ssh
      id_dsa id_dsa.pub

    6. 然後將id_rsa.pub 從 server 傳至(或使用 usb 碟) windows 機器中的 Administrator 在 cygwin中 的家目錄下的.ssh 目錄(c:\cygwin\home\administrator\.ssh),存成 authorized_keys, 如:
      c:\your\windows\path> copy [path-of-id_dsa.pub] c:\cygwin\home\administrator\.ssh\authorized_keys
      或在 DRBL server 上直接使用 ssh-copy-id 指令,如下:
      sudo ssh-copy-id -i ~/.ssh/id_rsa.pub administrator@[win-client-ip]

    7. 在 Windows 下存好公鑰至 c:\cygwin\home\administrator\.ssh 並命名為 "authorized_keys"
    8. 完成後,可在 drb server 上測試下命令給 Windows-client,如果正確安裝是不會詢問密碼, 如:
    9. $ ssh administrator@[win-client-ip] ipconfig
    10. 之後,您便可利用 /opt/drbl/sbin/dcs 來管理 windows clients 開、關機

    補充 :

    • 除了 Windows NT, Windows XP 外,若安裝 ssh 服務,則會在系統中新增一帳號 "cyg_server" 作為 ssh 服務的啟動帳號。故 請勿在系統中變更其密碼或停用此帳號,不然會導致 ssh 服務無法正常啟動。
    • 基於安全理由,其密碼以長度為 8字元亂數產生,存於 C:\cygwin\drbl_winroll-config\SSHD_SERVER_PW.txt 檔案中

  15. 多語系支援 | Language Support
    • 目前版本已支援下列數種語言下的 Windows 環境,並感謝提供翻譯與測試協助的相關人員
      • Traditional Chinese
      • English
      • French : Joël Gondouin (joel_at_gondouin_net)
      • Dutch : Dave Haakenhout (Almere, Netherlands)
      • Swedish : Yngve Spång (Systemkonsult AB)
      • Spanish : Artz Neo (artzneo_at_linuxmail_org)
    • 協助翻譯 !! [How to]

  16. 其他 | Other
    • Text FAQ : [ 中文 ][English ]
    • Web FAQ : 詳見這裡
    • History | 歷史紀錄 : [中文] [English]
    • 其他輔助工具 | Other Tools
      • [Stable]
        • EZ command sender : EZ-commands
        • 說明:提供更容易的介面讓管理者送命令至 drbl server 進行管理

      • [Testing]
        • User desktop recover tool : winroll-recover
        • 說明:提供使用者桌面還原功能