This commit includes all the changes involved in converting the old Ansible Tower modules from commits in Ansible core into the AWX collection that replaces it. Also includes work needed to integrate it into the AWX processes like tests, docs, and the Makefile. Apply changes from content_collector tool Add integrated module tests operate via run_module fixture add makefile target for them Add flake8 target and fix flake8 errors Update README Make consolidated target for testing modules
AWX Ansible Modules
These modules allow for easy interaction with an AWX or Ansible Tower server in Ansible playbooks.
The previous home for these modules was in https://github.com/ansible/ansible
inside the folder lib/ansible/modules/web_infrastructure/ansible_tower.
Running
To use these modules, the "old" tower-cli needs to be installed in the virtual environment where the modules run. You can install it from either:
To use these modules in AWX, you should create a custom virtual environment
to install the requirement into. NOTE: you will also probably still need
to set the job template extra_vars to include ansible_python_interpreter
to be the python in that virtual environment.
Running Tests
Tests to verify compatibility with the most recent AWX code exist
in awx_modules/test/awx. These tests require that python packages
are available for all of awx, ansible, tower_cli, and the modules
themselves.
The target make prepare_modules_venv will prepare some requirements
in the awx_modules_test_venv folder so that make test_modules can
be ran to actually run the tests. A single test can be ran via:
make test_modules MODULE_TEST_DIRS=awx_modules/test/awx/test_organization.py
Building
To build, you should not be in the AWX virtual environment. This should work on any machine that has a sufficiently recent version of Ansible installed.
cd awx_modules
ansible-galaxy build
This will leave a tar file in the awx_modules directory.
This process may be amended in the future to template components of galaxy.yml
from values (such as version) taken from AWX.