#!/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)" \ "$@"