レガシー統合システムを使用したテスト

このページでは、新しい ansible-test フレームワークに移植されていない統合テストの実行方法を説明します。

以下の領域は、従来の make tests コマンドを使用してテストされています。

  • Amazon (一部)
  • azure
  • cloudflare
  • cloudscale
  • cloudstack
  • consul
  • exoscale
  • gce
  • jenkins
  • rackspace

テストが ansible-test フレームワークに移植されると、上記のリストは徐々に少なくなっていきます。

クラウドテストの実行

クラウドテストでは、クラウドモジュール (例: ec2_key) が使用されます。 このようなテストは、 「クラウドモジュールを使用するテスト」に比べると、クラウドでテストを実行されることが少なく、 クラウドプロバイダー別にまとめられます。

AWS テストによっては、環境変数を使用するものもあります。AWS 環境変数 (AWS_DEFAULT_PROFILEAWS_SECRET_ACCESS_KEY など) の設定を解除するか、環境変数が credentials.yml で提供される認証情報と一致することを確認して、予想されるアカウントの完全な機能に一貫性のあるテストが実行されるようにすることが推奨されます。プロファイルの作成に関する情報は、「`AWS CLI docs<https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html>`_」を参照してください。

テストのサブセットは、適切な Playbook の #commenting 不要なロール (例: test/integration/amazon.yml ) をコメントアウトして実行できます。

クラウドテストを実行するには、 credentials.yml という名前のファイルでアクセス認証情報を指定する必要があります。credentials.template という名前のサンプル認証情報ファイルは、 構文のヘルプで利用できます。

クラウド認証を提供します:

cp credentials.template credentials.yml
${EDITOR:-vi} credentials.yml

その他の設定

テストを実行するには、 credentials.yml という名前のファイルにアクセス認証情報を指定する必要があります。credentials.template という名前の認証情報ファイルのサンプルが、 構文ヘルプに利用できます。

AWS の IAM ポリシー

AWS アカウントでテストを実行するためには、 Ansible に、 AWS アカウントで設定された特定のポリシーを使用して、専用のユーザや一時的な認証情報に提供できる、かなり広範囲の権限が必要となります。

testing-iam-policy.json.j2

testing-iam-policy.json.j2 ファイルにはポリシーが含まれており、 テストを実行しているユーザーにテストの実行に必要な最低限の権限を付与できます。 これはユーザーを完全に制限するものではないことに注意してください。 ユーザーはアカウント定義を表示するための幅広い権限を持っており、 テストとは関係のないリソース (たとえば、異なる名前の AWS ラムダ) を管理することもできます (主に Amazon ARN 表記の制限のため)。 少なくともポリシーではユーザーを 1 つのリージョンに制限していますが、 どのような場合でもプライマリーの実稼働アカウントでテストを実行すべきではありません。

その他の必要な定義

ポリシーをインストールし、テストを実行中のユーザー ID に付与する以外に、 ラムダロール ansible_integration_tests を作成する必要があります。 これには、ラムダに、基本的な実行権限があります。

テストの実行

テストは Makefile で呼び出されます。

Ansible がまだ利用可能でない場合は、以下の方法でローカルチェックアウトを使用します。

source hacking/env-setup

以下を実行してテストを実行します。

cd test/integration/ # TARGET is the name of the test from the list at the top of this page #make TARGET # e.g. make amazon # To run all cloud tests you can do: make cloud

Warning

クラウドテストにかかる可能性のあるコスト

クラウド統合テストを実行すると、 クラウドリソースが作成され、破棄されます。このようなテストを実行すると、 クラウドアカウントに、関連する追加費用が発生することがあります。作成されたリソースが確実に実行されるように 注意する必要があります。ただし、AWS コンソールを検査して、 予期しないリソースが実行していないことを確認することが推奨されます。