如果运行像 Ansible 这样的自动化工具来在云中构建您的基础设施堆栈(例如 AWS),那么拥有自动化工具并在云中的不同区域/VPC 中构建堆栈就足够了吗,还是让您的自动化更有意义?本地工具和脚本(自己的数据中心/机器)?
两者似乎都被使用,但我只是想知道是否有最佳实践标准。
如果运行像 Ansible 这样的自动化工具来在云中构建您的基础设施堆栈(例如 AWS),那么拥有自动化工具并在云中的不同区域/VPC 中构建堆栈就足够了吗,还是让您的自动化更有意义?本地工具和脚本(自己的数据中心/机器)?
两者似乎都被使用,但我只是想知道是否有最佳实践标准。
我们在本地运行一切。
加
减
其他注意事项
PS:不确定是否有明确的答案,但这些是我们的论点。
我们从中获得的真正好处是,它允许我们使用运行Ansible的集中式Jenkins服务器(在我们的案例中,Terraform用于实际的 AWS 预置,而 Ansible 仅用于配置 EC2 实例并为管理任务运行临时剧本)。
然后,我们可以通过凭据和/或安全组/NACL 控制对这些 Jenkins 服务器的访问。
这样做意味着我们可以控制拥有某种形式的凭证的人数,这些凭证允许他们建造他们喜欢的任何东西和/或摧毁他们喜欢的任何东西。
理想情况下,我们只通过 IAM EC2 实例角色向 Jenkins 服务器提供凭证,但我们还没有做到。
一个真正的积极因素是,我们几乎完全使用 Windows 的一线/二线支持人员可以在半夜访问一个不错的 Web GUI 来管理事物并运行他们专门有权运行的 Jenkins 作业,这将做一些事情,比如重新启动服务器/服务,甚至重建 VPC 的一部分。
我们有一个单独的“开发”帐户,开发人员可以从他们自己的机器上访问它,我们在这里构建我们的 Ansible(和 Terraform)代码库,然后将该代码库用于我们的测试和生产环境。