double-z
11/16/2014 - 11:57 PM

notify-chef-provisioning-registry-api.sh

# #!/bin/bash
#
# Add this script to /etc/rc.local i.e:
# /bin/bash /usr/local/bin/chef_provisioning_auto_register
#

API_URL='http://registry-api:4567/v1/registry'
TMP_FILE='/tmp/out.txt'
MACHINE_TYPE='rails_server'
USER_NAME='provisioner'
USER_HOME="/home/$USER_NAME"
PASSWORD=

touch $TMP_FILE
cat /dev/null > $TMP_FILE

useradd -d $USER_HOME -m -s /bin/bash $USER_NAME
mkdir $USER_HOME/.ssh

chown -R $USER_NAME.$USER_NAME $USER_HOME
chmod 00666 $TMP_FILE

echo "$USER_NAME ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

if [ ! -z $PASSWORD ]
then
  printf "$PASSWORD\n$PASSWORD" | passwd $USER_NAME
fi

su - $USER_NAME -c "cat /dev/zero | ssh-keygen -q -N '' -f $USER_HOME/.ssh/id_rsa"
su - $USER_NAME -c "cat $USER_HOME/.ssh/id_rsa.pub >> $USER_HOME/.ssh/authorized_keys"

wget http://bit.ly//metal_spec_sh_latest -q -O - | sudo bash | tee $TMP_FILE

ID_RSA_DATA=`cat $USER_HOME/.ssh/id_rsa | grep -v 'PRIVATE KEY'`
echo private_key====$ID_RSA_DATA >> $TMP_FILE

if [ ! -z $PASSWORD ]
then
  echo ssh_pass====$PASSWORD >> $TMP_FILE
fi

echo machine_types====$MACHINE_TYPE >> $TMP_FILE
echo ssh_user====$USER_NAME >> $TMP_FILE

curl -v -F "data=@$TMP_FILE" $API_URL > /tmp/register.log