首先 ,我使用这些作为基础指南: http : //docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ami-create-standard.html http://reduktor.net/2014/09/autoscale- EC2-实例-AD-AWS /
其次 ,我们的地区不支持AWS目录服务
脚本
我期待为我们拥有的一套应用程序服务器创build一个“基本AMI”。 我可能需要部署一个或多个基于此映像的新服务器。
这些实例最初是从EC2 Windows Server 2008 R2 Datacenter base AMI(由Amazon创build)创build的,
应用程序本身是静态的,授权是完全可再分发的,并且configuration不需要在一台机器上改变。
唯一不同于一台机器的是主机名和networkingconfiguration。 networkingconfiguration是由EC2处理的, 所以主机名实际上是唯一需要从一次实例改变到另一次实例的事情
这些机器是Active Directory的一部分,并且具有应用于机器的特定OU组策略规则。 他们都将join同一个OU。
目标:
我的目标是有一个基地的AMI。 当这个AMI启动时,它自动join域OR已经join到域中。
从计算机REQUIRE域帐户运行的应用程序运行Windows服务。 所以我不能有没有join到域的图像。
我有一个想法(明天会testing):
我是AWS的noob,但代替任何其他答案,这是我想尝试。
images
给它一个server-image
的主机名或者明显的东西。 closures此机器并从中创build一个AMI。
然后从该AMI创build实例。 您可以查看一个更便宜的保留实例,或者如果您的工作负载是这样的,服务器可以愉快地来来去去,您可能想要探索现货实例。
( 这是我在窗口前面模糊的位 )从AMI创build新实例时,可以自动执行“stuff”。 我们使用一个运行在linux“控制器”实例上的CLI命令。 例如:
./instance-new.py -a "ami-abc123xyz" -c "servers" -n "server-42" -t "t3.16xlarge"
我不能在这里分享我们的定制版本,但原始来自http://docs.aws.amazon.com/cli/latest/reference/opsworks/create-instance.html
我们有这样的Linux机器的额外的节,得到盐,然后从盐主更新:
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
从脚本中join域名必须要有一些windows / AD的方法。
这个脚本还设置了监视和其他的东西。
另外,如果您使用自动拆卸,那么在删除实例之前,您将需要某种脚本来运行离开AD并清理旧帐户。
当你的服务器变得有点旧了,或者有关键的Windows补丁程序,然后启动你的黄金形象,并应用所有的更新/升级。 然后停下来,创build一个新的AMI。 将您的创build脚本指向新的AMI,一旦您感到满意,请删除旧的AMI以节省存储成本。 有一个很好的理由保持至less一个以前的金色形象AMI浮动作为一个已知的好备份 – 我们保持两个。