|
| 1 | +#!/usr/bin/env bash |
| 2 | +set -euo pipefail |
| 3 | + |
| 4 | +SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) |
| 5 | +cd "$SCRIPT_DIR" |
| 6 | + |
| 7 | +# Generate ssh key if not exists (using Vagrant insecure key for convenience matching Dockerfile) |
| 8 | +if [ ! -f "id_rsa" ]; then |
| 9 | + cat <<'KEY' > id_rsa |
| 10 | +-----BEGIN RSA PRIVATE KEY----- |
| 11 | +MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI |
| 12 | +w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP |
| 13 | +kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2 |
| 14 | +hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO |
| 15 | +Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW |
| 16 | +yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd |
| 17 | +ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1 |
| 18 | +Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf |
| 19 | +TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK |
| 20 | +iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A |
| 21 | +sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf |
| 22 | +4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP |
| 23 | +cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk |
| 24 | +EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN |
| 25 | +CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX |
| 26 | +3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG |
| 27 | +YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj |
| 28 | +3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+ |
| 29 | +dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz |
| 30 | +6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC |
| 31 | +P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF |
| 32 | +llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ |
| 33 | +kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH |
| 34 | ++vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ |
| 35 | +NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s= |
| 36 | +-----END RSA PRIVATE KEY----- |
| 37 | +KEY |
| 38 | + chmod 600 id_rsa |
| 39 | +fi |
| 40 | + |
| 41 | +echo "Starting containers..." |
| 42 | +docker compose up -d --build |
| 43 | + |
| 44 | +echo "Generating ssh config..." |
| 45 | +cat <<EOF > ssh_config |
| 46 | +Host n1 |
| 47 | + HostName 127.0.0.1 |
| 48 | + User vagrant |
| 49 | + Port 2221 |
| 50 | + IdentityFile $SCRIPT_DIR/id_rsa |
| 51 | + StrictHostKeyChecking no |
| 52 | + UserKnownHostsFile /dev/null |
| 53 | + LogLevel ERROR |
| 54 | +
|
| 55 | +Host n2 |
| 56 | + HostName 127.0.0.1 |
| 57 | + User vagrant |
| 58 | + Port 2222 |
| 59 | + IdentityFile $SCRIPT_DIR/id_rsa |
| 60 | + StrictHostKeyChecking no |
| 61 | + UserKnownHostsFile /dev/null |
| 62 | + LogLevel ERROR |
| 63 | +
|
| 64 | +Host n3 |
| 65 | + HostName 127.0.0.1 |
| 66 | + User vagrant |
| 67 | + Port 2223 |
| 68 | + IdentityFile $SCRIPT_DIR/id_rsa |
| 69 | + StrictHostKeyChecking no |
| 70 | + UserKnownHostsFile /dev/null |
| 71 | + LogLevel ERROR |
| 72 | +
|
| 73 | +Host n4 |
| 74 | + HostName 127.0.0.1 |
| 75 | + User vagrant |
| 76 | + Port 2224 |
| 77 | + IdentityFile $SCRIPT_DIR/id_rsa |
| 78 | + StrictHostKeyChecking no |
| 79 | + UserKnownHostsFile /dev/null |
| 80 | + LogLevel ERROR |
| 81 | +
|
| 82 | +Host n5 |
| 83 | + HostName 127.0.0.1 |
| 84 | + User vagrant |
| 85 | + Port 2225 |
| 86 | + IdentityFile $SCRIPT_DIR/id_rsa |
| 87 | + StrictHostKeyChecking no |
| 88 | + UserKnownHostsFile /dev/null |
| 89 | + LogLevel ERROR |
| 90 | +EOF |
| 91 | + |
| 92 | +echo "Done. Use 'ssh -F jepsen/docker/ssh_config n1' to connect." |
0 commit comments