この短い記事では、Railsの構成(Pumaを使用してNginxで実行されるアプリケーションと、Minaですべてを展開する方法)を紹介します。
上記の項目を除いて、サーバーにすべての環境が既にインストールされていると仮定します(rbenvを介してrubyをインストールすることをお勧めします。そのため、Minaの上記の構成は専用に設計されます)。
私のMinaのインストールは非常に簡単です。gemをインストールするだけです(Gemfileにインストールする必要はありません)。
gem install mina次に、コマンドを入力します。
ミナ初期このコマンドは、最低限必要な構成を含むconfig / deploy.rbファイルを生成します。
gitを設定する必要があることを覚えておいてください。(極端な場合)リポジトリからのログインとパスワードは、例に示すようにMina設定ファイルに直接書き込むことができます。 データベースに適用されるすべての設定が必要です。 また、構成にリストされているフォルダー/ファイルを作成していない場合は、それらを作成する必要があることに注意してください。
完全な構成例:
deploy.rbrequire 'mina/bundler' require 'mina/rails' require 'mina/git' require 'mina/rbenv' lock '3.2.1' set :user, 'admin' set :domain, '100.100.100.100' set :identity_file, "#{ENV['HOME']}/.ssh/google" set :deploy_to, '/var/www/admin_app' set :app_path, lambda { "#{deploy_to}/#{current_path}" } set :repository, 'https://admin:admin@github.com/Admin_app.git' set :branch, 'master' set :forward_agent, true set :rbenv_path, '/home/admin/.rbenv/' set :shared_paths, ['config/database.yml', 'log'] task :environment do invoke :'rbenv:load' end task :setup => :environment do queue! %[mkdir -p "#{deploy_to}/#{shared_path}/log"] queue! %[chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/log"] queue! %[mkdir -p "#{deploy_to}/#{shared_path}/config"] queue! %[chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/config"] queue! %[touch "#{deploy_to}/#{shared_path}/config/database.yml"] queue %[echo "-----> Be sure to edit '#{deploy_to}/#{shared_path}/config/database.yml'."] end desc "Deploys the current version to the server." task :deploy => :environment do to :before_hook do
deploy.rbファイルが真実に似ていて機能するはずだと確信したら、次のコマンドを入力する必要があります。
ミナのセットアップこのコマンドは、アプリケーションのルートフォルダー内に必要なフォルダーインフラストラクチャを作成します(構成では/ var / www / admin_appです)。
database.ymlファイルに情報が含まれており、正しいことを確認してください。 ファイルは/ var / www / myapp / shared / configにあります。
次に入力します:
ミナデプロイこの操作が成功した場合、アプリケーションは/ var / www / admin_appのパスに沿って待機します。
deploy.rbにタスクを記述し、内部でそれらを呼び出すことにより、デプロイを簡単に拡張できます:deploy =>:environment。
たとえば、レスキューワーカーを開始および停止する2つのタスクを作成します。
依頼のタスク desc 'Start resque-workers' task :start_workers do queue 'echo "-----> Start resque-workers"' queue "cd #{app_path} && RAILS_ENV=#{stage} && touch resque.pid" queue "cd #{app_path} && bundle exec rake resque:work QUEUE=contacts_adder BACKGROUND=yes TERM_CHILD=1" queue "cd #{app_path} && bundle exec rake resque:work QUEUE=photo_downloader BACKGROUND=yes TERM_CHILD=1"
次のコマンドを使用して、使用可能なタスクのリストを表示できます。
ミナタスクプーマPumaを構成するには、puma.rb構成ファイルとシェル-Pumaを開始/停止/再起動するように設計されたスクリプトの2つのファイルが必要です。
config /にpuma.rbファイルを作成します。 そして、次の情報を入力します。
構成を記入する際にパスを慎重に確認してください!
bin / puma.shファイルを作成します。 記入してください:
次に、Puma設定を使用してdeploy.rbファイルを展開します。
プーマのタスク namespace :puma do desc 'Start the application' task :start do queue 'echo "-----> Start Puma"' queue "cd #{app_path} && RAILS_ENV=#{stage} && bin/puma.sh start" , :pty => false end desc 'Stop the application' task :stop do queue 'echo "-----> Stop Puma"' queue "cd #{app_path} && RAILS_ENV=#{stage} && bin/puma.sh stop" end desc 'Restart the application' task :restart do queue 'echo "-----> Restart Puma"' queue "cd #{app_path} && RAILS_ENV=#{stage} && bin/puma.sh restart" end end
「to:launch do」(サーバーを起動する前)ブロック内に、次のように記述します。
invoke :'puma:restart'
puma.shファイルを実行可能にすることを忘れないでください:
chmod + x bin / puma.shそして、デプロイを再現します。
ミナデプロイNginxNginxは、パッケージマネージャーから直接インストールできます。
sudo apt-get install nginxnginxをインストールしたら、デフォルトサイトを削除する必要があります。
sudo rm /etc/nginx/conf.d/sites-enabled/defaultファイル/etc/nginx/sites-available/my_app.confを作成します。
Nginx'a config upstream my_app { server unix:///var/www/admin/current/shared/tmp/sockets/puma.sock; } server { listen 80; server_name 100.100.100.100;
突然問題が発生した場合は、これらの行を/etc/nginx/nginx.confファイルに直接登録してみてください。 サーバー情報(サーバー{})は、http(http {})ブロック内にある必要があります。
次に、リンクを作成します。
sudo ln -sf /etc/nginx/sites-available/my_app.conf /etc/nginx/sites-enabled/my_app.confそして、nginx'aを再起動します。
sudoサービスnginxの再起動それだけです。 うまく展開できます:)