2016-04-13 7 views
0

コミットの変更ごとに、エンティティのチェックアウト、ビルド、テスト、ステージングサーバーまたは本番サーバー)。私たちがAnsibleを調べ始めたので、私はこれらのツールとは独立した役割があると考え始めています。デプロイメント前にコンパイルとテストコードを実行する必要がありますか、コンパイル済みでテスト済みのコードのみをデプロイする必要がありますか?

基本的には、展開前にコードのコンパイルとテストを処理するか、BambooなどのCIサーバーから成果物を取得し、成果物を展開する準備ができていることを信頼する必要がありますか?

答えて

1

私はコンパイルを行うのに頼りにすることを考えているのか分かりません。ちょうどそのための設備があるので、私はむしろCIの内部でそれを行います。テストの種類はテストの種類によって異なります。ユニットテストの場合は、ビルド直後(好ましくはCIの内部)で実行し、ビルドに失敗するかビルドを渡す必要があります。

しかし、これらのテストが統合/機能性のものである場合(実際にサービスが実際に環境内で動作するかどうかを確認する場合)、それらは必ずプレイブックのpost_tasksの一部でなければなりません。デプロイメントを失敗とマークし、それに応じて動作させる必要があります。これはもちろん、サービスが本番トラフィックにさらされる前に安全な方法で行うという考え方を示しています。テストが合格しない場合は、安全に展開できます。

1

Nope氏は、展開前にコードのコンパイルとテストを行う責任はありません。

はい、BambooなどのCIサーバーからアーティファクトを取得し、アーティファクトが展開可能な状態であることを信頼する必要があります。

Ansibleは、クラウドのプロビジョニング、構成管理、アプリケーション展開イントラサービスのオーケストレーション、およびITニーズ他の多くを自動化する根本シンプルなITの自動化エンジンです。

https://www.ansible.com/how-ansible-works

関連する問題