Continuous integration Ansible应该在部署之前编译和测试代码,还是应该只部署编译和测试的代码

Continuous integration Ansible应该在部署之前编译和测试代码,还是应该只部署编译和测试的代码,continuous-integration,ansible,Continuous Integration,Ansible,我习惯于在每次提交更改时(无论是针对临时服务器还是生产服务器)都有一个实体签出、构建、测试和部署代码。现在我们已经开始研究Ansible,我开始认为这些工具有一些孤立的角色 基本上,我是在问,是Ansible负责在部署前编译和测试代码,还是应该从Bambol这样的CI服务器获取工件并相信工件已经准备好部署?我不确定使用Ansible进行编译的想法,我宁愿在CI内部这样做,因为他们已经为此提供了设施。至于测试,它取决于测试的类型——如果这些是单元测试,那么它们应该在构建之后立即运行(最好再次在CI

我习惯于在每次提交更改时(无论是针对临时服务器还是生产服务器)都有一个实体签出、构建、测试和部署代码。现在我们已经开始研究Ansible,我开始认为这些工具有一些孤立的角色


基本上,我是在问,是Ansible负责在部署前编译和测试代码,还是应该从Bambol这样的CI服务器获取工件并相信工件已经准备好部署?

我不确定使用Ansible进行编译的想法,我宁愿在CI内部这样做,因为他们已经为此提供了设施。至于测试,它取决于测试的类型——如果这些是单元测试,那么它们应该在构建之后立即运行(最好再次在CI内部运行),要么失败,要么通过构建


但是,如果这些测试是集成/功能性的(它们验证服务是否如我们预期的那样在环境中实际工作),那么它们肯定应该是playbook的post_任务的一部分,如果它们没有通过,您应该将部署标记为失败,并相应地采取行动。当然,在服务暴露于生产流量之前,这提供了一种安全的方法来实现这一点,因此如果测试没有通过,您可以安全地展开它。

我不确定使用ansible进行编译的想法,我宁愿在CI中进行编译,因为他们已经为此提供了工具。至于测试,它取决于测试的类型——如果这些是单元测试,那么它们应该在构建之后立即运行(最好再次在CI内部运行),要么失败,要么通过构建


但是,如果这些测试是集成/功能性的(它们验证服务是否如我们预期的那样在环境中实际工作),那么它们肯定应该是playbook的post_任务的一部分,如果它们没有通过,您应该将部署标记为失败,并相应地采取行动。这当然提供了一种安全的方法,在服务暴露于生产流量之前,这样做,如果测试不通过,您可以安全地展开它。

不,Ansible的责任不是在部署之前编译和测试代码

是的,它应该从CI服务器(如Bambol)抓取工件,并相信工件已准备好部署

Ansible是一个非常简单的IT自动化引擎,它可以自动化云资源调配、配置管理、应用程序部署、服务内协调以及许多其他IT需求


不,Ansible的责任不是在部署前编译和测试代码

是的,它应该从CI服务器(如Bambol)抓取工件,并相信工件已准备好部署

Ansible是一个非常简单的IT自动化引擎,它可以自动化云资源调配、配置管理、应用程序部署、服务内协调以及许多其他IT需求