commit a994b4cf1a150edaadd532c92e5d5e2c36ed1e73 Author: root Date: Fri Aug 23 11:01:23 2019 +0000 initial code added diff --git a/ucloud-init.start b/ucloud-init.start new file mode 100755 index 0000000..1fc452e --- /dev/null +++ b/ucloud-init.start @@ -0,0 +1,52 @@ +#!/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' +# 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" $ssh_config_path; then + echo "PermitRootLogin yes" >> $ssh_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