ubuntu服务器升级-cap升级


升级后需要注意的几点
puma 5.3.2
代码:
1. Capfile
# deploy后 自动启动puma,无需手动写task来启动puma:start等
require 'capistrano/puma'
install_plugin Capistrano::Puma
install_plugin Capistrano::Puma::Systemd
install_plugin Capistrano::Puma::Nginx


cap puma:systemd:config    # 会生成一个systemd unit文件,并上传到服务器的/etc/systemd/system/文件夹下面。
cap puma:systemd:enable    # Enable上一步上传的service

然后再执行 cap production puma:restart,这个命令会在服务器上面会执行sudo systemctl restart puma这时候提示报错了,说 systemd 的 service unit 里面,ExecStart 的命令格式有问题。我查看了一下,发现生成的 unit 文件里面,ExecStart 这一行的内容是

ExecStart=~/.rvm/bin/rvm default do bundle exec puma -C /your/deploy/path/geekweibo/shared/puma.rb



2.服务器配置

下面配置更加自己的情况修改
$ sudo vi /etc/sudoers

%deploy ALL=NOPASSWD:/bin/systemctl restart sidekiq
%deploy ALL=NOPASSWD:/bin/systemctl restart puma×××



Let’s create puma.service file: 如果你修改了这个启动服务文件,记得要先运行sudo systemctl  daemon-reload 和再启动或重启。

$ sudo vi /etc/systemd/system/puma.service 

[Unit]
Description=Puma Server
After=network.target

[Service]
Type=simple
User=deploy
Environment=RAILS_ENV=production
EnvironmentFile=/etc/environment
WorkingDirectory=/home/deploy/apps/app/current/
ExecStart=/bin/bash -lc '~/.rvm/bin/rvm ruby-3.0.0@jujube do bundle exec puma -C /mwdata/www/jujube_production/current/config/deploy/puma/production_config.rb'
#ExecStart=/home/deploy/.rbenv/bin/rbenv exec bundle exec puma -C /home/deploy/apps/app/shared/puma×××.rb
ExecStop=/home/deploy/.rbenv/bin/rbenv exec bundle exec pumactl -F /home/deploy/apps/app/shared/puma×××.rb stop
ExecReload=/home/deploy/.rbenv/bin/rbenv exec bundle exec pumactl -F /home/deploy/apps/app/shared/puma×××.rb phased-restart
Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target




阅读量: 477
发布于:
修改于: