Rename to collection, add license, galaxy build

This commit is contained in:
AlanCoding
2019-09-17 15:48:00 -04:00
parent 2f0f692f4a
commit 35afa37417
6 changed files with 741 additions and 43 deletions

View File

@@ -1,52 +1,58 @@
# AWX Ansible Modules
# AWX Ansible Collection
These modules allow for easy interaction with an AWX or Ansible Tower server
in Ansible playbooks.
This Ansible collection 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`.
The previous home for this collection was in https://github.com/ansible/ansible
inside the folder `lib/ansible/modules/web_infrastructure/ansible_tower`
as well as other places for the inventory plugin, module utils, and
doc fragment.
## Running
To use these modules, the "old" tower-cli needs to be installed
in the virtual environment where the modules run.
To use this collection, the "old" tower-cli needs to be installed
in the virtual environment where the collection runs.
You can install it from either:
- https://github.com/ansible/tower-cli/
- https://pypi.org/project/ansible-tower-cli/
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 use this collection in AWX, you should create a custom virtual environment
to install the requirement into. NOTE: running locally, you will also 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
Tests to verify compatibility with the most recent AWX code are
in `awx_modules/test/awx`. These tests require that python packages
are available for all of `awx`, `ansible`, `tower_cli`, and the modules
themselves.
are available for all of `awx`, `ansible`, `tower_cli`, and the collection
itself.
The target `make prepare_modules_venv` will prepare some requirements
in the `awx_modules_test_venv` folder so that `make test_modules` can
The target `make prepare_collection_venv` will prepare some requirements
in the `awx_collection_test_venv` folder so that `make test_collection` 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
make test_collection 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.
The build target `make build_collection` will template out a `galaxy.yml` file
with automatic detection of the current AWX version. Then it builds the
collection with the `ansible-galaxy` CLI.
```
cd awx_modules
ansible-galaxy build
```
## Roadmap
This will leave a tar file in the awx_modules directory.
Major future development items on the agenda include:
This process may be amended in the future to template components of `galaxy.yml`
from values (such as version) taken from AWX.
- Removing tower-cli as a dependency
- Renaming the modules, for example `tower_organization` to just `organization`
and giving a deprecation period for the switch
## Licensing
All content in this folder is licensed under the same license as Ansible,
which is the same as license that applied before the split into an
independent collection.