Ansible - 自动化远程或本地?

roc*_*aja 7 automation infrastructure amazon-web-services ansible devops

如果运行像Ansible这样的自动化工具来在云中构建基础架构堆栈(例如AWS),那么将自动化工具和构建堆栈放在云中的不同区域/ VPC中就足够了,或者让自动化变得更有意义本地工具和脚本(自己的数据中心/机器)?

两者似乎都被使用,但我只是想知道是否有最佳实践标准.

yda*_*coR 4

与xeraa良好答案相反,我们尽可能从 AWS 内部运行。

我们从中获得的真正好处是,它允许我们使用运行Ansible的集中式Jenkins服务器(在我们的例子中, Terraform用于实际的 AWS 配置,Ansible 仅用于配置 EC2 实例并运行临时 playbook 来执行管理任务)。

然后,我们可以通过凭据和/或安全组/NACL 控制对这些 Jenkins 服务器的访问。

这样做意味着我们可以控制拥有某种形式凭证的人员数量,这些凭证允许他们建造他们喜欢的任何东西和/或摧毁他们喜欢的任何东西。

理想情况下,我们只通过 IAM EC2 实例角色向 Jenkins 服务器提供凭证,但目前还没有完全实现。

其中一个真正的积极因素是,我们几乎只使用 Windows 的一线/二线支持人员可以访问一个漂亮的 Web GUI 来在半夜管理事物,并运行他们专门有权运行的 Jenkins 作业执行诸如重新启动服务器/服务甚至重建部分 VPC 之类的操作。

我们有一个单独的“开发”帐户,开发人员可以从自己的计算机访问该帐户,在开发 Ansible(和 Terraform)代码库时,我们就是在这个帐户中构建内容的,然后再在测试和生产环境中使用该代码库。