レガシー統合システムを使用したテスト¶
トピック
このページでは、新しい ansible-test
フレームワークに移植されていない統合テストの実行方法を説明します。
以下の領域は、従来の make tests
コマンドを使用してテストされています。
- Amazon (一部)
- azure
- cloudflare
- cloudscale
- cloudstack
- consul
- exoscale
- gce
- jenkins
- rackspace
テストが ansible-test
フレームワークに移植されると、上記のリストは徐々に少なくなっていきます。
クラウドテストの実行¶
クラウドテストでは、クラウドモジュール (例: ec2_key) が使用されます。 このようなテストは、 「クラウドモジュールを使用するテスト」に比べると、クラウドでテストを実行されることが少なく、 クラウドプロバイダー別にまとめられます。
AWS テストによっては、環境変数を使用するものもあります。AWS 環境変数 (AWS_DEFAULT_PROFILE
、AWS_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 つのリージョンに制限していますが、 どのような場合でもプライマリーの実稼働アカウントでテストを実行すべきではありません。
テストの実行¶
テストは 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 コンソールを検査して、 予期しないリソースが実行していないことを確認することが推奨されます。