ansible/contrib
milo-minderbinder 77d73808e6 fix setting config with DOCKER_CONFIG_FILE (#23096)
Fixes #23095

Fixed issue preventing a caller from setting a docker
configuration file (e.g. docker.yml) by specifing the
config file path in the `DOCKER_CONFIG_FILE` environment
variable. Previously, the cli argument parser set a default value for
the `--config-file` argument which would prevent ever checking the
environment variable, regardless of whether or not the `--config-file`
argument even specified a valid file.

This commit adds a global `DEFAULT_DOCKER_CONFIG_FILE` variable, which
points to the current default `docker.yml` config in the
contrib/inventory directory. Now, when this script is called from the
command line, the config file passed with the cli `--config-file` arg
will be given the highest precedence; if it is absent, this script will
then check if the `DOCKER_CONFIG_FILE` env var is set, and load the
config file specified if possible. If neither the environment variable
or cli argument are specified, then the script will attempt to parse the
config file `docker.yml` in this script's directory (if present).

If either the `DOCKER_CONFIG_FILE` environment variable or the
`--config-file` argument are given but point to a nonexistant file, then
the script will print an error message and exit with an error code.

It is *not* an error condition if the fallback `docker.yml` does not
exist.
2018-10-30 15:39:32 -04:00
..
inventory
vault
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!