Will Thames
51a9875cfd
Handle missing docker-py better (#27540)
* Update docker inventory to use APIClient
docker-py has been updated, and the `Client` class no longer
exists. We use the new `APIClient` class.
To provide graceful failure when docker-py is not installed,
we need to create a dummy `Client` class so that the inventory
script will get as far as displaying a useful error message
Before
```
$ contrib/inventory/docker.py --pretty
Traceback (most recent call last):
File "contrib/inventory/docker.py", line 418, in <module>
class AnsibleDockerClient(Client):
NameError: name 'Client' is not defined
```
After
```
$ contrib/inventory/docker.py --pretty
Failed to import docker-py. Try `pip install docker-py` - cannot import name Client
```
* docker inventory configuration file location
Allow docker.yml to live next to docker.py, as well as in the
current directory
(cherry picked from commit
|
7 years ago | |
---|---|---|
.. | ||
inventory | Handle missing docker-py better (#27540) | 7 years ago |
vault | Support multiple vault passwords in keyring script | 8 years ago |
README.md | updated readme with vault and 2.4 inv plugins (#26361) | 7 years ago |
README.md
contrib
Files here provide an extension mechanism for Ansible similar to plugins. They are not maintained by the Ansible core team or installed with Ansible.
inventory
Before 2.4 introduced inventory plugins, inventory scripts were the only way to provide sources that were not built into Ansible. Inventory scripts allow you to store your hosts, groups, and variables in any way you like.
Starting with Ansible version 2.4, they are enabled via the 'script' inventory plugin. Examples of use include discovering inventory from EC2 or pulling it from Cobbler. These could also be used to interface with LDAP or the database.
chmod +x
an inventory plugin and either name it /etc/ansible/hosts
or use ansible -i /path/to/inventory/script
. You might also need to copy a configuration file with the same name and/or set environment variables. The scripts or configuration files can provide more details.
vault
If the file passed to --vault-password-file
has the executable bit set, Ansible will execute it and use the stdout of that execution as 'the secret'.
Vault scripts provided here use this facility to retrieve the vault secret from a number of sources.
contributions welcome
Send in pull requests to add scripts of your own. The sky is the limit!