日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > capistrano3.5環境搭建

capistrano3.5環境搭建

來源:程序員人生   發布時間:2016-07-06 08:54:57 閱讀次數:3311次
官方文檔:

http://capistranorb.com/documentation/getting-started/installation/

簡介:

capistrano是1個自動向遠程服務器部署代碼的工具,使用起來非常的方便。

它可以將你的代碼自動從git或svn上pull出來指定分支的代碼到你的部署目錄下,同時保護1個current軟鏈接,指定最新的版本。

同時它出會將最近(默許5次)幾次的版本寄存在release1, release2,releaseN目錄下。

當你需要更新部署時,只需要1個條命令:

cap development deploy

便可將新代碼pull下來,也能夠通過1個命令:

cap deploy:rollback

實現將代碼回滾到上1次的版本,方便我們切換不同版本和部署。

最NB的話,它默許通過SSH鏈接所有的遠程服務器,生產環境或開發環境或DB環境,將所有代碼同步到所有環境下,真實的實現1鍵部署多個服務器

本教程使用的git為coding.net的免費git庫,實現ssh遠程部署到development和production環境下。

1. SSH自動登錄remote server

1. 生成ssh密鑰

1般登錄服務器都需要用戶名和密碼,通過SSH的安全策略實現無用戶名和密碼的遠程訪問服務器,這時候你需要生成ssh public Key。

通過下面的命令生成1對rsa Key。

me@localhost $ ssh-keygen -t rsa -C 'me@my_email_address.com'
它會在你在~/.ssh/目錄下生成id_rsa和id_rsa.pub,其中id_rsa為私鑰,id_rsa.pub為公鑰,你將公鑰拷貝到遠程服務器上的~/.ssh/目錄下,便可實現對遠程服務器的免用戶名密碼登錄。

[me@localhost ~]# ls ~/.ssh/
id_rsa  id_rsa.pub  known_hosts


2. 將私鑰加載到ssh授權代理中

me@localhost $ ssh-add Identity added: /Users/me/.ssh/id_rsa (/Users/me/.ssh/id_rsa)

通過上面的命令將私鑰添加到ssh授權代理中,可以通過下面的命令查看下,是不是已加載成功。

如果上面命令出錯:

履行:

eval `ssh-agent -s`      注意這里是反引號

me@localhost $ ssh-add -l 2048 af:ce:7e:c5:93:18:39:ff:54:20:7a:2d:ec:05:7c:a5 /Users/me/.ssh/id_rsa (RSA)

注意:如果ssh-add失敗,先履行ssh-agent bash,再履行上述命令

小技能:

ssh-add在每次重啟后都要重新履行1下,為了方便不用每次都履行它,可以寫個配置文件:

vim ~/.ssh/config


##################
# For Coding.net #
##################
Host  coding.net
        #User depoly
        Hostname YOUR_SERVER
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa


3. 遠程服務器添加deploy用戶

所有的遠程服務器都要創建1個deploy用戶,并且設置Lock為無密碼,讓他人可以不設置密碼登錄。

root@remote $ adduser deploy root@remote $ passwd -l deploy
The second line locks the user, it changes the user’s password to an untypable string, guaranteeing that the user has no password which can be used to log in.

4.設置遠程服務器授權的公鑰

將上面第1步生成的id_rsa.pub公鑰文件拷貝到所有需要部署的遠程服務器(再次確認是不是已創建了deploy用戶),可使用scp,也能夠直接打開拷貝內容。

將id_rsa.pub里的內容拷貝到遠程服務器的~/.ssh/目錄下,并且命名為:authorized_keys

示例使用拷貝文本方式:

root@remote $ su - deploy deploy@remote $ cd ~ deploy@remote $ mkdir .ssh deploy@remote $ echo "ssh-rsa jccXJ/JRfGxnkh/8iL........dbfCH/9cDiKa0Dw8XGAo01mU/w== /Users/me/.ssh/id_rsa" >> .ssh/authorized_keys deploy@remote $ chmod 700 .ssh deploy@remote $ chmod 600 .ssh/authorized_keys
注意:

  1定要將公鑰放到deploy用戶的HOME目錄下

  1定要給公鑰文件指定權限

  1定要將公鑰命名為:authorized_keys

5. 測試無用戶名密碼登錄

ssh  deploy@REMOTE_SERVER_IP


2. 安裝capistrano環境

完全依照官方手冊說明來做。

$ gem install capistrano
$ git clone https://github.com/capistrano/capistrano.git $ cd capistrano $ gem build *.gemspec $ gem install *.gem

1. 初始化cap環境

  1. $ sudo cap install
  2. mkdir -p config/deploy
  3. create config/deploy.rb
  4. create config/deploy/staging.rb
  5. create config/deploy/production.rb
  6. mkdir -p lib/capistrano/tasks
  7. Capified
  8. $ tree
  9. .
  10. ├── Capfile
  11. ├── config
  12.    ├── deploy
  13.       ├── production.rb
  14.       └── staging.rb
  15.    └── deploy.rb
  16. └── lib
  17. └── capistrano
  18. └── tasks


2. 配置deploy.rb

deploy.rb為主配置文件。所有子配置文件可以重寫該配置信息。

