Active-Directory

AWS EC2 - 複製已加入域的 Windows Server 機器

  • March 30, 2020

首先,我使用這些作為基本指南: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ami-create-standard.html http://reduktor.net/2014/09/autoscale- ec2-instances-ad-aws/

其次,我們地區不支持AWS目錄服務

設想

我希望為我們擁有的一組應用程序伺服器創建一個“基礎 AMI”。我可能需要基於此映像部署 1 個或多個新伺服器。

這些實例最初是從 EC2 Windows Server 2008 R2 Datacenter 基礎 AMI 創建的(由 Amazon 創建)

應用程序本身是靜態的,許可是完全可再分發的,並且配置不需要在一台機器上與另一台機器上更改。

一台機器與另一台機器唯一不同的是主機名和網路配置。網路配置由 EC2 處理,因此主機名實際上是唯一需要從一個實例更改為另一個實例的東西

這些機器是 Active Directory 的一部分,並且具有應用於機器的特定 OU 組策略規則。他們都將加入同一個 OU。

目標:

我的目標是擁有一個基礎 AMI。當此 AMI 啟動時,它會自動加入域或已加入域。

從電腦執行的應用程序需要域帳戶才能執行 Windows 服務。所以我不能擁有未加入域的圖像。

我有一個想法(明天將測試):

  • 創建一個預設/通用主機名“server-xy”,加入域並創建我的 AMI。關閉源 VM,然後從 AMI 部署。啟動後,將其重命名為其最終主機名“server-02”。然後從 AMI 部署另一個,重命名,沖洗並重複——聽起來可行嗎?編輯:這不起作用,因為重命名它會使域級別的原始主機名無效。似乎我想做的事情可能不可行。

作為加入域的 Windows 電腦的一般規則,您不應按原樣複製它。您應該將其從域中刪除並使用 sysprep。然後您可以將其用作模板/基礎 AMI。每個新複製都將使用新的 SID、名稱、IP 加入域,從而在 AD 中創建一個新的電腦帳戶。

我是 AWS 的菜鳥,但代替任何其他答案,這就是我要嘗試的。

  1. 使用適度的實例大小將您的實例設置為黃金映像。
  2. 給它一個主機名server-imagein workgroupimages或其他明顯的東西。
  3. 安裝您需要的所有應用程序,對其進行修補,安裝您喜歡的任何實用程序(treesize、VNC、notepad++、winVI、wingrep 等)並創建任何驅動器共享。特別是不要加入 AD 域。
  4. 關閉這台機器並從中創建一個 AMI。
  5. 然後從該 AMI 創建實例。您可以查看一個更便宜的預留實例,或者如果您的工作負載使得伺服器可以愉快地來來去去,您可能想要探索現場實例。
  6. 這是我在 windows 前面模糊的一點)從 AMI 創建新實例時可以自動執行“東西”。我們使用在始終開啟的 linux“控制器”實例上執行的 CLI 命令。例如:

./instance-new.py -a "ami-abc123xyz" -c "servers" -n "server-42" -t "t3.16xlarge"

  • -a 是您要從中獲取的 AMI 名稱
  • -c 是計費類別
  • -n 是新機器的主機名
  • -t 是實例大小
  • 還有更多的命令行選項。

我不能在這里分享我們的定製版本,但原件來自http://docs.aws.amazon.com/cli/latest/reference/opsworks/create-instance.html

我們的還有這樣的額外節,用於 linux 機器獲取 salt,然後從 salt-master 更新:

userdata = """#!/bin/bash /usr/bin/yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm /usr/bin/yum install -y salt-minion hostnamectl set-hostname %s hostname > /etc/salt/minion_id systemctl start salt-minion sleep 5 /bin/salt-call state.highstate /bin/salt-call state.highstate /usr/bin/yum update -y """ % args.hostname

必須有一些 windowsy/AD 方式從腳本加入域。

這個腳本還設置了監控和其他東西。


另外,如果您使用自動拆卸,那麼您將需要執行某種腳本以離開 AD 並在刪除實例之前清理舊帳戶。

當您的伺服器有點老舊,或者有關鍵的 Windows 更新檔時,請啟動您的黃金映像並應用所有更新/升級。然後停止它並創建一個新的 AMI。將您的創建腳本指向新的 AMI,一旦您對它感到滿意,請刪除舊的 AMI 以節省儲存成本。有充分的理由至少保留一個以前的黃金映像 AMI 作為已知的良好備份 - 我們保留兩個。

引用自:https://serverfault.com/questions/766644