是否有类似的DevOps工具可以将JavaScript作为脚本语言进行编排?我对远程执行方面特别感兴趣。

我发现大多数工具都依赖python(例如fabric)或Ruby(例如Capistrano,Chef)。但是,在我的团队中,我们不会将这些语言用于其他任何用途。虽然这些语言可能很棒,但是它们在Web开发行业中不像JavaScript那样通用。 br />

评论

您指的是哪种面料?可以得到一个链接?这是MySQL Fabric吗?它是“您想要什么”的理想选择,但是您想要什么?

@JamesShewey我更新了我的帖子。 fabfile.org。 Thx

#1 楼

Shipit是您所需要的。

Shipit是为节点/ iojs编写的自动化引擎和部署工具。
Shipit的构建是Capistrano的替代品,可用于不认识的人红宝石,或遇到过一些问题的人。如果您想用JavaScript编写任务并享受节点生态系统,那么Shipit也很适合您。
您可以使用Shipit自动化任何事情,但是大多数情况下,您将希望使用Shipit部署任务来部署项目。 />

#2 楼

Fabric(还有Capistrano,大概是您遇到的未命名的Ruby工具)有点不寻常,因为它们是任务运行者,具有额外的功能,可以轻松地在远程主机上运行任务。我不知道有什么其他流行工具可以做完全相同的事情,但是根据您的需求,还有一些其他选项可能对您有用。在Javascript生态系统中。尽管它们不是专门为部署软件而设计的,但它们都具有基于插件的系统,使您可以执行此操作,并且您会发现很多人使用这两种方法来执行此操作。例如,本教程使用grunt-ssh插件将ssh与grunt集成在一起,而本教程则依赖gulp-rsync

使用任务运行程序部署代码通常是戴着ops帽子的开发人员所偏爱的方法。 。当您询问运营工程师时,他们更有可能建议将此行为破解到配置工具中。这可以采用多种形式(例如,将应用程序打包为rpm或deb,然后像其他任何软件一样安装),但是我将重点介绍我认为对您来说最简单,最直接的方法。 br />
表面上看,Ansible是一种配置管理工具,但它确实在任务编排上大放异彩,我将其定义为“在一组服务器上运行一组动作”。官方文档是入门的好地方,但为了让您大致了解它的外观,您可能会拥有一个类似以下的剧本(定义一组任务的YAML文件):

 - hosts: webservers
  tasks:
    - name: update code checkout
      git:
        repo: ssh://git@github.com/mylogin/hello.git
        dest: /var/www
        version: master

    - name: restart webserver
      command: restart-command-you-run
 


当您使用ansible-playbook运行此文件时,它将查找您的主机列表(就像ini文件一样简单,但也可以是用任何编程语言编写的动态列表),以确定存在的服务器以及它们所在的组,然后在您告诉它的服务器上运行定义的任务。

现在,您指定要保留在Javascript生态系统中。但是,尽管Ansible对您来说是新事物,但它并没有另一种编程语言的所有复杂性,因为配置是用YAML编写的。它还将允许您以后做更多的事情,并且与其他竞争者不同,它使用ssh进行通信,因此几乎不需要进行任何设置(无需在远程计算机上进行安装)。

评论


非常有帮助,谢谢。 (是的,我指的是Capistrano-我已经更新了我的帖子)

–亨利
17年6月3日在21:49