Alternatif berbasis Javascript untuk Fabric

8

Apakah ada alat DevOps mirip dengan kain dengan JavaScript sebagai bahasa scripting? Saya secara khusus tertarik pada sisi eksekusi jarak jauh.

Sebagian besar alat yang saya temukan bergantung pada python (mis. Kain ) atau Ruby (mis. Capistrano, Chef). Namun, di tim saya, kami tidak menggunakan bahasa ini untuk hal lain. Meskipun bahasa-bahasa ini mungkin luar biasa, mereka tidak seuniversal JavaScript di industri pengembangan web.

Saya menyebutkan kain karena ini ideal untuk apa yang saya inginkan kecuali bahwa saya memiliki keterampilan python minimal (sedih).

Henry
sumber
2
Untuk kain apa yang Anda maksud? Bisa mendapatkan tautan? Apakah ini MySQL Fabric ? Ini ideal untuk "apa yang Anda inginkan" tetapi apa yang Anda inginkan?
James Shewey
2
@ JamesShewey Saya sudah memperbarui posting saya. fabfile.org . Thx
Henry

Jawaban:

1

Shipit adalah apa yang Anda cari.

Shipit adalah mesin otomasi dan alat penyebaran yang ditulis untuk node / iojs.

Shipit dibangun untuk menjadi alternatif Capistrano bagi orang-orang yang tidak tahu ruby, atau yang mengalami beberapa masalah dengannya. Jika Anda ingin menulis tugas dalam JavaScript dan menikmati ekosistem node, Shipit juga untuk Anda.

Anda dapat mengotomatiskan apa pun dengan Shipit tetapi sebagian besar waktu Anda ingin menyebarkan proyek Anda menggunakan tugas penyebaran Shipit.

Vaughan
sumber
6

Fabric (dan Capistrano, mungkin alat Ruby tanpa nama yang Anda temui) agak tidak biasa karena merupakan pelari tugas dengan fitur tambahan untuk menjalankan tugas dengan mudah pada host jarak jauh. Saya tidak mengetahui adanya alat populer lain yang melakukan hal yang persis sama, tetapi tergantung pada kebutuhan Anda, ada beberapa opsi lain yang dapat bekerja untuk Anda.

Grunt dan Gulp adalah pelari tugas utama dalam ekosistem Javascript. Meskipun tidak dirancang khusus untuk menggunakan perangkat lunak, mereka berdua memiliki sistem berbasis plugin yang memungkinkan Anda melakukan ini, dan Anda akan menemukan banyak artikel dari orang yang menggunakan salah satu untuk melakukannya. Misalnya, tutorial ini menggunakan satu grunt-sshplugin yang mengintegrasikan ssh dengan kasar, sementara satu ini mengandalkan gulp-rsync.

Menggunakan pelari tugas untuk menyebarkan kode cenderung menjadi pendekatan yang disukai oleh pengembang yang mengenakan topi operasi. Ketika Anda bertanya kepada seorang insinyur operasi, mereka lebih cenderung menyarankan meretas perilaku ini ke alat konfigurasi. Ini dapat mengambil banyak bentuk (misalnya, mengemas aplikasi Anda menjadi rpm atau deb, lalu memasangnya seperti perangkat lunak lainnya), tetapi saya akan fokus pada apa yang saya pikir akan menjadi metode paling sederhana dan paling langsung untuk Anda.

Kemungkinan adalah alat manajemen konfigurasi, tapi itu benar-benar bersinar di orkestrasi tugas , yang akan saya definisikan sebagai "menjalankan serangkaian tindakan melintasi satu set server". Dokumentasi resmi adalah tempat yang baik untuk memulai, tetapi untuk memberi Anda gambaran seperti apa ini, Anda mungkin memiliki buku pedoman (file YAML yang mendefinisikan serangkaian tugas) seperti ini:

- hosts: webservers
  tasks:
    - name: update code checkout
      git:
        repo: ssh://[email protected]/mylogin/hello.git
        dest: /var/www
        version: master

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

Ketika Anda menjalankan file ini dengan ansible-playbook, itu akan mencari daftar host Anda (sesederhana file ini, tetapi juga bisa menjadi daftar dinamis yang ditulis dalam bahasa pemrograman apa pun) untuk menentukan server apa yang ada dan kelompok apa mereka berada, dan kemudian jalankan tugas yang ditentukan pada server yang Anda kirimi.

Sekarang, Anda menentukan bahwa Anda ingin tetap berada di ekosistem Javascript. Namun, sementara Ansible adalah hal baru bagi Anda, itu tidak memiliki semua kompleksitas bahasa pemrograman lain, karena konfigurasi ditulis dalam bahasa YAML. Ini juga akan memungkinkan Anda untuk melakukan jauh lebih banyak nanti, dan tidak seperti beberapa pesaingnya, menggunakan ssh untuk berkomunikasi, jadi hanya ada sedikit pengaturan yang terlibat (tidak ada yang dipasang pada mesin jarak jauh).

Xiong Chiamiov
sumber
1
Terima kasih sangat membantu. (dan ya saya mengacu pada Capistrano - Saya telah memperbarui posting saya)
Henry