Fabric (và Capistrano, có lẽ là công cụ Ruby chưa được đặt tên mà bạn gặp) có một chút khác thường ở chỗ họ là người chạy nhiệm vụ với các tính năng bổ sung để dễ dàng chạy các tác vụ trên máy chủ từ xa. Tôi không biết bất kỳ công cụ phổ biến nào khác thực hiện chính xác điều tương tự, nhưng tùy thuộc vào nhu cầu của bạn, có một vài tùy chọn khác có thể phù hợp với bạn.
Grunt và Gulp là những người chạy nhiệm vụ quan trọng nhất trong hệ sinh thái Javascript. Mặc dù không được thiết kế đặc biệt để triển khai phần mềm, cả hai đều có hệ thống dựa trên plugin cho phép bạn làm điều này và bạn sẽ tìm thấy rất nhiều bài viết của những người sử dụng một trong hai để làm như vậy. Ví dụ, hướng dẫn này sử dụng các Plugin để tích hợp ssh với grunt, trong khi cái này dựa vào .grunt-ssh
gulp-rsync
Sử dụng các trình chạy tác vụ để triển khai mã có xu hướng là một cách tiếp cận được ưa chuộng bởi các nhà phát triển đang đội mũ ops. Khi bạn hỏi một kỹ sư hoạt động, nhiều khả năng họ sẽ đề xuất hack hành vi này vào một công cụ cấu hình. Điều này có thể có nhiều hình thức (ví dụ: đóng gói ứng dụng của bạn thành một vòng / phút, sau đó cài đặt nó như bất kỳ phần mềm nào khác), nhưng tôi sẽ tập trung vào những gì tôi nghĩ sẽ là phương pháp đơn giản và trực tiếp nhất cho bạn.
Ansible rõ ràng là một công cụ quản lý cấu hình, nhưng nó thực sự tỏa sáng ở nhiệm vụ phối hợp , mà tôi sẽ định nghĩa là "chạy một tập hợp các hành động trên một tập hợp các máy chủ". Tài liệu chính thức là một nơi tốt để bắt đầu, nhưng để cho bạn biết ý tưởng của nó, bạn có thể có một playbook (tệp YAML xác định một nhóm tác vụ) như thế này:
- 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
Khi bạn chạy tệp này ansible-playbook
, nó sẽ tra cứu danh sách máy chủ của bạn (đơn giản như tệp ini, nhưng cũng có thể là danh sách động được viết bằng bất kỳ ngôn ngữ lập trình nào) để xác định máy chủ nào tồn tại và nhóm nào đang ở, sau đó chạy các tác vụ được xác định trên các máy chủ mà bạn bảo nó.
Bây giờ, bạn đã xác định rằng bạn muốn ở lại trong hệ sinh thái Javascript. Tuy nhiên, trong khi Ansible là một điều mới đối với bạn, nó không có tất cả sự phức tạp của ngôn ngữ lập trình khác, vì các cấu hình được viết bằng YAML. Nó cũng sẽ cho phép bạn thực hiện nhiều hơn sau đó, và không giống như một số đối thủ cạnh tranh, sử dụng ssh để liên lạc, do đó có rất ít thiết lập liên quan (không có gì để cài đặt trên các máy từ xa).