Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Hợp lý hóa việc triển khai Ruby on Rails với Capistrano:Hướng dẫn từng bước

Trong bài viết này, chúng tôi sẽ định cấu hình Capistrano trong ứng dụng Ruby on Rails. Sau đó, chúng tôi sẽ triển khai ứng dụng lên phiên bản đám mây chạy Ubuntu dưới dạng hệ điều hành, độc lập với nhà cung cấp dịch vụ lưu trữ của bạn. Bạn có thể sử dụng bất kỳ dịch vụ đám mây nào hoặc thậm chí là máy chủ tại chỗ để kiểm tra hoặc lặp lại các bước chúng tôi sẽ thực hiện.

Sau khi triển khai ứng dụng, chúng tôi sẽ xem xét ngắn gọn cách bạn có thể giám sát quá trình triển khai ứng dụng của mình bằng AppSignal.

Nhưng trước tiên, bạn có thể hỏi:tại sao tôi nên sử dụng Capistrano ngay từ đầu?

Tại sao chọn Capistrano cho ứng dụng Ruby on Rails của bạn?

Bạn có thể tự hỏi liệu việc tiếp tục sử dụng Capistrano để triển khai hiện nay có còn hợp lý hay không. Hiện tại, chúng tôi có sẵn nhiều công cụ và dịch vụ để triển khai và tích hợp liên tục.

Nhưng để trả lời điều đó, chúng ta cần xem lại nguồn gốc của Capistrano và quá trình phát triển của nó cho đến ngày nay. Thẻ đầu tiên được tạo trong kho lưu trữ Capistrano là vào năm 2006. Mục tiêu của nó là cho phép thực thi các lệnh từ xa thông qua SSH song song trên một số máy, tất cả đều sử dụng DSL. Kể từ đó, Capistrano đã phát triển bằng cách bổ sung thêm một số tính năng cho mỗi phiên bản.

Hiện tại ở phiên bản 3 sau 16 năm, Capistrano tiếp tục được phát triển tích cực và hiện được biết đến như một khuôn khổ để xây dựng các tập lệnh triển khai tự động.

Vì vậy, nó không còn chỉ là một công cụ để chạy lệnh trên các máy từ xa nữa. Ngoài các tính năng của Capistrano, nhiều plugin và các tính năng bổ sung khác đặc biệt chạy với Capistrano.

Vì lý do này và thực tế là một cộng đồng lớn vẫn sử dụng Capistrano nên nó vẫn là một công cụ tuyệt vời để triển khai tự động.

Thêm Capistrano vào ứng dụng Ruby on Rails của bạn

Trước tiên, bạn sẽ cần định cấu hình ứng dụng Ruby on Rails để tích hợp nó với Capistrano. Bạn có thể làm theo tài liệu của Capistrano. Tuy nhiên, nó có nhiều thông tin hơn bạn cần cho phạm vi của bài đăng này. Vì vậy, để đơn giản, bài viết này chỉ bao gồm các bước và cấu hình cần thiết mà bạn cần.

Để bắt đầu cấu hình, hãy thêm đá quý Capistrano vào phần phát triển của Gemfile của bạn:

 

Bạn cần gem capistrano-rails để thực hiện quá trình di chuyển trên cơ sở dữ liệu của mình và xử lý các nội dung mà chúng ta sẽ thấy trong các phần tiếp theo.

Bây giờ hãy chạy bundle install để thêm Capistrano vào ứng dụng của bạn:

 

Sau đó bạn có thể cài đặt Capistrano:

 

Lệnh này sẽ tạo một tệp có tên Capfile nhập và cấu hình các thư viện cần thiết. Hơn nữa, một tập tin có tên deploy.rb (được tạo bên trong config thư mục) sẽ chứa tất cả các cấu hình cần có khi triển khai với Capistrano.

Lưu ý: Capistrano tạo một tệp để ghi đè deploy.rb cấu hình cho cả môi trường dàn dựng và sản xuất, nhưng điều đó sẽ không được đề cập trong bài viết này.

Như vậy, bạn đã sẵn sàng bắt đầu định cấu hình và liên lạc giữa ứng dụng Ruby on Rails và máy chủ.

Cấu hình máy chủ với Capistrano cho ứng dụng Rails của bạn

Trong bước này, chúng tôi sẽ thêm hướng dẫn vào tệp cấu hình Capistrano. Các hướng dẫn sẽ liên lạc với máy chủ của bạn về nơi ứng dụng của bạn sẽ được triển khai. Đây là nơi chúng tôi sẽ xác định thông tin truy cập và cấu hình bảo mật.

Để đảm bảo rằng môi trường sản xuất của bạn chạy cùng phiên bản Ruby với phiên bản bạn sử dụng trong quá trình phát triển, hãy sử dụng trình quản lý phiên bản Ruby, chẳng hạn như RVM hoặc rbenv (Capistrano hỗ trợ cả hai).

