diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..221b42bd38cab0206630c44cb6e6fa03b16868e2
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,24 @@
+[metadata]
+name = ansible-freeipa
+summary = Ansible roles for FreeIPA
+description-file =
+    README.md
+home-page = https://github.com/freeipa/ansible-freeipa
+classifier =
+    Intended Audience :: Developers
+    Intended Audience :: System Administrators
+    Operating System :: POSIX :: Linux
+
+[pbr]
+warnerrors = True
+
+[wheel]
+universal = 1
+
+[files]
+data_files =
+    /usr/share/ansible/roles/ipaclient = roles/ipaclient/*
+    /usr/share/ansible/roles/ipaconf = roles/ipaconf/*
+    /usr/share/ansible/roles/ipaserver = roles/ipaserver/*
+    /usr/share/ansible/roles/krb5 = roles/krb5/*
+    /usr/share/ansible/roles/sssd = roles/sssd/*
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..33111c9307ad0baa5aaf3017027c7451c6337b41
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,13 @@
+import setuptools
+
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+    import multiprocessing  # noqa
+except ImportError:
+    pass
+
+setuptools.setup(
+    setup_requires=['pbr>=2.0.0'],
+    pbr=True)