我们是一家刚刚起步的初创公司,面临着管理数百台机器的问题,必须每晚和每周对所有机器进行发布,并管理它们的配置。
这通常需要一个或多个系统管理员来完成,但在我们的案例中,我们只需要一个系统管理员即可完成。我们研究了 Puppet 和 Distributed Shell 等工具,但似乎没有一个符合我们的要求。对于每台机器,需要从源代码构建一些 Linux 模块、更新软件包、设置堆栈和 Linux 配置、从 Git 下载源代码,并以自动化方式更新数据库模式定义。问题在于,我们需要在获得批准的情况下完成所有这些操作。
有没有什么工具可以让我们在执行之前先批准命令?
Puppet 似乎最接近我们的需要,但从源代码构建似乎很难设置,并且需要打开额外的端口(我们只有端口 22 可用)。
答案1
您可能希望将 Ansible 用作配置管理,因为它使用现有的 SSH 访问权限来联系机器。
听起来,您不仅需要配置管理解决方案,还需要业务流程/工作流管理解决方案来管理复杂的事件序列,并进行每步故障检测和跨多台机器的并行处理。为此,Control/M、JBPM 或事件 Concourse.ci 之类的东西会很有用。
祝你和你的创业公司好运。
答案2
如果您使用的是虚拟机,您可能需要查看 Asgard。这将允许任何人构建 AMI,但只有获得批准的个人才能真正将新的 AMI 发布到公众面前。然后您可以使用任何您想要的工具来构建 AMI。