awx/awx_modules
AlanCoding 2f0f692f4a
Integrate Ansible core tower modules content into AWX
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
2019-09-27 14:29:03 -04:00
..

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.