Javascript-basierte Alternative zu Fabric


8

Gibt es ein ähnliches DevOps Tool Stoff mit JavaScript als Skriptsprache? Ich interessiere mich speziell für die Remote-Ausführung.

Die meisten Werkzeuge, die ich gefunden habe, basieren auf Python (z. B. Stoff ) oder Ruby (z. B. Capistrano, Chef). In meinem Team verwenden wir diese Sprachen jedoch nicht für andere Zwecke. Obwohl diese Sprachen großartig sein mögen, sind sie in der Webentwicklungsbranche nicht so universell wie JavaScript.

Ich erwähne Stoff, weil er ideal für das ist, was ich will, außer dass ich (leider) nur minimale Python-Fähigkeiten habe.


2
Auf welchen Stoff beziehen Sie sich? Könnte ein Link bekommen? Ist das MySQL Fabric ? Es ist ideal für "was du willst", aber was willst du?
James Shewey

2
@ JamesShewey Ich habe meinen Beitrag aktualisiert. fabfile.org . Thx
Henry

Antworten:


1

Shipit ist das, wonach Sie suchen.

Shipit ist eine Automatisierungs-Engine und ein Bereitstellungstool, das für Node / Iojs geschrieben wurde.

Shipit wurde als Capistrano-Alternative für Leute gebaut, die Ruby nicht kennen oder Probleme damit hatten. Wenn Sie Aufgaben in JavaScript schreiben und das Knoten-Ökosystem genießen möchten, ist Shipit auch für Sie.

Mit Shipit können Sie alles automatisieren, aber meistens möchten Sie Ihr Projekt mithilfe der Shipit-Bereitstellungsaufgabe bereitstellen.


6

Fabric (und Capistrano, vermutlich das unbenannte Ruby-Tool, auf das Sie gestoßen sind) sind insofern etwas ungewöhnlich, als sie Task-Runner mit zusätzlichen Funktionen zum einfachen Ausführen von Aufgaben auf Remote-Hosts sind. Mir sind keine anderen beliebten Tools bekannt, die genau dasselbe tun, aber je nach Ihren Anforderungen gibt es einige andere Optionen, die für Sie möglicherweise funktionieren.

Grunzen und Schlucken sind die wichtigsten Aufgabenläufer im Javascript-Ökosystem. Obwohl nicht speziell zu installierenden Software entwickelt, haben sie beide Plugin-basierte Systeme , die Sie tun dies erlauben, und Sie werden viele Artikel von Menschen mit finden entweder ein , dies zu tun. In diesem Tutorial wird beispielsweise das grunt-sshPlugin verwendet, um ssh in grunt zu integrieren, während sich dieses auf dieses Plugin stützt gulp-rsync.

Die Verwendung von Task-Läufern zum Bereitstellen von Code ist in der Regel ein Ansatz, der von Entwicklern bevorzugt wird, die einen Ops-Hut tragen. Wenn Sie einen Betriebsingenieur fragen, schlägt dieser eher vor, dieses Verhalten in ein Konfigurationstool zu hacken. Dies kann viele Formen annehmen (z. B. das Packen Ihrer App in eine Drehzahl oder ein Deb und das anschließende Installieren wie jede andere Software), aber ich werde mich auf das konzentrieren, was meiner Meinung nach die einfachste und direkteste Methode für Sie ist.

Ansible ist angeblich ein Konfigurationsmanagement-Tool, aber es glänzt wirklich bei der Task-Orchestrierung , die ich als "Ausführen einer Reihe von Aktionen auf einer Reihe von Servern" definieren würde. Die offizielle Dokumentation ist ein guter Ausgangspunkt, aber um Ihnen eine Vorstellung davon zu geben, wie dies aussehen könnte, haben Sie möglicherweise ein Playbook (eine YAML-Datei, die eine Reihe von Aufgaben definiert) wie folgt:

- 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

Wenn Sie diese Datei mit ausführen ansible-playbook, wird Ihre Hostliste (so einfach wie eine INI-Datei, kann aber auch eine dynamische Liste sein, die in einer beliebigen Programmiersprache geschrieben ist) nachgeschlagen, um festzustellen, welche Server vorhanden sind und in welchen Gruppen sie sich befinden, und dann Führen Sie die definierten Aufgaben auf den Servern aus, denen Sie dies mitteilen.

Nun haben Sie angegeben, dass Sie im Javascript-Ökosystem bleiben möchten. Obwohl Ansible für Sie neu ist, weist es nicht alle Komplexitäten einer anderen Programmiersprache auf, da Konfigurationen in YAML geschrieben sind. Sie können damit auch viel später viel mehr tun und verwenden im Gegensatz zu einigen Mitbewerbern ssh zur Kommunikation, sodass nur sehr wenig Setup erforderlich ist (nichts, was auf den Remote-Computern installiert werden muss).


1
Sehr hilfreich danke. (und ja, ich bezog mich auf Capistrano - ich habe meinen Beitrag aktualisiert)
Henry
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.