云考古 | Azure 自建 RDS 让 iPad 跑 Office 97
導語
蘋果一直在嘗試把iPad做成電腦,但效果始終不如真正的PC理想。如果能在iPad上運行PC軟件,如完整版的Office,那一定是一種非常理想的方式。我小時候電腦啟蒙使用的第一個軟件就是Office 97里的Word,這也是第一款引入Office助手(大眼夾)的版本。為了紀念7歲就夭折的大眼夾,我決定讓它在22年后的iPad Pro上復活。
(圖 / Office 2010 the Movie)
其實 iPad 的系統不可能跑Office 97,最接近 native 的方式是采用 RDS 里的 RemoteApp。Azure 在5年前曾經推出過云端托管的 RemoteApp 服務,但后來retire了。官方文檔中的一個遷移方式,即使用 IaaS VM 自己配置 RDS,就是本文要介紹的內容。
Remote Desktop vs RemoteApp
Windows 遠程桌面(Remote Desktop / RDP)歷史悠久,相信大家已經足夠熟悉。近年來隨著微軟突然開放,安卓、iOS也都有了官方的RDP客戶端。想要在iPad上跑 Office 97 其實用 RDP 絕對可以,并且最方便。那什么是 RemoteApp 又為啥要用 RemoteApp 呢?
RemoteApp 其實是 Remote Desktop 的進一步“封裝”,即不提供完整的桌面環境,只遠程渲染你所使用的應用UI,用戶看不見 Windows 的其他界面,如任務欄、桌面等,只能使用IT管理員分配的指定應用,以提高安全可控性,并易于管理。比如,用戶的客戶端(Windows、安卓、iOS)上并沒有安裝某企業軟件,也可能用戶臨時用了他人的設備,不適合安裝該軟件。那么就可以通過 RemoteApp,在當前設備上使用服務器端安裝的該軟件,整個過程均為加密通訊,并且數據不保存在客戶端。而用戶也無法操作服務器上的完整桌面,保證了安全性。RemoteApp 還有個好處,即窗口看上去就像本地的native應用一樣,可以到處拖動、最小化、換屏幕等等,對于用戶的體驗也好于完整版 Remote Desktop。因此我選擇用 RemoteApp 來跑Office 97。
RDS 環境
Remote Desktop Service(RDS)是Windows Server上的一個服務角色,其中包含了本文要用的RemoteApp。相比點點鼠標就1分鐘開通RDP,RDS的配置比較復雜。它需要多臺服務器才能完成配置。
一個典型的部署結構為:一臺 Active Directory 域控(DC)、一臺RDS網關(Gateway)、一臺Broker、一臺或多臺運行實際應用的Host服務器。要讓用戶安全使用RDS服務,還需要購買正規的SSL證書。整個過程相當蠻煩,很容易配進ICU。
在Azure上配置RDS
像我這種只會點鼠標拖控件的 .NET 程序員,沒有經過專業的IT培訓,絕對搞不定純手工的RDS配置。還好微軟智能云 Azure 提供了一鍵全自動部署RDS的ARM模板,不需要996就可以傻瓜化完成RDS的安裝。
什么是 ARM 模板
Azure Resource Manager (ARM) 模板用于將資源通過編程方式部署到資源組中。ARM 為 Azure 提供完整的基礎結構作為代碼功能。該格式非常靈活,支持配置多個資源以及它們之間的依賴關系。
用人話來說,就是對于一個復雜的配置,可以將配置要求和步驟用代碼的形式寫下來,把參數暴露給用戶,然后通過點鼠標或者程序實現自動化部署,此過程中用戶只需要知道自己需要的參數值,而不需要關心環境如何安裝和配置等底層細節,Azure 能自動搞定一切。ARM 模板可以用社區和微軟提供的,也可以自己寫模板給別人用。
部署 RDS ARM 模板
在Azure應用商店中找到“Remote Desktop Services (RDS) Deployment”(https://azuremarketplace.microsoft.com/en-us/marketplace/apps/rds.remote-desktop-services-basic-deployment?tab=Overview),點擊“Get it now”,跳轉到你的 Azure Portal 進行部署。
在 Basics 中設置服務器管理員的用戶名、密碼,這個用戶將被加入AD,用于配置所有服務器上的后續設置。建議創建一個獨立的 Resource group 用于管理整套 RDS 資源。
在?DNS name label?中指定一個域名前綴,該域名最終用來給終端用戶連接 RemoteApp 時使用。AD domain name指定為你的域名,此處可以任意。如果你是個土豪,有證書條件,也能指定一個真實的域名。
對國內用戶來說,Azure VM 的計費昂貴,為了不淪落街頭,建議把 RDSH 服務器數量改成1臺。其他配置保持默認。
最后確認參數正確后,進行一鍵部署。
整個部署過程大約持續1小時,可以隨時在部署信息里看到進度。
部署完成后,在 Azure 里能夠看見4臺VM。分別是:
advm: Active Directory 域控(具有公網IP)
cb-vm: 連接broker(內網IP)
gw-vm: RDS網關(公網IP+公網域名)
rdsh-0: 應用托管服務器(內網IP)
至此,Azure 能幫我們全自動做的事情就完成了,接下來需要我們手工完成剩余配置。
設置RDS服務器組
使用公網IP以及之前配置的管理員賬號RDP到advm,然后在“Add roles and features/Features”下面,勾選“AD DS Tools”以及“AD LDS Snap-Ins and Command-Line Tools”,并完成安裝。
現在 Tools 菜單里就能找到“Active Directory Users and Computers”,點擊進入。
在 Computers 里能夠看見其余3臺服務器,證明DC到其他服務器的連接正常。
在 Users 下,創建一個用戶,如edi-rds.com\ninja.cat,該用戶為最終用戶運行 RemoteApp 使用的身份。
至此,advm 的配置全部完成。
接下來我們要配置RDS網管服務器(gw-vm)。使用域中(一定要帶edi-rds.com域名)的管理員賬戶連接到gw-vm。
這一步相當重要!雖然不帶域名的管理員賬號也能登錄,但沒有RDS配置權限。
選擇Manage – Add Servers
將?rdsh-0?以及?broker?加入右邊的服務器列表
在 All Servers 中等待?broker?及 rdsh-0 上線。Performance counters無所謂是否啟用。
現在,Remote Desktop Services Overview?里應該能看見完整的部署結構
回到自己的計算機上,用瀏覽器訪問RDS網關服務器,格式為:
https://RDS網關公網IP或域名/RDWeb
由于我們沒有配置證書,所以先暫時忽略安全警告
使用之前在DC上創建的用戶賬戶登錄網頁端RDS Portal
此時嘗試訪問默認的遠程桌面應用,會發現由于證書不受信任而被拒絕。為了測試目的,我們暫時手工信任此證書。點擊 “View certificate …”, “Copy to File…”
選擇“DER encoded binary X.509 (.CER)”,完成證書導出
導出完成后,在證書文件上右鍵,選擇 “Install Certificate”
安裝位置選 “Local Machine”
安裝到 “Trusted Root Certification Authorities”
在RDSH-0上安裝Office 97
由于?RDSH-0?沒有公網IP,因此無法直接從自己的計算機 RDP 到 RDSH-0。因此,我們可以在有公網IP的?gw-vm?里面再次 RDP 到 RDSH-0
使用經典方式安裝 Office 97。溫馨提示:可以使用 Azure Blob Storage 秒傳幾百兆的 Office 97 鏡像哦~
由于22年后的云端服務器性能非常恐怖,Office 97幾秒內就能安裝完成
安裝完成后,你可以先在服務器上試試Office應用能否正常啟動
發布Office 97 RemoteApp
回到 gw-vm,在 Remote Desktop Services / Collections / Desktop Collection / RemoteApp Programs 里,點擊 Tasks – Publish RemoteApp Programs
選擇你需要的 Office 97 組件,并完成發布
現在,回到自己的計算機上,刷新 RDWeb,應該能看見所有發布的 Office 97 產品。
可以先在自己計算機上測試能否正常使用。
至此,PC和Azure服務器上的配置全部完成。
在iPad上配置RemoteApp客戶端
在蘋果應用商店里下載微軟的“Remote Desktop”應用
添加 https://RDS網關公網IP或域名/RDWeb? 為資源
添加 RDWeb 所需賬號,點擊 Find Feed
點擊 Accept 忽略證書警告
此時在主界面能看到所有可用的 RemoteApp,和PC上一樣,啟動 Word 97 即可使用!
在 iPhone 上也是一樣的操作~
參考文檔:
https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-in-azure
https://docs.microsoft.com/en-us/remoteapp/remoteapp-migrationoptions
長
按
關
注
汪宇杰博客
微信號 : ediwangblog
.NET, Azure, Windows
總結
以上是生活随笔為你收集整理的云考古 | Azure 自建 RDS 让 iPad 跑 Office 97的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用腾讯云提供的针对Nuget包管理器的
- 下一篇: DevOps案例研究:庖丁解牛,剖析Go