summaryrefslogtreecommitdiff
path: root/run-workers.sh
blob: 0332027c44e70048bcf4944e04289573d15ce090 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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)" \
                 "$@"