Alternativa basata su Javascript a Fabric


8

C'è una DevOps simile strumento per tessuto con JavaScript come linguaggio di scripting? Sono particolarmente interessato al lato dell'esecuzione remota.

La maggior parte degli strumenti che ho trovato si basano su Python (ad es. Tessuto ) o Ruby (ad es. Capistrano, Chef). Tuttavia, nel mio team non usiamo queste lingue per nient'altro. Sebbene queste lingue possano essere fantastiche, non sono universali come JavaScript nel settore dello sviluppo web.

Cito il tessuto perché è l'ideale per quello che voglio, tranne per il fatto che ho abilità di pitone minime (purtroppo).


2
A quale tessuto ti riferisci? Potrebbe essere un link? Questo tessuto MySQL è ? È l'ideale per "quello che vuoi" ma cosa vuoi?
James Shewey,

2
@JamesShewey Ho aggiornato il mio post. fabfile.org . Grazie
Henry,

Risposte:


1

Shipit è quello che stai cercando.

Shipit è un motore di automazione e uno strumento di distribuzione scritto per node / iojs.

Shipit è stato costruito per essere un'alternativa a Capistrano per le persone che non conoscono il rubino o che hanno riscontrato problemi con esso. Se vuoi scrivere attività in JavaScript e goderti l'ecosistema del nodo, Shipit fa anche per te.

Puoi automatizzare qualsiasi cosa con Shipit ma la maggior parte delle volte vorrai distribuire il tuo progetto usando l'attività di distribuzione Shipit.


6

Fabric (e Capistrano, presumibilmente lo strumento Ruby senza nome in cui ti sei imbattuto) sono un po 'insoliti in quanto sono runner con funzionalità extra per eseguire facilmente attività su host remoti. Non sono a conoscenza di altri strumenti popolari che fanno esattamente la stessa cosa, ma a seconda delle tue esigenze ci sono alcune altre opzioni che potrebbero funzionare per te.

Grunt e Gulp sono i principali runner nell'ecosistema Javascript. Sebbene non siano progettati specificamente per distribuire software, entrambi hanno sistemi basati su plug-in che ti consentono di farlo e troverai molti articoli di persone che usano uno di essi per farlo. Ad esempio, questo tutorial usa il grunt-sshplugin per integrare ssh con grunt, mentre questo si basa su gulp-rsync.

L'uso dei task runner per distribuire il codice tende ad essere un approccio preferito dagli sviluppatori che indossano un cappello operativo. Quando chiedi a un ingegnere operativo, è più probabile che suggeriscano di hackerare questo comportamento in uno strumento di configurazione. Questo può assumere molte forme (ad esempio, impacchettare la tua app in un rpm o deb, quindi installarla come qualsiasi altro software), ma mi concentrerò su quello che penso sarebbe il metodo più semplice e diretto per te.

Ansible è apparentemente uno strumento di gestione della configurazione, ma brilla davvero nell'orchestrazione delle attività , che definirei come "esecuzione di una serie di azioni su una serie di server". La documentazione ufficiale è un buon punto di partenza, ma per darti un'idea di come potrebbe essere, potresti avere un playbook (un file YAML che definisce una serie di attività) come questo:

- 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

Quando esegui questo file ansible-playbook, verrà visualizzato l'elenco degli host (semplice come un file ini, ma può anche essere un elenco dinamico scritto in qualsiasi linguaggio di programmazione) per determinare quali server esistono e in quali gruppi si trovano, quindi eseguire le attività definite sui server a cui lo si dice.

Ora, hai specificato che volevi rimanere nell'ecosistema Javascript. Tuttavia, sebbene Ansible sia una novità per te, non ha tutte le complessità di un altro linguaggio di programmazione, poiché le configurazioni sono scritte in YAML. Ti permetterà anche di fare molto di più in seguito, e a differenza di molti dei suoi concorrenti, usa ssh per comunicare, quindi c'è pochissima installazione in gioco (niente da installare sui computer remoti).


1
Grazie molto utile. (e sì, mi riferivo a Capistrano - ho aggiornato il mio post)
Henry,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.