Javascript thay thế cho Fabric


8

Có một công cụ DevOps tương tự để kết cấu với JavaScript như ngôn ngữ kịch bản của nó không? Tôi đặc biệt quan tâm đến phía thực thi từ xa.

Hầu hết các công cụ tôi tìm thấy đều dựa vào python (ví dụ như vải ) hoặc Ruby (ví dụ Capistrano, Chef). Tuy nhiên, trong nhóm của tôi, chúng tôi không sử dụng các ngôn ngữ này cho bất kỳ ngôn ngữ nào khác. Mặc dù các ngôn ngữ này có thể tuyệt vời, nhưng chúng không phổ biến như JavaScript trong ngành phát triển web.

Tôi đề cập đến vải vì nó lý tưởng cho những gì tôi muốn ngoại trừ việc tôi có kỹ năng trăn tối thiểu (đáng buồn thay).


2
Bạn đang đề cập đến loại vải nào? Có thể có được một liên kết? Đây có phải là vải MySQL không? Đó là lý tưởng cho "những gì bạn muốn" nhưng bạn muốn gì?
James Shewey

2
@JamesShewey Tôi đã cập nhật bài viết của mình. fabfile.org . Thx
Henry

Câu trả lời:


1

Shipit là những gì bạn đang tìm kiếm.

Shipit là một công cụ tự động hóa và một công cụ triển khai được viết cho nút / iojs.

Shipit được xây dựng để thay thế Capistrano cho những người không biết ruby ​​hoặc những người gặp phải một số vấn đề với nó. Nếu bạn muốn viết các tác vụ bằng JavaScript và tận hưởng hệ sinh thái nút, Shipit cũng là dành cho bạn.

Bạn có thể tự động hóa mọi thứ với Shipit nhưng hầu hết thời gian bạn sẽ muốn triển khai dự án của mình bằng cách sử dụng tác vụ triển khai Shipit.


6

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.

GruntGulp 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-sshgulp-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).


1
Rất hữu ích cảm ơn. (và vâng, tôi đã đề cập đến Capistrano - Tôi đã cập nhật bài đăng của mình)
Henry
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.