#!/bin/sh # Some Global Variables ssh_authorized_keys_path='/root/.ssh/authorized_keys' ssh_config_path='/etc/ssh/ssh_config' sshd_config_path='/etc/ssh/sshd_config' etc_resolv_path='/etc/resolv.conf' # Functions get_distro() { OS=$(cat /etc/*release | grep ID | head -1 | cut -c 4-) echo $OS } setup_ssh() { tput setaf 2; tput bold; echo "Setting up SSH"; tput sgr0; mkdir -p $(dirname $ssh_authorized_keys_path) touch $ssh_authorized_keys_path if ! grep -q "PasswordAuthentication no" $sshd_config_path; then echo "PasswordAuthentication no" >> $sshd_config_path fi if ! grep -q "PermitRootLogin yes" $sshd_config_path; then echo "PermitRootLogin yes" >> $sshd_config_path fi # TODO: Make sure to replace the following address with http://metadata # whenever we got http://metadata resolving to url work successfully. metadata=$(curl -s http://metadata) echo "$metadata" | jq -r '.["ssh-key-list"] | .[]' > ssh-key-list.txt while read ssh_key; do if ! grep -q "$ssh_key" $ssh_authorized_keys_path; then echo $ssh_key >> $ssh_authorized_keys_path fi done < ssh-key-list.txt rm -f ssh-key-list.txt service -q sshd restart } grow_partition() { tput setaf 2; tput bold; echo "Growing Partition"; tput sgr0; # TODO: Try to replace the growpart to parted wget https://git.launchpad.net/ubuntu/+source/cloud-utils/plain/bin/growpart -q if [ -e growpart ]; then sh ./growpart -q /dev/vda 3 > /dev/null; rm growpart else tput setaf 1; echo "growpart couldn't be downloaded" exit 1 fi } make_script_verbose() { # Show output of this script if [[ ! -e /etc/conf.d/local ]] && ! grep -q "rc_verbose=yes" /etc/conf.d/local; then echo "rc_verbose=yes" >> /etc/conf.d/local fi } setup_dns() { tput setaf 2; tput bold; echo "Setting up DNS"; tput sgr0; # Check if rdnssd is installed, if not put Google's DNS # into /etc/resolv.conf and install rdnssd for the next time if ! apk list | grep -q ndisc6; then echo "nameserver 2001:4860:4860::8888" >> $etc_resolv_path echo "nameserver 2001:4860:4860::8844" >> $etc_resolv_path echo "nameserver 8.8.8.8" >> $etc_resolv_path echo "nameserver 8.8.4.4" >> $etc_resolv_path fi } setup_etc_host() { tput setaf 2; tput bold; echo "Setting up /etc/hosts"; tput sgr0; cat > /etc/hosts << EOF 127.0.0.1 localhost.my.domain localhost localhost.localdomain localhost ::1 localhost localhost.localdomain 2a0a:e5c1:144:: metadata EOF # metadata=$(curl -s http://[2a0a:e5c1:144::]:9000) # host_list=$(echo "$metadata" | jq -r '.["host-list"]') # host_list_len=$(echo "$host_list" | jq -r '. | length') # cat > /etc/hosts <