diff options
-rw-r--r-- | README.md | 8 | ||||
-rwxr-xr-x | foreman_ansible_inventory.py | 13 |
2 files changed, 16 insertions, 5 deletions
@@ -3,8 +3,12 @@ foreman_ansible_inventory This script can be used as an ansible dynamic inventory[1]. The connection parameters are set up via a configuration -file *foreman.ini* that resides in the same directory as the inventory -script. +file *foreman.ini*. *foreman.ini* is found using the following +order of discovery. + + * `/etc/ansible/foreman.ini` + * Current directory of your inventory script. + * `FOREMAN_INI_PATH` environment variable. ## Variables and Parameters diff --git a/foreman_ansible_inventory.py b/foreman_ansible_inventory.py index e2a53c3..bece7c7 100755 --- a/foreman_ansible_inventory.py +++ b/foreman_ansible_inventory.py @@ -87,9 +87,16 @@ class ForemanInventory(object): """ Reads the settings from the foreman.ini file """ config = ConfigParser.SafeConfigParser() - config.read( - ["/etc/ansible/foreman.ini", - os.path.dirname(os.path.realpath(__file__)) + '/foreman.ini']) + config_paths = [ + "/etc/ansible/foreman.ini", + os.path.dirname(os.path.realpath(__file__)) + '/foreman.ini', + ] + + env_value = os.environ.get('FOREMAN_INI_PATH') + if env_value is not None: + config_paths.append(os.path.expanduser(os.path.expandvars(env_value))) + + config.read(config_paths) # Foreman API related self.foreman_url = config.get('foreman', 'url') |