#!/bin/sh get_distro() { OS=$(cat /etc/*release | grep ID | head -1 | cut -c 4-) echo $OS } if ! $(which rdnssd); then echo "nameserver 2a0a:e5c0::3" >> /etc/resolv.conf echo "nameserver 2a0a:e5c0::4" >> /etc/resolv.conf apk add ndisc6 fi # Get IPv6 DNS rdnssd -u root -r /etc/resolv.conf ssh_authorized_keys_path='/root/.ssh/authorized_keys' ssh_config_path='/etc/ssh/ssh_config' sshd_config_path='/etc/ssh/sshd_config' # Initial Package Intallation if [ [ $(get_distro) = "alpine" ]; then apk update apk add python3 openssh-server sfdisk util-linux jq touch $ssh_authorized_keys_path if ! grep -q "PasswordAuthentication no" $ssh_config_path; then echo "PasswordAuthentication no" >> $ssh_config_path fi if ! grep -q "PermitRootLogin yes" $sshd_config_path; then echo "PermitRootLogin yes" >> $sshd_config_path fi service sshd restart else echo "Unsupported OS" exit fi wget https://git.launchpad.net/ubuntu/+source/cloud-utils/plain/bin/growpart if [ -e growpart ]; then sh ./growpart /dev/vda3; rm growpart fi # TODO: Make sure to replace the following address with http://metadata # whenever we got http://metadata resolving to url work successfully. metadata=$(curl http://[2a0a:e5c1:144::]:5000) ssh_key=$(echo $metadata | jq '.["ssh-key"]') ssh_key="${ssh_key:1:-1}" # Removes quotation marks if ! grep -q "$ssh_key" $ssh_authorized_keys_path; then echo $ssh_key >> $ssh_authorized_keys_path fi