2016-04-05 5 views
5

GitLabリポジトリを使用しているアプリケーションをビルドしています。 Amazon AWS EC2インスタンスのテストサーバーへのコードの手動展開が面倒です。コードをコミットするときにテストインスタンスに反映されるように、デプロイメントプロセスを自動化する予定です。GitラボからAWS EC2インスタンスへのコード配布を自動化

私の知る通りサービスを利用してGitHubからコードを取得することができます。しかしコード展開サービスはGitLabリポジトリをサポートしていません。 GitLabを使用してコード展開プロセスをAWS Ec2インスタンスに自動化する方法はありますか。またはこれを実現するシェルスクリプトの可能性はありますか?親切に私を教育してください。あなたがAWS CodeDeployでこれを達成できる

+0

JenkinsやTeam CityのようなCIサーバを使用してみましたか?コミット時にコードをビルドし、スクリプトを実行して展開を行うことができます。 –

+0

こんにちはマーク、 あなたの提案の後、コードの自動展開を開始するシェルスクリプトを作成するのに必要なものを使用して、これらのCIサーバーをチェックします。したがって、jenkins/teamcityは私たちのスクリプトを使って展開を行いますか?私の理解は正しいのですか? –

+0

はい、デプロイスクリプトを起動します。または、AWSコードデプロイを起動できます。 –

答えて

6

一つの方法は、Gitlab-CIと一緒にS3のオプションを使用することです:プロジェクトのセットアップ方法に応じてhttp://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-w.html

、配布郵便番号を生成する可能性を有することができます( Gradleはこれをアプリケーションプラグインを通じて提供します)。プロジェクトでそのような機能が提供されていない場合は、手動で「配布」ファイルを生成する必要があります。

Gitlabはgitlab-ci.ymlを使用してコンテナにダウンロードし、必要なアップロードコマンドを実行して生成されたzipファイルをS3コンテナに配置して、AWSの指示に従ってトリガーします配備

before_script: 
    - apt-get update --quiet --yes 
    - apt-get --quiet install --yes python 
    - pip install -U pip 
    - pip install awscli 

S3でCodeDeployを使用する方法のAWSのチュートリアルが非常に詳細であるので、私はコンテンツを再生しようとしてスキップします:ここで

は、あなたのbrefore-scriptgitlab-ci.ymlファイルのように見えることができるものの一例ですここに。

あなたは現在、手動で実行している実際の展開コマンドとアクションに関しては、AWS CodeDeployは、アプリケーションのイベントフックに応じて、アプリスペックファイルで定義されたスクリプトを使用して特定のアクションを実行する機能を提供します。

これは役に立ちます。

+0

それは助けます。ありがとう。 AWSのようなプラットフォームとどれだけ深く統合されているかを見るのは恐ろしいことです。 – vira

関連する問題