Trong bài viết này, chúng tôi sẽ sử dụng RVM. Đảm bảo bạn đã cài đặt RVM trên máy phát triển và máy chủ sản xuất của mình. Ngoài ra, hãy kiểm tra xem phiên bản Ruby trong môi trường và dự án của bạn có giống nhau không.

Thêm capistrano-rvm Đá quý

Dự án Capistrano cung cấp một loại đá quý có tên là capistrano-gem cho phép bạn dễ dàng cấu hình RVM. Để đưa nó vào dự án của bạn, hãy thêm nó vào Gemfile trong nhóm phát triển của bạn và chạy bundle install một lần nữa.

 

Cập nhật Capfile của bạn bằng cách nhập capistrano-rvm:

 

Trong tệp triển khai, thêm cấu hình để đặt phiên bản Ruby và đường dẫn đến RVM (đặc biệt nếu bạn sử dụng đường dẫn khác để cài đặt RVM).

Nếu không có phiên bản Ruby nào được xác định, Capistrano sẽ chọn phiên bản mới nhất mà bạn đã cài đặt trên máy chủ nơi ứng dụng của bạn sẽ được triển khai.

 

Capistrano::RVM có các cài đặt khác cho RVM, nhưng những cài đặt được hiển thị ở đây là những gì bạn cần để bắt đầu.

Thiết lập cấu hình máy chủ của bạn

Đó là một cách thực hành tốt để xác định người dùng cho việc triển khai. Đừng quên làm theo các bước sau trên máy chủ của bạn trước khi bắt đầu triển khai:

  1. Thêm khóa chung được tạo trên máy cục bộ của bạn vào ~/home/YOUR_USER/.ssh/authorized_keys tập tin.
  2. Tạo khóa và đưa khóa chung vào kho lưu trữ mã. Điều này cho phép bạn truy cập để sao chép dự án của mình trong máy chủ sản xuất. Nếu bạn đang sử dụng GitHub, bạn có thể làm theo tài liệu này.
  3. Đặt quyền ghi vào /var/www/ thư mục.

Bạn có thể định cấu hình Capistrano cho bất kỳ môi trường nào bạn cần. Bạn chỉ cần tạo một file cấu hình mới bên trong config/deploy/<environment_name>.rb , sau đó định cấu hình IP hoặc DNS và tên người dùng để kết nối với máy chủ của bạn.

 

Để hoàn tất quá trình thiết lập triển khai, hãy bao gồm thông tin về ứng dụng của bạn, chẳng hạn như tên ứng dụng và URL kho lưu trữ mã. Mọi thông tin giống nhau cho tất cả các môi trường phải được thêm vào config/deploy.rb . Giữ cấu hình môi trường cụ thể trong config/deploy/<environment_name>.rb .

 

Thiết lập capistrano-secrets-yml Đá quý cho ứng dụng Rails của bạn

Bạn cũng nên thiết lập gem capistrano-secrets-yml.

Thêm gem vào Gemfile của bạn và chạy gói để cài đặt:

 

Nhập nó vào Capfile:

 

Sau đó tạo config/secret.yml trong ứng dụng của bạn và bao gồm cơ sở khóa bí mật dưới dạng biến môi trường. Biến này sẽ được tạo trên máy chủ sản xuất của bạn. Hãy nhớ không để chuyển tập tin này vào kho lưu trữ của bạn.

 

Trong thư mục ứng dụng của bạn trong thiết bị đầu cuối, hãy chạy lệnh này để tạo cơ sở khóa bí mật:

 

Sao chép khóa đã tạo và sử dụng nó để đặt SECRET_KEY_BASE của bạn trên máy chủ sản xuất. Truy cập máy chủ sản xuất của bạn và xuất biến SECRET_KEY_BASE trong ~/.bashrc cuối cùng nên nó luôn có sẵn:

 

Chạy nguồn để làm cho nguồn có sẵn ngay lập tức trong môi trường của bạn:

 

Bây giờ, hãy quay lại máy của bạn, truy cập thư mục ứng dụng trong terminal và chạy lệnh Capistrano bên dưới để tạo config/secrets.yml trên máy chủ sản xuất:

 

Tất cả đã xong! Bây giờ là lúc định cấu hình Capistrano để tiến hành di chuyển.

Định cấu hình Capistrano để thực hiện di chuyển cơ sở dữ liệu

Bây giờ là lúc định cấu hình Capistrano để chạy các lệnh liên quan đến cơ sở dữ liệu.

Đường ray capistrano gem đã có trong Gemfile của bạn có thể được cấu hình để thực hiện di chuyển trên mỗi lần triển khai. Chúng ta chỉ cần import nó vào Capfile:

 

Nhưng nếu bạn muốn chạy hạt giống khi triển khai, bạn cần tạo một tác vụ mới để chạy sau khi di chuyển:

 

