#!/usr/bin/env bash set -xe server=$1 type=$2 hostname=$3 branch=$4 if [ -z "$hostname" ]; then echo "USAGE: $0 server type hostname [branch]" exit 1 fi if ! echo "$hostname" | grep -q zulip; then echo "USAGE: $0 server type hostname [branch]" echo "Hostname must have zulip in it." exit 1 fi if [ -z "$branch" ]; then branch=master fi zulip_root=${ZULIP_ROOT:-$HOME/zulip} amazon_key_file=$zulip_root/zulip.pem if ! [ -e "$amazon_key_file" ]; then echo "You need zulip.pem at $amazon_key_file; ask tabbott for it" exit 1 fi server_private_key_file=$zulip_root/puppet/zulip_internal/files/id_rsa if ! [ -e "$server_private_key_file" ]; then echo "You need a server ssh key at $server_private_key_file" exit 1 fi # Force RSA keys. We do this because the ECDSA key is not printed on syslog, # and our puppet configuration does not use ECDSA. If we don't do this, # we'll get key errors after puppet apply. SSH_OPTS=(-o HostKeyAlgorithms=ssh-rsa) set +e ssh "${SSH_OPTS[@]}" "$server" -t -i "$amazon_key_file" -ladmin -o "ControlMaster=no" < /etc/hostname sed -i 's/localhost$/localhost $hostname/' /etc/hosts /etc/init.d/hostname.sh start # First, install any updates from the apt repo that may be needed wget -O /root/ops.asc https://zulip.com/dist/keys/ops.asc apt-key add /root/ops.asc cat >/etc/apt/sources.list.d/zulip.list < /root/.ssh/known_hosts <