本博客是用的hexo,deploy 是配置的 rsync,由於公司用的 windows 上沒有 rsync, 因此想到 push 後經過 travis-ci 來自動 deploy,接下來就開工了...git
使用 github 賬號登陸 https://travis-ci.org/, 將博客項目(yangg/blog)開啓,而後在項目下新建 .travis.yml
配置文件,當 push 時 travis 自動讀取這個配置文件來完成 hexo 的 generate 和 deploy,可是 deploy 須要服務器的 ssh 寫權限,因此就須要將 ssh key 上傳到項目中,可是由於 github 的項目是公開的,這樣就沒有安全可言了,好在 travis 有提供加密功能,只要將 ssh key 加密放到項目中,travis 運行時再解密生成 key,這樣安全的問題就解決了。
<!-- more -->github
ssh-keygen -f travis # 生成 travis, travis.pub travis.pub >> ~/.ssh/authorized_keys # 將公鑰添加到服務器
travis 加密命令是要經過 gem 安裝的,請確保 ruby 已經安裝。
gem 由於衆所周知的緣由,在國內不太好訪問,建議在 vps 上博客的項目目錄裏(沒有就 clone一個,由於下面的 --add 會修改 .travis.yml )安裝執行下面的命令windows
gem install travis travis login # github 賬號和密碼,token 我沒登陸上 travis encrypt-file travis --add # 加密 travis 私鑰,--add 將解密命令添加到 .travis.yml
將 vps 上生成的 travis.enc 和 修改過的 .travis.yml 文件複製到本地的項目目錄裏。--add
修改的內容安全
before_install: - openssl aes-256-cbc -K $encrypted_6094e4f462c1_key -iv $encrypted_6094e4f462c1_iv -in .travis/travis.enc -out ~/.ssh/id_rsa -d
這樣加密的問題就搞定了。ruby
由於 travis-ci 默認只添加了 github.com
, gist.github.com
和 ssh.github.com
爲 known_hosts,rsync 執行時會提示是否添加,可是 travis-ci 裏不能輸入確認,因此須要將自動服務器的域名和商品添加到 known_hostsbash
addons: ssh_known_hosts: uedsky.com:1223
原文地址:https://uedsky.com/2016-06/travis-deploy/
獲取最佳閱讀體驗並參與討論,請訪問原文加密