Với điều đó, ứng dụng của bạn cuối cùng đã sẵn sàng để triển khai!

Bắt đầu triển khai ứng dụng Ruby on Rails của bạn

Hãy xem cách thực hiện triển khai từ máy cục bộ bằng cách cập nhật trực tiếp máy chủ của chúng tôi lên phiên bản mới của ứng dụng.

Khi bạn thực thi lệnh triển khai, Capistrano sẽ kết nối với máy chủ của bạn. Từ đó, Capistrano sẽ cố gắng sao chép mã từ kho lưu trữ được xác định trong tệp cấu hình (config/deploy.rb ). Sau đó, các nhiệm vụ khác sẽ được thực hiện theo quy trình triển khai.

deploy:check của Capistrano lệnh xác thực rằng cấu hình Git ổn và Capistrano có quyền truy cập chính xác vào các thư mục sẽ được sử dụng trong quá trình triển khai.

Để sử dụng nó, hãy vượt qua môi trường. Trong trường hợp này, chúng tôi đang sử dụng sản xuất:

 

Nếu mọi thứ đều ổn với cấu hình, bạn có thể bắt đầu triển khai vào sản xuất:

 

Ngoài ra, bạn có thể kiểm tra tất cả các tác vụ có sẵn trong Capistrano bằng lệnh:

 

Bây giờ, ở bước cuối cùng, hãy tích hợp ứng dụng Ruby on Rails với AppSignal và bắt đầu theo dõi nó.

Cách tích hợp AppSignal với Capistrano và ứng dụng Rails của bạn

AppSignal là một công cụ giám sát, vì vậy bạn có thể thắc mắc tại sao nó lại được đưa vào bài viết này. Đó là một câu hỏi hợp lệ vì việc giám sát không liên quan trực tiếp đến việc triển khai.

Điều đó nói lên rằng, AppSignal là một công cụ có giá trị khi giám sát ứng dụng Ruby on Rails của bạn và theo dõi quá trình triển khai trong từng môi trường. Vì vậy, hãy xem cách chúng tôi có thể thiết lập AppSignal cho ứng dụng của bạn.

Bạn sẽ cần có tài khoản AppSignal mà bạn có thể tạo trên trang đăng ký của AppSignal. Chọn Ruby làm ngôn ngữ của bạn và làm theo các bước để cài đặt AppSignal trong ứng dụng của bạn.

Sau khi cài đặt, một tệp sẽ được tạo để định cấu hình AppSignal. Điều quan trọng ở đây là xác định bản sửa đổi — thông tin sẽ được kiểm tra sau khi triển khai để xem phiên bản mới của ứng dụng đã được triển khai chưa. Trong trường hợp này, chúng tôi sẽ sử dụng nhật ký Git làm thông tin sửa đổi để đảm bảo rằng mỗi lần triển khai mã mới sẽ thông báo cho AppSignal.

 

Bạn cũng nên xuất các biến môi trường AppSignal sang máy chủ sản xuất của mình (đặc biệt là khóa API để không giữ nó trong tệp cấu hình AppSignal).

 

Và bây giờ chúng ta có thể chạy lại quá trình triển khai. Nếu mọi thứ được thiết lập chính xác, bạn sẽ thấy thông báo như thế này khi kết thúc quá trình triển khai:

 

Bây giờ bạn sẽ có thể xem ứng dụng của mình trong AppSignal! 🎉

Hợp lý hóa việc triển khai Ruby on Rails với Capistrano:Hướng dẫn từng bước

Và thông tin về mọi hoạt động triển khai:

Hợp lý hóa việc triển khai Ruby on Rails với Capistrano:Hướng dẫn từng bước

Truy cập trang tài liệu triển khai của AppSignal để tìm hiểu thêm về tích hợp triển khai và các tính năng khác có sẵn cho ứng dụng Ruby on Rails.

Kết thúc và các bước tiếp theo

Trong bài đăng này, chúng tôi đã khám phá cách sử dụng Capistrano để triển khai ứng dụng Ruby on Rails của bạn. Đầu tiên, chúng tôi thêm Capistrano vào một ứng dụng, sau đó định cấu hình và triển khai ứng dụng đó trước khi thiết lập tính năng giám sát bằng AppSignal.

Nếu muốn khám phá thêm, bạn có thể định cấu hình Capistrano để chạy từ một tích hợp được kết nối với đường dẫn của kho lưu trữ của bạn. Các công cụ như Bitbucket, GitHub và GitLab cung cấp các cài đặt để quản lý quy trình này và có thể được sử dụng cùng với Capistrano.

Chúc bạn viết mã vui vẻ!

Tái bút. Nếu bạn muốn đọc các bài đăng của Ruby Magic ngay khi chúng được đăng tải, hãy đăng ký nhận bản tin Ruby Magic của chúng tôi và không bao giờ bỏ lỡ một bài đăng nào!