自动登录 服务器部署

ssh不输入密码,自动登陆

1.在本机 ~/.ssh 下新建config ,添加服务器ip,以及host简称,格式如下:

Host emall
  HostName 139.129.128.51
  Port 22
  User root

保存后 ssh emall就相当于 ssh root@139.129.128.51

2.在本机终端执行命令

ssh-keygen -t rsa

一路回车执行,会生成key。private_key会保存在 ~/.ssh/id_rsa ,public_key会保存在 ~/.ssh/id_rsa.pub下

3.将本地的public_key复制到远程服务器上实现免登陆

ssh-copy-id -i ~/.ssh/id_rsa.pub root@139.129.128.51

4.完成之后即可通过 ssh emall 来登陆服务器

ruby passenger以及nginx配置等,可参考文章

在 Aliyun 上快速部署 Ruby on Rails

在服务器上添加自动部署脚本

1.在服务器新建脚本文件 /emall.sh

#!/bin/bash
cd /alidata1/project

git pull origin master

source /etc/profile

bundle

bundle exec rake assets:precompile RAILS_ENV=production

bundle exec rake db:migrate RAILS_ENV=production

god restart nginx #通过god来重启nginx,如果不用god,可以通过sudo nginx -s reload

2.在本地新建脚本 emall_restart.sh

#!/bin/bash
echo '服务器更新开始'
ssh emall '/bin/bash /alidata1/emall.sh'
echo '服务器更新结束'

3.需要重新拉代码更新服务器的时候执行

/bin/bash  /home/tlt/work/shell/emall_restart.sh

即可重新部署服务器上的项目