diff --git a/ansible-command-wrapper b/ansible-command-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..80663fc0fbe821f78d8ea990f3356207b49dbf2d
--- /dev/null
+++ b/ansible-command-wrapper
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+command=$(basename "$0")
+
+if [[ $command = "ansible-command-wrapper" ]]; then
+	if [[ $# -gt 0 ]]; then
+		command=$1
+		shift
+	else
+		echo "usage: ansible-command-wrapper <command name> [arguments]" >&2
+		exit 1
+	fi
+fi
+
+exec "$command" --vault-password-file $(dirname $0)/misc/get-vault-pass.sh "$@"
diff --git a/ansible-playbook b/ansible-playbook
deleted file mode 100755
index c98ae3d026b9c83f86fe2e6ea404bbb88db4ddaf..0000000000000000000000000000000000000000
--- a/ansible-playbook
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec ansible-playbook --vault-password-file $(dirname $0)/misc/get-vault-pass.sh "$@"
diff --git a/ansible-playbook b/ansible-playbook
new file mode 120000
index 0000000000000000000000000000000000000000..e4e1b37cb91461c58786299fcf1f6e4a2d10d7ae
--- /dev/null
+++ b/ansible-playbook
@@ -0,0 +1 @@
+ansible-command-wrapper
\ No newline at end of file
diff --git a/ansible-vault b/ansible-vault
deleted file mode 100755
index 6c1ab048e77cf0e215fc8d7929c593c118f09141..0000000000000000000000000000000000000000
--- a/ansible-vault
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec ansible-vault --vault-password-file $(dirname $0)/misc/get-vault-pass.sh "$@"
diff --git a/ansible-vault b/ansible-vault
new file mode 120000
index 0000000000000000000000000000000000000000..e4e1b37cb91461c58786299fcf1f6e4a2d10d7ae
--- /dev/null
+++ b/ansible-vault
@@ -0,0 +1 @@
+ansible-command-wrapper
\ No newline at end of file