summaryrefslogtreecommitdiff
path: root/playbooks/roles/ci/templates/volumes/laminar/jobs/playbook.run
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks/roles/ci/templates/volumes/laminar/jobs/playbook.run')
-rwxr-xr-xplaybooks/roles/ci/templates/volumes/laminar/jobs/playbook.run25
1 files changed, 25 insertions, 0 deletions
diff --git a/playbooks/roles/ci/templates/volumes/laminar/jobs/playbook.run b/playbooks/roles/ci/templates/volumes/laminar/jobs/playbook.run
new file mode 100755
index 0000000..181a050
--- /dev/null
+++ b/playbooks/roles/ci/templates/volumes/laminar/jobs/playbook.run
@@ -0,0 +1,25 @@
+#!/bin/bash
+# usage: laminarc queue playbook remote="ssh://src.liz.coffee:2222/infra" playbooks="deploy.yml playbooks/labdns.yml"
+
+set -e
+
+declare -a args=("$remote" "$playbooks")
+for arg in "${args[@]}"
+do
+ if [[ ! "$arg" =~ ^[[:alnum:]:_\ \.\/\-]*$ ]]; then
+ echo "Invalid argument format. Don't be sneaky snek (-_-)."
+ exit 1
+ fi
+done
+
+log "Cloning remote $remote"
+r=$(echo "ansible-$(date --iso-8601=seconds)")
+git clone "$remote" "$r" && cd "$r"
+
+get_secret "ansible_secrets" | jq -r '.notes' > secrets.yml
+private_key=$(get_secret "ssh_key" | jq -r '.notes')
+
+env -i HOME="$HOME" ssh-agent bash -c "ssh-add <(echo \"$private_key\") && ansible-playbook -e @secrets.yml $playbooks"
+
+cd -
+rm -rf "$r"