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).
deployment
Henry
sumber
sumber
Jawaban:
Shipit adalah apa yang Anda cari.
sumber
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-ssh
plugin yang mengintegrasikan ssh dengan kasar, sementara satu ini mengandalkangulp-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:
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).
sumber