我们将在 AWS/EC2 VPC 上部署我们的应用程序基础设施(主要是 Windows 和一些 Linux 组件)。我们将使用 Chef 来处理配置和管理。
但是,与 Linux 机器不同,Windows 机器没有内置 SSH,因此必须采用其他身份验证方法来获得管理员访问权限。
自动授予 Chef 服务器访问 Windows 计算机的最佳方法是什么?我发现了一些方法:
- 在实例的用户数据脚本中包含默认密码
- 这似乎不安全,但这些计算机位于 VPC 的私有子网内
- 设置域控制器服务器来管理所有计算机
- 研究表明,由于可能会随机丢失 EC2 机器,因此管理 EC2 上的 Windows 域可能会很麻烦。这似乎也是管理频繁添加/删除的机器凭证的不必要开销。
答案1
如果您准备编写一些脚本,收集/提供 Windows 凭据的最佳方法是使用 AWS API(http://docs.aws.amazon.com/AWSSDKforPHP/latest/index.html#m=AmazonEC2/get_password_data)将任何新创建的 Windows 实例的信息“转发”给您的同事。
否则,您可以通过 AWS IAM 服务将一些读取权限委托给您的同事,AWS IAM 服务是一种使用管理服务,允许您希望的人通过客户 AWS 凭证访问某些实例/组/功能。有关 IAM 概念的一些有用信息:http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Concepts.html#ConceptsAWSEntities
答案2
使用 Chef 控制 Windows 节点的推荐和本机方法是使用 WinRM,例如
knife bootstrap windows winrm ...
这个问题有一些细节:Knife Bootstrap Windows WinRM/ssh 超时
这总结准备 Windows 节点的详细信息:https://github.com/opscode/knife-windows#nodes
总结一下:对于Linux节点,使用ssh;对于Windows节点,使用WinRM