travis-ci.orgにコードを送信した後、私のgithubプロジェクトで次のエラーが発生します。
Deploying application
on master ✓
domain: <mydomain> ✓
site path: /srv/http/webapps/Main ✓
zipping _site to site.zip...
decrypting ssh key...
bad magic number
Script failed with status 1
failed to deploy
私は引き継ぎ、維持しようとしたプロジェクトを作者によって殺されたのでフォークし、それは恥ずかしいことだと思いました。プロジェクトはtravisを使用してサイトを更新します。私はTravisに初めて触れ、暗号化を迂回したことがなく、実際にウェブサイトを構築したこともないので、私が何をしているのか全く分かりません。
私はこの目的のために3台のコンピュータを使います。私自身の開発コンピュータとそれをホストするサイト。
私の考えでは、関連ファイルは次.travis.yml
のとおりです。.deploy/deploy.sh
.deploy/deploy_key.enc
私がしたことは次のとおりです。
sudo ssh root@UBS-main
cd /srv/http/webapps/Main
nano .travis.yml (removing env.global.secure line)
ssh-keygen -t rsa -b 4096 -C '[email protected]' -f ./deploy_key
travis encrypt-file deploy_key --add
travis encrypt MY_SECRET_ENV=<pass> --add env.global
rm deploy_key
scp /srv/http/webapps/Main/deploy_key.enc folatt@UBS-Dev:~/workspace/UBS/UBS-site/deploy/deploy_key.enc
scp /srv/http/webapps/Main/.travis.yml folatt@UBS-Dev:~/workspace/UBS/UBS-site/.travis.yml
これは私です
- SSHキーを生成する必要があります
- travis を使用して鍵を暗号化します。
- 一種の秘密のパスワードが必要ですか? Travisを再利用してください。
- 暗号化されていない鍵を削除します。
- キーとトラビスファイルを開発マシンストアに移動します。
- 次に、変更をgithubにコミットします。
.travis.yml
language: ruby
sudo: false
rvm:
- 2.2
env:
global:
- domain: <mydomain> (changed)
- site_path: /srv/http/webapps/Main (changed)
- secure: <bunch of encrypted code> (changed)
before_script:
- npm install -g bower
- bower install
script: bundle exec jekyll build
deploy:
provider: script
skip_cleanup: true
script: "./deploy/deploy.sh"
on:
branch: master
./deplay/deploy.sh
#!/usr/bin/env bash
set -e
if [ ! "env:$TRAVIS_BRANCH" == "env:master" ]; then
echo not on master, not deploying
exit 0
fi
echo "on master ✓"
if [ -z "$domain" ]; then
echo "domain" variable not set
exit 1
fi
echo "domain: $domain ✓"
if [ -z "$site_path" ]; then
echo "site_path" variable not set
exit 1
fi
echo "site path: $site_path ✓"
echo "zipping _site to site.zip..."
(cd _site/ && zip -r - .) > site.zip 2>/dev/null
echo "decrypting ssh key..."
openssl aes-256-cbc -k "$deploy_key_pass" -in deploy/deploy_key.enc -out deploy/deploy_key -d
chmod 400 deploy/deploy_key
echo "setting StrictHostKeyChecking for all domains..."
printf "Host *\n StrictHostKeyChecking no\n" > ~/.ssh/config
chmod 400 ~/.ssh/config
echo "copying site to $domain..."
scp -i deploy/deploy_key site.zip deploy@$domain:~/site.zip
ssh -i deploy/deploy_key deploy@$domain 'rm -rf "'$site_path'"/* && unzip ~/site.zip -d "'$site_path'" && rm ~/site.zip'
答え1
鍵を別々に解読しなければならず、誤ったマジックナンバーが消える問題を解決しました。
openssl aes-256-cbc -K $encrypted_<...>_key -iv $encrypted_<...>_iv -in deploy_rsa.enc -out /tmp/deploy_rsa -d
ここで合計は$encrypted_<...>_key
によって$encrypted_<...>_iv
生成されます
travis encrypt-file deploy_rsa --add
。