Использование устаревшей системы интеграции для тестирования
На этой странице описано, как запускать интеграционные тесты, которые не были перенесены в новую 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