2016-06-22 11 views
1

私のテストを成功させるために私のアプリをAmazon ec2(Ubuntuインスタンス)にデプロイしたい。TravisからAmazon EC2にアプリを展開する方法はありますか?

  1. 1)プロジェクトとtravis.ymlもあるgit hubリポジトリがあります。

    2)Travisは自分のプロジェクトをチェックして成功することができます。

    3-)、それが成功すると、シェルコマンドは、アマゾンのEC2に私のアプリを展開する必要があります。(ステップを混乱)

私はこれらのことを学びましたが、私はトラヴィスに私が知っている に何もできません.ymlファイルは次のようになります:
私はいくつかの答えを知っていますが、私は解決できませんでした。


..

after_success: 

    curl --ftp-create-dirs -T uploadfilename -u $FTP_USER:$FTP_PASSWORD ftp://sitename.com/directory/myfile 


...このソリューションで

、私は私はそれを知っていれば、それは使用してデータを転送することが可能である、私のFTP_USERとパスワードを見つけることができませんscp

そして、他の解決策がある:(PEMファイルを使用して)

after_success: 

    scp -i "[pemFileName].pem" [A File] [hostname]@ec2-02-50-258-231.eu-central-1.compute.amazonaws.com:~/. 

「after_success」の後に書かれたコードは、端末から取り組んでいるが、ここでの問題は、私はトラヴィスに私のPEMファイルをアップロードすることはできませんです。

簡単に問題があります:私のテストをtravisで成功させるにはどうすれば私のアプリをAmazon EC2にデプロイできますか?(セキュリティのために)pemファイルをgithubにプッシュしたくありません。

答えて

1

Travisには、gitリポジトリに格納されているファイルを暗号化/復号化する機能があります。 scpに必要な秘密鍵の暗号化されたバージョンをEC2インスタンスに保存できます。

https://docs.travis-ci.com/user/encrypting-files/を参照してください。

私の場合、適切な条件が満たされていれば、(1)Travisの指示に従ってファイルを復号化するBashスクリプトを使用します。 (2)scpは、復号化された.pemキーを使用してEC2インスタンスにビルドオーバーします。

scpコマンドには、StrictHostKeyCheckingを処理するための何らかの方法が組み込まれている必要があります。これは、それを完全に無効になります。

scp -i [path/to/id/file] -o StringHostKeyChecking=no [source] [destination]

をより安全なルートがホストキーのフィンガープリントを取得する(例えば、ssh-keyscan [host])とscpコマンドの一部として使用するのですが:

scp -i [path/to/id/file] -o UserKnownHostsFile=path/to/custom/known_hosts [source] [destination]

関連する問題