diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bafe0fc3c4174bf49dce03d925372d69c8604ff9..7812d68461be39a904ee8dc43270fd3a9a2f730c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,7 +8,6 @@ ansible-lint:
     # This probably happens due to gitlab-runner mounting the git repo into the container
     - chmod o-w .
     # Fix syntax-check rule (https://github.com/ansible-community/ansible-lint/issues/1350#issuecomment-778764110)
-    - sed "s/,hcloud_inventory.py//" -i ansible.cfg
     - sed "/^vault_identity_list/d" -i ansible.cfg
     - sed "/misc\/vaults\/vault_/d" -i playbooks/*.yml
     # Fix load-failure: Failed to load or parse file
diff --git a/README.md b/README.md
index 15712809a5cfb98b6975633ad482af8eeec41fd8..e8337d16f35e50c7c35e090164489195d30d310c 100644
--- a/README.md
+++ b/README.md
@@ -40,13 +40,6 @@ locally signed with `--lsign-key`. This is necessary for running any of the
 `reencrypt-vault-default-key`, `reencrypt-vault-super-key `or `fetch-borg-keys`
 tasks.
 
-#### Note about Ansible dynamic inventories
-
-We use a dynamic inventory script in order to automatically get information for
-all servers directly from hcloud. You don't really have to do anything to make
-this work but you should keep in mind to NOT add hcloud servers to `hosts`!
-They'll be available automatically.
-
 #### Note about packer
 
 We use packer to build snapshots on hcloud to use as server base images.
diff --git a/ansible.cfg b/ansible.cfg
index 0a2431a60014a1bddfc56db7bd160b9bc7a9d347..36c2fffdcc02fa8bb999e17b1bd228e62ccb3187 100644
--- a/ansible.cfg
+++ b/ansible.cfg
@@ -1,5 +1,5 @@
 [defaults]
-inventory = hosts,hcloud_inventory.py
+inventory = hosts
 library = library
 remote_tmp = $HOME/.ansible/tmp
 remote_user = root
diff --git a/hcloud_inventory.py b/hcloud_inventory.py
deleted file mode 100755
index bb25705ed6fc31959602850d19d5734dd9de7098..0000000000000000000000000000000000000000
--- a/hcloud_inventory.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python
-#
-# Dynamic inventory script for getting infrastructure information from hcloud
-
-import argparse
-import json
-import sys
-
-from hcloud import Client
-
-from misc.get_key import load_vault
-
-
-def parse_args():
-    parser = argparse.ArgumentParser(description="Hcloud dynamic inventory script")
-    group = parser.add_mutually_exclusive_group(required=True)
-    group.add_argument('--list', action='store_true')
-    group.add_argument('--host')
-    return parser.parse_args()
-
-
-def get_host_details(server):
-    return {'ansible_host': server.public_net.ipv4.ip,
-            'ansible_port': 22,
-            'ansible_user': "root"}
-
-
-def main():
-    args = parse_args()
-    loaded = load_vault('misc/vaults/vault_hcloud.yml')
-    client = Client(token=loaded["hcloud_api_key_readonly"])
-    servers = client.servers.get_all()
-
-    hostvars = {server.name: get_host_details(server) for server in servers}
-    if args.list:
-        hosts = [server.name for server in servers]
-        json.dump({'hcloud': hosts, '_meta': {'hostvars': hostvars}}, sys.stdout)
-    else:
-        json.dump(hostvars[args.host], sys.stdout)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/hosts b/hosts
index 94a8845e0234e45406feebdc8502acbfd8f5336c..e68a9a7ff4b0e126163b47194497f4c585599f76 100644
--- a/hosts
+++ b/hosts
@@ -113,3 +113,30 @@ build.archlinux.org
 runner1.archlinux.org
 runner2.archlinux.org
 secure-runner1.archlinux.org
+
+[hcloud]
+accounts.archlinux.org
+archlinux.org
+aur.archlinux.org
+bbs.archlinux.org
+bugs.archlinux.org
+dashboards.archlinux.org
+debuginfod.archlinux.org
+gitlab.archlinux.org
+gluebuddy.archlinux.org
+homedir.archlinux.org
+lists.archlinux.org
+mail.archlinux.org
+man.archlinux.org
+matrix.archlinux.org
+md.archlinux.org
+mirror.pkgbuild.com
+monitoring.archlinux.org
+patchwork.archlinux.org
+phrik.archlinux.org
+quassel.archlinux.org
+redirect.archlinux.org
+reproducible.archlinux.org
+security.archlinux.org
+state.archlinux.org
+wiki.archlinux.org