#! /bin/sh # # usage: with cac ./networking-configuration c838-828 cd # set -euf . ./lib/cac.sh . ./lib/net.sh cac_servername=$1 hostname=$2 # This is somewhat required because cloudatcost requires whitelisting # of hosts. If you whitelist your localhost, then leave this empty. # cac_via= # # cac_key= # cac_login= # cac_servername= # hostname= main() {( server=$(cac_getserver_by_servername "$cac_servername") print_networking_configuraton "$server" )} print_networking_configuraton() { server=$1 address=$(echo $server | jq -r .ip) gateway=$(echo $server | jq -r .gateway) nameserver=8.8.8.8 netmask=$(echo $server | jq -r .netmask) prefix=$(net_netmask_to_prefix $netmask) # TODO generate all config and put it into a temp dir, then rsync that # # upload configuration (to /root) # printf '{...}:\n' printf '{\n' printf ' networking.hostName = "%s";\n' $hostname printf ' networking.interfaces.enp2s1.ip4 = [\n' printf ' {\n' printf ' address = "%s";\n' $address printf ' prefixLength = %d;\n' $prefix printf ' }\n' printf ' ];\n' printf ' networking.defaultGateway = "%s";\n' $gateway printf ' networking.nameservers = [\n' printf ' "%s"\n' $nameserver printf ' ];\n' printf '}\n' } main "$@"