summaryrefslogtreecommitdiff
path: root/run-workers.sh
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-09-13 18:19:40 +0300
committerLars Wirzenius <liw@liw.fi>2018-09-13 18:19:40 +0300
commite96f3a688ef60b737d93c1650048d1344b76c991 (patch)
treef537757dadd6e4c4038b489b53f910982353da17 /run-workers.sh
parent61c12b7938bd8fd8c17155b646b08fd1caf3cd6c (diff)
downloadick2-ansible-e96f3a688ef60b737d93c1650048d1344b76c991.tar.gz
Change: split workers off main playbook
Diffstat (limited to 'run-workers.sh')
-rwxr-xr-xrun-workers.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/run-workers.sh b/run-workers.sh
new file mode 100755
index 0000000..0332027
--- /dev/null
+++ b/run-workers.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+set -eu
+
+
+getaddr()
+{
+ awk -v "name=$1" '$1 == name { print $2 }' "$hosts_in" |
+ sed 's/ansible_ssh_host=//'
+}
+
+
+count_workers()
+{
+ grep -Ec '^worker[[:digit:]]+' "$1"
+}
+
+
+mkhosts()
+{
+ local n="$1"
+ for i in $(seq "$n")
+ do
+ echo "worker$i hostname=worker$i ansible_ssh_host=$(getaddr worker$i)"
+ done
+ echo
+
+ echo "[ickhost]"
+ for i in $(seq "$n")
+ do
+ echo "worker$i"
+ done
+ echo
+
+ echo "[workers]"
+ for i in $(seq "$n")
+ do
+ echo "worker$i"
+ done
+}
+
+hosts_in="$1"
+controller_domain="$2"
+apt_domain="$controller_domain"
+shift 2
+
+nw="$(count_workers "$hosts_in")"
+mkhosts "$nw" > hosts.tmp
+ansible-playbook -i hosts.tmp ick-workers.yml \
+ -e "controller_domain=$controller_domain" \
+ -e "apt_domain=$apt_domain)" \
+ "$@"