diff --git a/inventory_provider/tasks/config.py b/inventory_provider/tasks/config.py
index 2d955ea63a4bd678b87014d3375f3459922638ca..70e3a90e38deeceeb0af2c4884f25c7ac8db5295 100644
--- a/inventory_provider/tasks/config.py
+++ b/inventory_provider/tasks/config.py
@@ -1,36 +1,42 @@
 import logging
 import os
-
+from inventory_provider import config
 import redis.sentinel
 
 logger = logging.getLogger(__name__)
 
-broker_hostname = os.getenv('BROKER_HOSTNAME')
-assert broker_hostname is not None
-broker_port = int(os.getenv('BROKER_PORT'))
-broker_db_index = int(os.getenv('CELERY_DB_INDEX'))
+assert os.path.isfile(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']), (
+        'config file %r not found' %
+        os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
 
-broker_scheme = os.getenv('BROKER_SCHEME', 'redis')
-assert broker_scheme in ('redis', 'sentinel'), 'unsupported broker scheme'
+with open(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']) as f:
+    logging.info(
+        'loading config from: %r'
+        % os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
+    inventory_provider_config = config.load(f)
 
-if broker_scheme == 'sentinel':
-    master_name = os.getenv('SENTINEL_MASTER_NAME')
-    assert master_name is not None
+if 'sentinel' in inventory_provider_config:
+    params = inventory_provider_config['sentinel']
     sentinel = redis.sentinel.Sentinel(
-        [(broker_hostname, broker_port)],
-        socket_timeout=0.1)
-    master = sentinel.discover_master(master_name)
+        [(params['hostname'], int(params['port']))],
+         socket_timeout=0.5)
+    master = sentinel.discover_master(params['name'])
     assert master
-    broker_hostname = master[0]
-    broker_port = master[1]
+    _broker_hostname = master[0]
+    _broker_port = master[1]
+else:
+    params = inventory_provider_config['redis']
+    _broker_hostname = params['hostname']
+    _broker_port = int(params['port'])
+
+_broker_db_index = 1  # TODO: this should be a config param
 
-if ':' in broker_hostname:
+if ':' in _broker_hostname:
     # assume this means hostname is an ipv6 address
-    broker_hostname = '[%s]' % broker_hostname
+    _broker_hostname = '[%s]' % _broker_hostname
 
-broker_url = 'redis://%s:%d/%d' % (
-    broker_hostname, broker_port, broker_db_index)
-result_backend = broker_url
+broker_url = result_backend ='redis://%s:%d/%d' % (
+    _broker_hostname, _broker_port, _broker_db_index)
 
 logger.debug('broker_url: %r' % broker_url)