Spec-Zone.ru › Ansible 2.4

Использование устаревшей системы интеграции для тестирования

  • Запуск облачных тестов
  • Другие настройки
  • Политики IAM для AWS
    • testing-iam-policy.json.j2
    • Необходимые дополнительные определения
  • Запуск тестов

На этой странице описано, как запускать интеграционные тесты, которые не были перенесены в новую ansible-test структуру.

Следующие области по-прежнему тестируются с помощью команды legacy 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 для получения информации о создании профиля.

Подмножества тестов могут выполняться с помощью #commenting, исключая ненужные роли в соответствующем плане, например, test/integration/amazon.yml.

Для запуска облачных тестов необходимо предоставить учетные данные доступа в файле с именем credentials.yml. Доступен пример файла учетных данных с именем credentials.template для справки по синтаксису.

Предоставьте данные об облачных учетных записях:

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

Другие настройки

Для запуска некоторых тестов необходимо предоставить учетные данные доступа в файле с именем credentials.yml. Доступен пример файла учетных данных с именем credentials.template для справки по синтаксису.

Политики IAM для AWS

Для запуска тестов в учетной записи AWS Ansible требуется достаточно широкие полномочия, которые могут быть предоставлены выделенному пользователю или временным учетным данным с помощью конкретной политики, настроенной в учетной записи AWS.

testing-iam-policy.json.j2

Файл testing-iam-policy.json.j2 содержит политику, которая может быть предоставлена пользователю, выполняющему тесты, для предоставления минимальных необходимых прав для запуска тестов. Обратите внимание, что это не полностью ограничивает пользователя; Пользователь имеет широкие привилегии для просмотра определений учетной записи и также может управлять некоторыми ресурсами, не относящимися к тестированию (например, AWS-лямбдами с различными именами), в основном из-за ограничений обозначений Amazon ARN. По крайней мере, политика ограничивает пользователя одной областью, однако тесты в любом случае не следует запускать в основной производственной учетной записи.

Необходимые дополнительные определения

Помимо установки политики и предоставления ее идентичности пользователя, выполняющего тесты, должна быть создана роль лямбда 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

Предупреждение

Возможные затраты на выполнение облачных тестов

Запуск облачных интеграционных тестов приведет к созданию и уничтожению облачных ресурсов. Запуск этих тестов может привести к дополнительным расходам, связанным с вашей облачной учетной записью. Прилагаются усилия для обеспечения удаления созданных ресурсов. Однако рекомендуется проверить ваш AWS-консоль, чтобы убедиться, что не выполняются какие-либо непредвиденные ресурсы.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/dev_guide/testing_integration_legacy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API