我的配置以下:

set :application, 'YOUR_APP_NAME'
set :repo_url, 'git@git.coding.net:USER_NAME/PROJECT.git'


3. 配置development.rb和production.rb

在config/deploy/拷貝development.rb文件

cp production.rb development.rb

development.rb內容以下:

server 'DEV_SERVER_IP',   #開發環境服務器地址
        user: 'deploy',                #開發環境服務器用戶名,上面已創建
        roles: %w{web app},
        ssh_options: {                # ssh配置,用來無用戶名和密碼登錄遠程服務器,具體配置參數見:http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
                user: 'deploy', 
                keys: %w(/root/.ssh/id_rsa),   # ssh私鑰所在目錄
                port:22,                  # 遠程服務器ssh開放端口
                forward_agent: true,    # 開啟代理轉發,參考:http://unixwiz.net/techtips/ssh-agent-forwarding.html#fwd
                auth_methods: %w(publickey password)
                # password: 'please use keys'
        }

production.rb內容參考development.rb。


4. 開始部署吧

在你的利用目錄下履行:

cap development deploy

你可以看到以下履行結果以下:

[root@localhost ~]# cap development deploy 00:00 git:wrapper 01 mkdir -p /tmp/PROJECT/ ? 01 deploy@YOUR_SERVER 0.232s Uploading /tmp/PROJECT/git-ssh.sh 100.0% 02 chmod +rx /tmp/PROJECT/git-ssh.sh ? 02 deploy@YOUR_SERVER 0.135s 00:00 git:check 01 git ls-remote --heads git@git.coding.net:USER_NAME/PROJECT.git 01 8fa0414597075b5918ccb137222fc00b8c429a28 refs/heads/develop 01 d32023f5853a1b3e11bdad00333fa0389916b75a refs/heads/master ? 01 deploy@YOUR_SERVER 0.511s 00:01 deploy:check:directories 01 mkdir -p /var/www/PROJECT/shared /var/www/PROJECT/releases ? 01 deploy@YOUR_SERVER 0.136s 00:01 git:clone 01 git clone --mirror git@git.coding.net:USER_NAME/PROJECT.git /var/www/PROJECT/repo 01 Cloning into bare repository '/var/www/PROJECT/repo'... ? 01 deploy@YOUR_SERVER 8.670s 00:10 git:update 01 git remote update --prune 01 Fetching origin ? 01 deploy@YOUR_SERVER 0.329s 00:10 git:create_release 01 mkdir -p /var/www/PROJECT/releases/20160628134729 ? 01 deploy@YOUR_SERVER 0.157s 02 git archive master | tar -x -f - -C /var/www/PROJECT/releases/20160628134729 ? 02 deploy@YOUR_SERVER 1.889s 00:13 git:set_current_revision 01 echo "d32023f5853a1b3e11b33333efa0389916b75a" >> REVISION ? 01 deploy@YOUR_SERVER 0.161s 00:13 deploy:symlink:release 01 ln -s /var/www/PROJECT/releases/20160628134729 /var/www/PROJECT/releases/current ? 01 deploy@YOUR_SERVER 0.137s 02 mv /var/www/PROJECT/releases/current /var/www/PROJECT ? 02 deploy@YOUR_SERVER 0.138s 00:14 deploy:log_revision 01 echo "Branch master (at d32023f5853a1b3e11bdad002aefa449916b75a) deployed as release 20160628134729 by root" >> /var/www/YOUR… ? 01 deploy@YOUR_SERVER 0.157s

1些坑:

默許cap會將代碼部署到 /var/www目錄下,1定要確保有deploy用戶有對該目錄的讀寫權限

建議使用 id_rsa.pub authorized_keys 的方式進行免密碼登陸

首次部署, 需要履行 cap [environment] deploy:check 命令, 把 linked_files 在服務器上創建



Just enjoy it!!



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品永久免费 | 成人免费福利 | 精品香蕉99久久久久网站 | 国产污视频在线 | 99精品小视频 | 久久精品国产一区二区三区不卡 | 日本中文字幕在线观看 | 国产精品一区二区三区四区视频 | 91看片王| 久久免费国产 | 国产资源在线观看 | 国产精品久久久久久吹潮 | 午夜午夜精品一区二区三区文 | 久久国产精品无码网站 | 久久久国产精品一区二区三区 | 国产在线精品一区二区 | 日本综合久久 | 国产精品免费在线 | 狠狠久久 | 欧美日韩一区精品 | 久久在线看 | 成人免费自拍视频 | 偷拍视频一区二区 | 97精品免费视频 | 欧美一区二区三区在线看 | 久久久久一区 | 成人毛片免费看 | 欧美一区二| 久久精品成人一区二区三区蜜臀 | 国产一区二区在线观看视频 | 成人午夜又粗又硬又大 | 91久久精品一区二区二区 | 欧美成人r级一区二区三区 欧美午夜精品一区 | 国产一级在线观看 | 欧美成人自拍 | 色综合九九 | 欧美群妇大交群中文字幕 | 日韩视频在线一区二区 | 亚洲性综合 | 成人一区二区三区四区 | 国产精品一区二区免费 |