Alternativa basada en Javascript a Fabric


8

¿Existe una herramienta DevOps similar a la tela con JavaScript como su lenguaje de script? Estoy específicamente interesado en el lado de la ejecución remota.

La mayoría de las herramientas que he encontrado se basan en python (por ejemplo, tela ) o Ruby (por ejemplo, Capistrano, Chef). Sin embargo, en mi equipo no usamos estos idiomas para nada más. Si bien estos lenguajes pueden ser geniales, no son tan universales como JavaScript en la industria del desarrollo web.

Menciono tela porque es ideal para lo que quiero, excepto que tengo habilidades mínimas de pitón (por desgracia).


2
¿A qué tela te refieres? Podría ser obtener un enlace? ¿Es este MySQL Fabric ? Es ideal para "lo que quieres" pero ¿qué quieres?
James Shewey

2
@JamesShewey He actualizado mi publicación. fabfile.org . Thx
Henry

Respuestas:


1

Shipit es lo que estás buscando.

Shipit es un motor de automatización y una herramienta de implementación escrita para node / iojs.

Shipit fue construido para ser una alternativa de Capistrano para las personas que no conocen el rubí, o que experimentaron algunos problemas con él. Si desea escribir tareas en JavaScript y disfrutar del ecosistema de nodos, Shipit también es para usted.

Puede automatizar cualquier cosa con Shipit, pero la mayoría de las veces querrá implementar su proyecto utilizando la tarea de implementación de Shipit.


6

Fabric (y Capistrano, presumiblemente la herramienta Ruby sin nombre con la que te encontraste) son un poco inusuales ya que son corredores de tareas con características adicionales para ejecutar tareas fácilmente en hosts remotos. No conozco ninguna otra herramienta popular que haga exactamente lo mismo, pero dependiendo de sus necesidades, hay algunas otras opciones que pueden funcionar para usted.

Grunt y Gulp son los principales corredores de tareas en el ecosistema Javascript. Si bien no están diseñados específicamente para implementar software, ambos tienen sistemas basados ​​en complementos que le permiten hacer esto, y encontrará muchos artículos de personas que usan cualquiera de los dos para hacerlo. Por ejemplo, este tutorial utiliza el grunt-sshcomplemento para integrar ssh con grunt, mientras que este se basa en gulp-rsync.

El uso de corredores de tareas para implementar código tiende a ser un enfoque favorecido por los desarrolladores que usan un sombrero de operaciones. Cuando le preguntas a un ingeniero de operaciones, es más probable que sugieran piratear este comportamiento en una herramienta de configuración. Esto puede tomar muchas formas (por ejemplo, empaquetar su aplicación en rpm o deb, luego instalarla como cualquier otro software), pero me enfocaré en lo que creo que sería el método más simple y directo para usted.

Ansible es aparentemente una herramienta de administración de configuración, pero realmente brilla en la orquestación de tareas , lo que yo definiría como "ejecutar un conjunto de acciones en un conjunto de servidores". La documentación oficial es un buen lugar para comenzar, pero para darle una idea de cómo se vería esto, puede tener un libro de jugadas (un archivo YAML que define un conjunto de tareas) como este:

- 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

Cuando ejecute este archivo ansible-playbook, buscará su lista de hosts (tan simple como un archivo ini, pero también puede ser una lista dinámica escrita en cualquier lenguaje de programación) para determinar qué servidores existen y en qué grupos están, y luego ejecute las tareas definidas en los servidores que le indique.

Ahora, especificó que deseaba permanecer en el ecosistema Javascript. Sin embargo, aunque Ansible es algo nuevo para usted, no tiene todas las complejidades de otro lenguaje de programación, ya que las configuraciones están escritas en YAML. También le permitirá hacer mucho más después, y a diferencia de varios de sus competidores, usa ssh para comunicarse, por lo que hay muy poca configuración involucrada (nada que instalar en las máquinas remotas).


1
Muy útil gracias. (y sí, me refería a Capistrano - He actualizado mi publicación)
Henry
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.