Repository: stratos Updated Branches: refs/heads/master c509f887a -> 14519477b
Refining init and config script placement in tools folder Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/14519477 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/14519477 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/14519477 Branch: refs/heads/master Commit: 14519477b32b4697a35291da309f43a68e0b4039 Parents: c509f88 Author: Imesh Gunaratne <[email protected]> Authored: Sun May 24 14:55:43 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Sun May 24 14:55:43 2015 +0530 ---------------------------------------------------------------------- tools/config-scripts/README.md | 3 + tools/config-scripts/ec2/config.sh | 104 ++++++++++++++++++ tools/config-scripts/gce/config.sh | 101 ++++++++++++++++++ tools/init-scripts/README.md | 6 +- tools/init-scripts/centos/init.sh | 147 ------------------------- tools/init-scripts/config-gce.sh | 101 ------------------ tools/init-scripts/config.sh | 104 ------------------ tools/init-scripts/ec2/centos/init.sh | 147 +++++++++++++++++++++++++ tools/init-scripts/ec2/ubuntu/init.sh | 165 +++++++++++++++++++++++++++++ tools/init-scripts/gce/init.sh | 146 +++++++++++++++++++++++++ tools/init-scripts/init-gce.sh | 146 ------------------------- tools/init-scripts/init-vcloud.sh | 80 -------------- tools/init-scripts/init.sh | 165 ----------------------------- tools/init-scripts/vcloud/init.sh | 80 ++++++++++++++ 14 files changed, 749 insertions(+), 746 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/config-scripts/README.md ---------------------------------------------------------------------- diff --git a/tools/config-scripts/README.md b/tools/config-scripts/README.md new file mode 100644 index 0000000..a18ed3a --- /dev/null +++ b/tools/config-scripts/README.md @@ -0,0 +1,3 @@ +# Stratos Cartridge Config Scripts + +Cartridge config scripts can be used for creating base or fully configured cartridge images. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/config-scripts/ec2/config.sh ---------------------------------------------------------------------- diff --git a/tools/config-scripts/ec2/config.sh b/tools/config-scripts/ec2/config.sh new file mode 100755 index 0000000..4ac4707 --- /dev/null +++ b/tools/config-scripts/ec2/config.sh @@ -0,0 +1,104 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- +shopt -s nocasematch +ECHO=`which echo` +RM=`which rm` +READ=`which read` +TR=`which tr` +HEAD=`which head` +WGET=`which wget` +MKDIR=`which mkdir` +GREP=`which grep` +SED=`which sed` +CP=`which cp` +MV=`which mv` + +HOSTSFILE=/etc/hosts +LOCKFILE=/mnt/apache-stratos-cartridge-agent-4.0.0/wso2carbon.lck +DATE=`date +%d%m%y%S` +RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" + +function valid_ip() +{ + local ip=$1 + local stat=1 + + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + OIFS=$IFS + IFS='.' + ip=($ip) + IFS=$OIFS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ + && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +read -p "This script will install and configure puppet agent, do you want to continue [y/n]" answer +if [[ $answer = y ]] ; then + + ${CP} -f ${HOSTSFILE} /etc/hosts.tmp + ${MKDIR} -p /tmp/payload + ${WGET} http://169.254.169.254/latest/user-data -O /tmp/payload/launch-params + + read -p "Please provide stratos service-name:" SERVICE_NAME + if [[ -z $SERVICE_NAME ]]; then + echo "service is empty!. Base image will be created." + SERVICE_NAME=default + fi + + read -p "Please provide puppet master IP:" PUPPET_IP + if ! valid_ip $PUPPET_IP ; then + echo "invalid IP address format!" + exit -1 + fi + + read -p "Please provide puppet master hostname [puppet.stratos.org]:" DOMAIN + DOMAIN=${DOMAIN:-puppet.stratos.org} + #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs + + #read -p "Please provide stratos deployment:" DEPLOYMENT + #DEPLOYMENT=${DEPLOYMENT:-default} + DEPLOYMENT="default" + + NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" + + ${ECHO} -e "\nNode Id ${NODEID}\n" + ${ECHO} -e "\nDomain ${DOMAIN}\n" + + ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") + ${ECHO} "\nRunning puppet installation with arguments: ${ARGS[@]}" + /root/bin/puppetinstall/puppetinstall "${ARGS[@]}" + #check for java agent lock file + if [ -e ${LOCKFILE} ]; then + ${RM} ${LOCKFILE} + fi + + ${GREP} -q '/root/bin/init.sh > /tmp/puppet_log' /etc/rc.local || ${SED} -i 's/exit 0$/\/root\/bin\/init.sh \> \/tmp\/puppet_log\nexit 0/' /etc/rc.local + ${RM} -rf /tmp/* + ${RM} -rf /var/lib/puppet/ssl/* + ${MV} -f /etc/hosts.tmp ${HOSTSFILE} + +fi + +# END http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/config-scripts/gce/config.sh ---------------------------------------------------------------------- diff --git a/tools/config-scripts/gce/config.sh b/tools/config-scripts/gce/config.sh new file mode 100644 index 0000000..0c1cbc7 --- /dev/null +++ b/tools/config-scripts/gce/config.sh @@ -0,0 +1,101 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- +shopt -s nocasematch +ECHO=`which echo` +RM=`which rm` +READ=`which read` +TR=`which tr` +HEAD=`which head` +WGET=`which wget` +MKDIR=`which mkdir` +GREP=`which grep` +SED=`which sed` +CP=`which cp` +MV=`which mv` +CURL=`which curl` + +HOSTSFILE=/etc/hosts +DATE=`date +%d%m%y%S` +RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" + +function valid_ip() +{ + local ip=$1 + local stat=1 + + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + OIFS=$IFS + IFS='.' + ip=($ip) + IFS=$OIFS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ + && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +read -p "This script will install and configure puppet agent, do you want to continue [y/n]" answer +if [[ $answer = y ]] ; then + + ${CP} -f ${HOSTSFILE} /etc/hosts.tmp + ${MKDIR} -p /tmp/payload + ${CURL} "http://metadata.google.internal/computeMetadata/v1/instance/attributes/stratos_usermetadata" \ + -H "Metadata-Flavor: Google" > /tmp/payload/launch-params + + read -p "Please provide stratos service-name:" SERVICE_NAME + if [[ -z $SERVICE_NAME ]]; then + echo "service is empty!. Base image will be created." + SERVICE_NAME=default + fi + + read -p "Please provide puppet master IP:" PUPPET_IP + if ! valid_ip $PUPPET_IP ; then + echo "invalid IP address format!" + exit -1 + fi + + read -p "Please provide puppet master hostname [puppet.stratos.org]:" DOMAIN + DOMAIN=${DOMAIN:-puppet.stratos.org} + #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs + + #read -p "Please provide stratos deployment:" DEPLOYMENT + #DEPLOYMENT=${DEPLOYMENT:-default} + DEPLOYMENT="default" + + NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" + + ${ECHO} -e "\nNode Id ${NODEID}\n" + ${ECHO} -e "\nDomain ${DOMAIN}\n" + + ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") + ${ECHO} "\nRunning puppet installation with arguments: ${ARGS[@]}" + /root/bin/puppetinstall/puppetinstall "${ARGS[@]}" + ${RM} /mnt/apache-stratos-cartridge-agent-4.0.0/wso2carbon.lck + ${GREP} -q '/root/bin/init.sh > /tmp/puppet_log' /etc/rc.local || ${SED} -i 's/exit 0$/\/root\/bin\/init.sh \> \/tmp\/puppet_log\nexit 0/' /etc/rc.local + ${RM} -rf /tmp/* + ${RM} -rf /var/lib/puppet/ssl/* + ${MV} -f /etc/hosts.tmp ${HOSTSFILE} + +fi + +# END http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/README.md ---------------------------------------------------------------------- diff --git a/tools/init-scripts/README.md b/tools/init-scripts/README.md index 34e503e..2231214 100644 --- a/tools/init-scripts/README.md +++ b/tools/init-scripts/README.md @@ -1,4 +1,4 @@ -Stratos Cartridge Init Scripts -============================== +# Stratos Cartridge Init Scripts -This folder will host the init scripts of cartridge instances. Purpose of these scripts are to kick off the startup actions such as downloading user-data(payload), run puppet agent etc. +An init script will be placed in cartridge images to be executed at the cartridge instance startup. Once executed, it +will fetch payload data passed to the cartridge instance and execute puppet agent. http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/centos/init.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/centos/init.sh b/tools/init-scripts/centos/init.sh deleted file mode 100644 index bc2aa4b..0000000 --- a/tools/init-scripts/centos/init.sh +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash -# -------------------------------------------------------------- -# -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# -------------------------------------------------------------- - -MKDIR=`which mkdir` -UNZIP=`which unzip` -ECHO=`which echo` -FIND=`which find` -GREP=`which grep` -RM=`which rm` -XARGS=`which xargs` -SED=`which sed` -CUT=`which cut` -AWK=`which awk` -IFCONFIG=`which ifconfig` -HOSTNAME=`which hostname` -SLEEP=`which sleep` -TR=`which tr` -HEAD=`which head` -WGET=`which wget` -PUPPETD=`which puppet` -AGENT="agent" -PUPPETAGENT="${PUPPETD} ${AGENT}" - -COMMAND="${PUPPETAGENT} -vt" -IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` -LOG=/tmp/puppet-init.log - -HOSTSFILE=/etc/hosts -HOSTNAMEFILE=/etc/hostname -PUPPETCONF=/etc/puppet/puppet.conf - -read_master() { - ${COMMAND} -} - -is_public_ip_assigned() { - -while true -do - wget http://169.254.169.254/latest/meta-data/public-ipv4 - if [ ! -f public-ipv4 ] - then - echo "Public ipv4 file not found. Sleep and retry" >> $LOG - sleep 2; - continue; - else - echo "public-ipv4 file is available. Read value" >> $LOG - # Here means file is available. Read the file - read -r ip<public-ipv4; - echo "value is **[$ip]** " >> $LOG - - if [ -z "$ip" ] - then - echo "File is empty. Retry...." >> $LOG - sleep 2 - rm public-ipv4 - continue - else - echo "public ip is assigned. value is [$ip]. Remove file" >> $LOG - rm public-ipv4 - break - fi - fi -done -} - -DATE=`date +%d%m%y%S` -RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" - -if [ ! -d /tmp/payload ]; then - - ## Check whether the public ip is assigned - is_public_ip_assigned - - echo "Public ip have assigned. Continue.." >> $LOG - - ## Clean old poop - ${ECHO} "Removing all existing certificates .." - #${FIND} /var/lib/puppet -type f -print0 | ${XARGS} -0r ${RM} - - ${MKDIR} -p /tmp/payload - ${WGET} http://169.254.169.254/latest/user-data -O /tmp/payload/launch-params - - cd /tmp/payload - SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` - DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` - INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` - PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` - PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` - PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` - PUPPET_DNS_AVAILABLE=`sed 's/,/\n/g' launch-params | grep PUPPET_DNS_AVAILABLE | cut -d "=" -f 2` - NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" - - - - #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs - DOMAIN="${PUPPET_HOSTNAME}" - ${ECHO} -e "\nNode Id ${NODEID}\n" - ${ECHO} -e "\nDomain ${DOMAIN}\n" - sed -i "s/server=.*/server=${PUPPET_HOSTNAME}/g" ${PUPPETCONF} - /etc/init.d/puppet restart - ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") - HOST="${NODEID}.${DOMAIN}" - ${HOSTNAME} ${HOST} - ${ECHO} "${HOST}" > ${HOSTNAMEFILE} - if [ true != $PUPPET_DNS_AVAILABLE ] ; then - ${ECHO} "${PUPPET_IP} ${PUPPET_HOSTNAME}" >> ${HOSTSFILE} - fi - - ${ECHO} "127.0.0.1 ${HOST}" >> ${HOSTSFILE} - echo ${HOST} > /proc/sys/kernel/hostname - - PUPPET=`which puppet` - PUPPETAGENT="${PUPPET} agent" - RUNPUPPET="${PUPPETAGENT} -vt" - - ${SLEEP} 5 - - ${PUPPETAGENT} --enable - - ${RUNPUPPET} --server=${PUPPET_HOSTNAME} - - ${PUPPETAGENT} --disable - ${ECHO} -e "Initialization completed successfully." - -fi - -# END - http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/config-gce.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/config-gce.sh b/tools/init-scripts/config-gce.sh deleted file mode 100644 index 0c1cbc7..0000000 --- a/tools/init-scripts/config-gce.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/bash -# -------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# -------------------------------------------------------------- -shopt -s nocasematch -ECHO=`which echo` -RM=`which rm` -READ=`which read` -TR=`which tr` -HEAD=`which head` -WGET=`which wget` -MKDIR=`which mkdir` -GREP=`which grep` -SED=`which sed` -CP=`which cp` -MV=`which mv` -CURL=`which curl` - -HOSTSFILE=/etc/hosts -DATE=`date +%d%m%y%S` -RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" - -function valid_ip() -{ - local ip=$1 - local stat=1 - - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - OIFS=$IFS - IFS='.' - ip=($ip) - IFS=$OIFS - [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ - && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -read -p "This script will install and configure puppet agent, do you want to continue [y/n]" answer -if [[ $answer = y ]] ; then - - ${CP} -f ${HOSTSFILE} /etc/hosts.tmp - ${MKDIR} -p /tmp/payload - ${CURL} "http://metadata.google.internal/computeMetadata/v1/instance/attributes/stratos_usermetadata" \ - -H "Metadata-Flavor: Google" > /tmp/payload/launch-params - - read -p "Please provide stratos service-name:" SERVICE_NAME - if [[ -z $SERVICE_NAME ]]; then - echo "service is empty!. Base image will be created." - SERVICE_NAME=default - fi - - read -p "Please provide puppet master IP:" PUPPET_IP - if ! valid_ip $PUPPET_IP ; then - echo "invalid IP address format!" - exit -1 - fi - - read -p "Please provide puppet master hostname [puppet.stratos.org]:" DOMAIN - DOMAIN=${DOMAIN:-puppet.stratos.org} - #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs - - #read -p "Please provide stratos deployment:" DEPLOYMENT - #DEPLOYMENT=${DEPLOYMENT:-default} - DEPLOYMENT="default" - - NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" - - ${ECHO} -e "\nNode Id ${NODEID}\n" - ${ECHO} -e "\nDomain ${DOMAIN}\n" - - ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") - ${ECHO} "\nRunning puppet installation with arguments: ${ARGS[@]}" - /root/bin/puppetinstall/puppetinstall "${ARGS[@]}" - ${RM} /mnt/apache-stratos-cartridge-agent-4.0.0/wso2carbon.lck - ${GREP} -q '/root/bin/init.sh > /tmp/puppet_log' /etc/rc.local || ${SED} -i 's/exit 0$/\/root\/bin\/init.sh \> \/tmp\/puppet_log\nexit 0/' /etc/rc.local - ${RM} -rf /tmp/* - ${RM} -rf /var/lib/puppet/ssl/* - ${MV} -f /etc/hosts.tmp ${HOSTSFILE} - -fi - -# END http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/config.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/config.sh b/tools/init-scripts/config.sh deleted file mode 100755 index 4ac4707..0000000 --- a/tools/init-scripts/config.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash -# -------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# -------------------------------------------------------------- -shopt -s nocasematch -ECHO=`which echo` -RM=`which rm` -READ=`which read` -TR=`which tr` -HEAD=`which head` -WGET=`which wget` -MKDIR=`which mkdir` -GREP=`which grep` -SED=`which sed` -CP=`which cp` -MV=`which mv` - -HOSTSFILE=/etc/hosts -LOCKFILE=/mnt/apache-stratos-cartridge-agent-4.0.0/wso2carbon.lck -DATE=`date +%d%m%y%S` -RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" - -function valid_ip() -{ - local ip=$1 - local stat=1 - - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - OIFS=$IFS - IFS='.' - ip=($ip) - IFS=$OIFS - [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ - && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -read -p "This script will install and configure puppet agent, do you want to continue [y/n]" answer -if [[ $answer = y ]] ; then - - ${CP} -f ${HOSTSFILE} /etc/hosts.tmp - ${MKDIR} -p /tmp/payload - ${WGET} http://169.254.169.254/latest/user-data -O /tmp/payload/launch-params - - read -p "Please provide stratos service-name:" SERVICE_NAME - if [[ -z $SERVICE_NAME ]]; then - echo "service is empty!. Base image will be created." - SERVICE_NAME=default - fi - - read -p "Please provide puppet master IP:" PUPPET_IP - if ! valid_ip $PUPPET_IP ; then - echo "invalid IP address format!" - exit -1 - fi - - read -p "Please provide puppet master hostname [puppet.stratos.org]:" DOMAIN - DOMAIN=${DOMAIN:-puppet.stratos.org} - #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs - - #read -p "Please provide stratos deployment:" DEPLOYMENT - #DEPLOYMENT=${DEPLOYMENT:-default} - DEPLOYMENT="default" - - NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" - - ${ECHO} -e "\nNode Id ${NODEID}\n" - ${ECHO} -e "\nDomain ${DOMAIN}\n" - - ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") - ${ECHO} "\nRunning puppet installation with arguments: ${ARGS[@]}" - /root/bin/puppetinstall/puppetinstall "${ARGS[@]}" - #check for java agent lock file - if [ -e ${LOCKFILE} ]; then - ${RM} ${LOCKFILE} - fi - - ${GREP} -q '/root/bin/init.sh > /tmp/puppet_log' /etc/rc.local || ${SED} -i 's/exit 0$/\/root\/bin\/init.sh \> \/tmp\/puppet_log\nexit 0/' /etc/rc.local - ${RM} -rf /tmp/* - ${RM} -rf /var/lib/puppet/ssl/* - ${MV} -f /etc/hosts.tmp ${HOSTSFILE} - -fi - -# END http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/ec2/centos/init.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/ec2/centos/init.sh b/tools/init-scripts/ec2/centos/init.sh new file mode 100644 index 0000000..bc2aa4b --- /dev/null +++ b/tools/init-scripts/ec2/centos/init.sh @@ -0,0 +1,147 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- + +MKDIR=`which mkdir` +UNZIP=`which unzip` +ECHO=`which echo` +FIND=`which find` +GREP=`which grep` +RM=`which rm` +XARGS=`which xargs` +SED=`which sed` +CUT=`which cut` +AWK=`which awk` +IFCONFIG=`which ifconfig` +HOSTNAME=`which hostname` +SLEEP=`which sleep` +TR=`which tr` +HEAD=`which head` +WGET=`which wget` +PUPPETD=`which puppet` +AGENT="agent" +PUPPETAGENT="${PUPPETD} ${AGENT}" + +COMMAND="${PUPPETAGENT} -vt" +IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` +LOG=/tmp/puppet-init.log + +HOSTSFILE=/etc/hosts +HOSTNAMEFILE=/etc/hostname +PUPPETCONF=/etc/puppet/puppet.conf + +read_master() { + ${COMMAND} +} + +is_public_ip_assigned() { + +while true +do + wget http://169.254.169.254/latest/meta-data/public-ipv4 + if [ ! -f public-ipv4 ] + then + echo "Public ipv4 file not found. Sleep and retry" >> $LOG + sleep 2; + continue; + else + echo "public-ipv4 file is available. Read value" >> $LOG + # Here means file is available. Read the file + read -r ip<public-ipv4; + echo "value is **[$ip]** " >> $LOG + + if [ -z "$ip" ] + then + echo "File is empty. Retry...." >> $LOG + sleep 2 + rm public-ipv4 + continue + else + echo "public ip is assigned. value is [$ip]. Remove file" >> $LOG + rm public-ipv4 + break + fi + fi +done +} + +DATE=`date +%d%m%y%S` +RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" + +if [ ! -d /tmp/payload ]; then + + ## Check whether the public ip is assigned + is_public_ip_assigned + + echo "Public ip have assigned. Continue.." >> $LOG + + ## Clean old poop + ${ECHO} "Removing all existing certificates .." + #${FIND} /var/lib/puppet -type f -print0 | ${XARGS} -0r ${RM} + + ${MKDIR} -p /tmp/payload + ${WGET} http://169.254.169.254/latest/user-data -O /tmp/payload/launch-params + + cd /tmp/payload + SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` + DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` + INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` + PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` + PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` + PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` + PUPPET_DNS_AVAILABLE=`sed 's/,/\n/g' launch-params | grep PUPPET_DNS_AVAILABLE | cut -d "=" -f 2` + NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" + + + + #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs + DOMAIN="${PUPPET_HOSTNAME}" + ${ECHO} -e "\nNode Id ${NODEID}\n" + ${ECHO} -e "\nDomain ${DOMAIN}\n" + sed -i "s/server=.*/server=${PUPPET_HOSTNAME}/g" ${PUPPETCONF} + /etc/init.d/puppet restart + ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") + HOST="${NODEID}.${DOMAIN}" + ${HOSTNAME} ${HOST} + ${ECHO} "${HOST}" > ${HOSTNAMEFILE} + if [ true != $PUPPET_DNS_AVAILABLE ] ; then + ${ECHO} "${PUPPET_IP} ${PUPPET_HOSTNAME}" >> ${HOSTSFILE} + fi + + ${ECHO} "127.0.0.1 ${HOST}" >> ${HOSTSFILE} + echo ${HOST} > /proc/sys/kernel/hostname + + PUPPET=`which puppet` + PUPPETAGENT="${PUPPET} agent" + RUNPUPPET="${PUPPETAGENT} -vt" + + ${SLEEP} 5 + + ${PUPPETAGENT} --enable + + ${RUNPUPPET} --server=${PUPPET_HOSTNAME} + + ${PUPPETAGENT} --disable + ${ECHO} -e "Initialization completed successfully." + +fi + +# END + http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/ec2/ubuntu/init.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/ec2/ubuntu/init.sh b/tools/init-scripts/ec2/ubuntu/init.sh new file mode 100755 index 0000000..6841808 --- /dev/null +++ b/tools/init-scripts/ec2/ubuntu/init.sh @@ -0,0 +1,165 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- + +MKDIR=`which mkdir` +UNZIP=`which unzip` +ECHO=`which echo` +FIND=`which find` +GREP=`which grep` +RM=`which rm` +XARGS=`which xargs` +SED=`which sed` +CUT=`which cut` +AWK=`which awk` +IFCONFIG=`which ifconfig` +HOSTNAME=`which hostname` +SLEEP=`which sleep` +TR=`which tr` +HEAD=`which head` +WGET=`which wget` +PUPPETD=`which puppet` +AGENT="agent" +PUPPETAGENT="${PUPPETD} ${AGENT}" +OS=$(lsb_release -si) +PUPPET_DNS_AVAILABLE=false + +COMMAND="${PUPPETAGENT} -vt" +IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` +LOG=/tmp/puppet-init.log + +HOSTSFILE=/etc/hosts +HOSTNAMEFILE=/etc/hostname +PUPPETCONF=/etc/puppet/puppet.conf + +read_master() { + ${COMMAND} +} + + +is_public_ip_assigned() { + +while true +do + wget http://169.254.169.254/latest/meta-data/public-ipv4 + if [ ! -f public-ipv4 ] + then + echo "Public ipv4 file not found. Sleep and retry" >> $LOG + sleep 2; + continue; + else + echo "public-ipv4 file is available. Read value" >> $LOG + # Here means file is available. Read the file + read -r ip<public-ipv4; + echo "value is **[$ip]** " >> $LOG + + if [ -z "$ip" ] + then + echo "File is empty. Retry...." >> $LOG + sleep 2 + rm public-ipv4 + continue + else + echo "public ip is assigned. value is [$ip]. Remove file" >> $LOG + rm public-ipv4 + break + fi + fi +done +} + + +DATE=`date +%d%m%y%S` +RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" + +if [ ! -d /tmp/payload ]; then + + ## Check whether the public ip is assigned + is_public_ip_assigned + + echo "Public ip have assigned. Continue.." >> $LOG + + ## Clean old poop + ${ECHO} "Removing all existing certificates .." + #${FIND} /var/lib/puppet -type f -print0 | ${XARGS} -0r ${RM} + + ${MKDIR} -p /tmp/payload + ${WGET} http://169.254.169.254/latest/user-data -O /tmp/payload/launch-params + + cd /tmp/payload + SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` + DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` + INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` + PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` + PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` + PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` + PUPPET_DNS_AVAILABLE=`sed 's/,/\n/g' launch-params | grep PUPPET_DNS_AVAILABLE | cut -d "=" -f 2` + + #If this property is not set, then set it as false + if [ -z $PUPPET_DNS_AVAILABLE ];then + PUPPET_DNS_AVAILABLE=false + fi + NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" + #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs + DOMAIN="${PUPPET_HOSTNAME}" + ${ECHO} -e "\nNode Id ${NODEID}\n" + ${ECHO} -e "\nDomain ${DOMAIN}\n" + sed -i "s/server=.*/server=${PUPPET_HOSTNAME}/g" ${PUPPETCONF} + /etc/init.d/puppet restart + ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") + HOST="${NODEID}.${DOMAIN}" + ${HOSTNAME} ${HOST} + ${ECHO} "${HOST}" > ${HOSTNAMEFILE} + if [ true != $PUPPET_DNS_AVAILABLE ] ; then + ${ECHO} "${PUPPET_IP} ${PUPPET_HOSTNAME}" >> ${HOSTSFILE} + fi + ${ECHO} "127.0.0.1 ${HOST}" >> ${HOSTSFILE} + + if [ "$OS" = "CentOS" ]; then + #CentOS hostname change + ${ECHO} "CentOS : Changing host name in /etc/sysconfig/network" + CENTOSHOSTNAME="/etc/sysconfig/network" + ${ECHO} "NETWORKING=yes" > ${CENTOSHOSTNAME} + ${ECHO} "HOSTNAME=${HOST}" >> ${CENTOSHOSTNAME} + ${ECHO} "Network restarting..." + /etc/init.d/network restart + ${SLEEP} 4 + else + #Ubuntu hostname change + /etc/init.d/hostname start + fi + + PUPPET=`which puppet` + PUPPETAGENT="${PUPPET} agent" + RUNPUPPET="${PUPPETAGENT} -vt" + + ${SLEEP} 5 + + ${PUPPETAGENT} --enable + + ${RUNPUPPET} + + ${PUPPETAGENT} --disable + ${ECHO} -e "Initialization completed successfully." + +fi + +# END http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/gce/init.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/gce/init.sh b/tools/init-scripts/gce/init.sh new file mode 100644 index 0000000..0ca816f --- /dev/null +++ b/tools/init-scripts/gce/init.sh @@ -0,0 +1,146 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- + +MKDIR=`which mkdir` +UNZIP=`which unzip` +ECHO=`which echo` +FIND=`which find` +GREP=`which grep` +RM=`which rm` +XARGS=`which xargs` +SED=`which sed` +CUT=`which cut` +AWK=`which awk` +IFCONFIG=`which ifconfig` +HOSTNAME=`which hostname` +SLEEP=`which sleep` +TR=`which tr` +HEAD=`which head` +WGET=`which wget` +PUPPETD=`which puppet` +AGENT="agent" +PUPPETAGENT="${PUPPETD} ${AGENT}" +CURL=`which curl` + +COMMAND="${PUPPETAGENT} -vt" +IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` +LOG=/tmp/puppet-init.log + +HOSTSFILE=/etc/hosts +HOSTNAMEFILE=/etc/hostname +PUPPETCONF=/etc/puppet/puppet.conf + +read_master() { + ${COMMAND} +} + + +is_public_ip_assigned() { + +while true +do + # Reading the internal ip assigned + ${CURL} "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip" \ + -H "Metadata-Flavor: Google" > public-ipv4 + if [ ! -f public-ipv4 ] + then + echo "Public ipv4 file not found. Sleep and retry" >> $LOG + sleep 2; + continue; + else + echo "public-ipv4 file is available. Read value" >> $LOG + # Here means file is available. Read the file + read -r ip<public-ipv4; + echo "value is **[$ip]** " >> $LOG + + if [ -z "$ip" ] + then + echo "File is empty. Retry...." >> $LOG + sleep 2 + rm public-ipv4 + continue + else + echo "public ip is assigned. value is [$ip]. Remove file" >> $LOG + rm public-ipv4 + break + fi + fi +done +} + + +DATE=`date +%d%m%y%S` +RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" + +if [ ! -d /tmp/payload ]; then + + ## Check whether the public ip is assigned + is_public_ip_assigned + + echo "Public ip have assigned. Continue.." >> $LOG + + ## Clean old poop + ${ECHO} "Removing all existing certificates .." + #${FIND} /var/lib/puppet -type f -print0 | ${XARGS} -0r ${RM} + + ${MKDIR} -p /tmp/payload + ${CURL} "http://metadata.google.internal/computeMetadata/v1/instance/attributes/stratos_usermetadata" \ + -H "Metadata-Flavor: Google" > /tmp/payload/launch-params + + cd /tmp/payload + SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` + DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` + INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` + PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` + PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` + PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` + NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" + #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs + DOMAIN="${PUPPET_HOSTNAME}" + ${ECHO} -e "\nNode Id ${NODEID}\n" + ${ECHO} -e "\nDomain ${DOMAIN}\n" + sed -i "s/server=.*/server=${PUPPET_HOSTNAME}/g" ${PUPPETCONF} + /etc/init.d/puppet restart + ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") + HOST="${NODEID}.${DOMAIN}" + ${HOSTNAME} ${HOST} + ${ECHO} "${HOST}" > ${HOSTNAMEFILE} + ${ECHO} "${PUPPET_IP} ${PUPPET_HOSTNAME}" >> ${HOSTSFILE} + ${ECHO} "127.0.0.1 ${HOST}" >> ${HOSTSFILE} + /etc/init.d/hostname start + + PUPPET=`which puppet` + PUPPETAGENT="${PUPPET} agent" + RUNPUPPET="${PUPPETAGENT} -vt" + + ${SLEEP} 5 + + ${PUPPETAGENT} --enable + + ${RUNPUPPET} + + ${PUPPETAGENT} --disable + ${ECHO} -e "Initialization completed successfully." + +fi + +# END + http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/init-gce.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/init-gce.sh b/tools/init-scripts/init-gce.sh deleted file mode 100644 index 0ca816f..0000000 --- a/tools/init-scripts/init-gce.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash -# -------------------------------------------------------------- -# -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# -------------------------------------------------------------- - -MKDIR=`which mkdir` -UNZIP=`which unzip` -ECHO=`which echo` -FIND=`which find` -GREP=`which grep` -RM=`which rm` -XARGS=`which xargs` -SED=`which sed` -CUT=`which cut` -AWK=`which awk` -IFCONFIG=`which ifconfig` -HOSTNAME=`which hostname` -SLEEP=`which sleep` -TR=`which tr` -HEAD=`which head` -WGET=`which wget` -PUPPETD=`which puppet` -AGENT="agent" -PUPPETAGENT="${PUPPETD} ${AGENT}" -CURL=`which curl` - -COMMAND="${PUPPETAGENT} -vt" -IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` -LOG=/tmp/puppet-init.log - -HOSTSFILE=/etc/hosts -HOSTNAMEFILE=/etc/hostname -PUPPETCONF=/etc/puppet/puppet.conf - -read_master() { - ${COMMAND} -} - - -is_public_ip_assigned() { - -while true -do - # Reading the internal ip assigned - ${CURL} "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip" \ - -H "Metadata-Flavor: Google" > public-ipv4 - if [ ! -f public-ipv4 ] - then - echo "Public ipv4 file not found. Sleep and retry" >> $LOG - sleep 2; - continue; - else - echo "public-ipv4 file is available. Read value" >> $LOG - # Here means file is available. Read the file - read -r ip<public-ipv4; - echo "value is **[$ip]** " >> $LOG - - if [ -z "$ip" ] - then - echo "File is empty. Retry...." >> $LOG - sleep 2 - rm public-ipv4 - continue - else - echo "public ip is assigned. value is [$ip]. Remove file" >> $LOG - rm public-ipv4 - break - fi - fi -done -} - - -DATE=`date +%d%m%y%S` -RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" - -if [ ! -d /tmp/payload ]; then - - ## Check whether the public ip is assigned - is_public_ip_assigned - - echo "Public ip have assigned. Continue.." >> $LOG - - ## Clean old poop - ${ECHO} "Removing all existing certificates .." - #${FIND} /var/lib/puppet -type f -print0 | ${XARGS} -0r ${RM} - - ${MKDIR} -p /tmp/payload - ${CURL} "http://metadata.google.internal/computeMetadata/v1/instance/attributes/stratos_usermetadata" \ - -H "Metadata-Flavor: Google" > /tmp/payload/launch-params - - cd /tmp/payload - SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` - DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` - INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` - PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` - PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` - PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` - NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" - #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs - DOMAIN="${PUPPET_HOSTNAME}" - ${ECHO} -e "\nNode Id ${NODEID}\n" - ${ECHO} -e "\nDomain ${DOMAIN}\n" - sed -i "s/server=.*/server=${PUPPET_HOSTNAME}/g" ${PUPPETCONF} - /etc/init.d/puppet restart - ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") - HOST="${NODEID}.${DOMAIN}" - ${HOSTNAME} ${HOST} - ${ECHO} "${HOST}" > ${HOSTNAMEFILE} - ${ECHO} "${PUPPET_IP} ${PUPPET_HOSTNAME}" >> ${HOSTSFILE} - ${ECHO} "127.0.0.1 ${HOST}" >> ${HOSTSFILE} - /etc/init.d/hostname start - - PUPPET=`which puppet` - PUPPETAGENT="${PUPPET} agent" - RUNPUPPET="${PUPPETAGENT} -vt" - - ${SLEEP} 5 - - ${PUPPETAGENT} --enable - - ${RUNPUPPET} - - ${PUPPETAGENT} --disable - ${ECHO} -e "Initialization completed successfully." - -fi - -# END - http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/init-vcloud.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/init-vcloud.sh b/tools/init-scripts/init-vcloud.sh deleted file mode 100755 index 168137a..0000000 --- a/tools/init-scripts/init-vcloud.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash -# -------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# -------------------------------------------------------------- - -MKDIR=`which mkdir` -UNZIP=`which unzip` -ECHO=`which echo` -FIND=`which find` -GREP=`which grep` -RM=`which rm` -XARGS=`which xargs` -SED=`which sed` -CUT=`which cut` -AWK=`which awk` -IFCONFIG=`which ifconfig` -HOSTNAME=`which hostname` -SLEEP=`which sleep` -TR=`which tr` -HEAD=`which head` -WGET=`which wget` -PUPPETD=`which puppet` -AGENT="agent" -PUPPETAGENT="${PUPPETD} ${AGENT}" - -COMMAND="${PUPPETAGENT} -vt" -IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` -LOG=/tmp/puppet-init.log - -HOSTSFILE=/etc/hosts -HOSTNAMEFILE=/etc/hostname -PUPPETCONF=/etc/puppet/puppet.conf - -read_master() { - ${COMMAND} -} - -DATE=`date +%d%m%y%S` -RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" - -if [ -d /tmp/payload ]; then - - cd /tmp/payload - SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` - DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` - INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` - PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` - PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` - PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` - NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" - #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs - DOMAIN="${PUPPET_HOSTNAME}" - ${ECHO} -e "\nNode Id ${NODEID}\n" - ${ECHO} -e "\nDomain ${DOMAIN}\n" - - ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") - ${ECHO} "\nRunning puppet installation with arguments: ${ARGS[@]}" - exec /root/bin/puppetinstall/puppetinstall "${ARGS[@]}" - -fi - -# END - http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/init.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/init.sh b/tools/init-scripts/init.sh deleted file mode 100755 index 6841808..0000000 --- a/tools/init-scripts/init.sh +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/bash -# -------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# -------------------------------------------------------------- - -MKDIR=`which mkdir` -UNZIP=`which unzip` -ECHO=`which echo` -FIND=`which find` -GREP=`which grep` -RM=`which rm` -XARGS=`which xargs` -SED=`which sed` -CUT=`which cut` -AWK=`which awk` -IFCONFIG=`which ifconfig` -HOSTNAME=`which hostname` -SLEEP=`which sleep` -TR=`which tr` -HEAD=`which head` -WGET=`which wget` -PUPPETD=`which puppet` -AGENT="agent" -PUPPETAGENT="${PUPPETD} ${AGENT}" -OS=$(lsb_release -si) -PUPPET_DNS_AVAILABLE=false - -COMMAND="${PUPPETAGENT} -vt" -IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` -LOG=/tmp/puppet-init.log - -HOSTSFILE=/etc/hosts -HOSTNAMEFILE=/etc/hostname -PUPPETCONF=/etc/puppet/puppet.conf - -read_master() { - ${COMMAND} -} - - -is_public_ip_assigned() { - -while true -do - wget http://169.254.169.254/latest/meta-data/public-ipv4 - if [ ! -f public-ipv4 ] - then - echo "Public ipv4 file not found. Sleep and retry" >> $LOG - sleep 2; - continue; - else - echo "public-ipv4 file is available. Read value" >> $LOG - # Here means file is available. Read the file - read -r ip<public-ipv4; - echo "value is **[$ip]** " >> $LOG - - if [ -z "$ip" ] - then - echo "File is empty. Retry...." >> $LOG - sleep 2 - rm public-ipv4 - continue - else - echo "public ip is assigned. value is [$ip]. Remove file" >> $LOG - rm public-ipv4 - break - fi - fi -done -} - - -DATE=`date +%d%m%y%S` -RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" - -if [ ! -d /tmp/payload ]; then - - ## Check whether the public ip is assigned - is_public_ip_assigned - - echo "Public ip have assigned. Continue.." >> $LOG - - ## Clean old poop - ${ECHO} "Removing all existing certificates .." - #${FIND} /var/lib/puppet -type f -print0 | ${XARGS} -0r ${RM} - - ${MKDIR} -p /tmp/payload - ${WGET} http://169.254.169.254/latest/user-data -O /tmp/payload/launch-params - - cd /tmp/payload - SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` - DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` - INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` - PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` - PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` - PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` - PUPPET_DNS_AVAILABLE=`sed 's/,/\n/g' launch-params | grep PUPPET_DNS_AVAILABLE | cut -d "=" -f 2` - - #If this property is not set, then set it as false - if [ -z $PUPPET_DNS_AVAILABLE ];then - PUPPET_DNS_AVAILABLE=false - fi - NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" - #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs - DOMAIN="${PUPPET_HOSTNAME}" - ${ECHO} -e "\nNode Id ${NODEID}\n" - ${ECHO} -e "\nDomain ${DOMAIN}\n" - sed -i "s/server=.*/server=${PUPPET_HOSTNAME}/g" ${PUPPETCONF} - /etc/init.d/puppet restart - ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") - HOST="${NODEID}.${DOMAIN}" - ${HOSTNAME} ${HOST} - ${ECHO} "${HOST}" > ${HOSTNAMEFILE} - if [ true != $PUPPET_DNS_AVAILABLE ] ; then - ${ECHO} "${PUPPET_IP} ${PUPPET_HOSTNAME}" >> ${HOSTSFILE} - fi - ${ECHO} "127.0.0.1 ${HOST}" >> ${HOSTSFILE} - - if [ "$OS" = "CentOS" ]; then - #CentOS hostname change - ${ECHO} "CentOS : Changing host name in /etc/sysconfig/network" - CENTOSHOSTNAME="/etc/sysconfig/network" - ${ECHO} "NETWORKING=yes" > ${CENTOSHOSTNAME} - ${ECHO} "HOSTNAME=${HOST}" >> ${CENTOSHOSTNAME} - ${ECHO} "Network restarting..." - /etc/init.d/network restart - ${SLEEP} 4 - else - #Ubuntu hostname change - /etc/init.d/hostname start - fi - - PUPPET=`which puppet` - PUPPETAGENT="${PUPPET} agent" - RUNPUPPET="${PUPPETAGENT} -vt" - - ${SLEEP} 5 - - ${PUPPETAGENT} --enable - - ${RUNPUPPET} - - ${PUPPETAGENT} --disable - ${ECHO} -e "Initialization completed successfully." - -fi - -# END http://git-wip-us.apache.org/repos/asf/stratos/blob/14519477/tools/init-scripts/vcloud/init.sh ---------------------------------------------------------------------- diff --git a/tools/init-scripts/vcloud/init.sh b/tools/init-scripts/vcloud/init.sh new file mode 100755 index 0000000..168137a --- /dev/null +++ b/tools/init-scripts/vcloud/init.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- + +MKDIR=`which mkdir` +UNZIP=`which unzip` +ECHO=`which echo` +FIND=`which find` +GREP=`which grep` +RM=`which rm` +XARGS=`which xargs` +SED=`which sed` +CUT=`which cut` +AWK=`which awk` +IFCONFIG=`which ifconfig` +HOSTNAME=`which hostname` +SLEEP=`which sleep` +TR=`which tr` +HEAD=`which head` +WGET=`which wget` +PUPPETD=`which puppet` +AGENT="agent" +PUPPETAGENT="${PUPPETD} ${AGENT}" + +COMMAND="${PUPPETAGENT} -vt" +IP=`${IFCONFIG} eth0 | ${GREP} -e "inet addr" | ${AWK} '{print $2}' | ${CUT} -d ':' -f 2` +LOG=/tmp/puppet-init.log + +HOSTSFILE=/etc/hosts +HOSTNAMEFILE=/etc/hostname +PUPPETCONF=/etc/puppet/puppet.conf + +read_master() { + ${COMMAND} +} + +DATE=`date +%d%m%y%S` +RANDOMNUMBER="`${TR} -c -d 0-9 < /dev/urandom | ${HEAD} -c 4`${DATE}" + +if [ -d /tmp/payload ]; then + + cd /tmp/payload + SERVICE_NAME=`sed 's/,/\n/g' launch-params | grep SERVICE_NAME | cut -d "=" -f 2` + DEPLOYMENT=`sed 's/,/\n/g' launch-params | grep DEPLOYMENT | cut -d "=" -f 2` + INSTANCE_HOSTNAME=`sed 's/,/\n/g' launch-params | grep HOSTNAME | cut -d "=" -f 2` + PUPPET_IP=`sed 's/,/\n/g' launch-params | grep PUPPET_IP | cut -d "=" -f 2` + PUPPET_HOSTNAME=`sed 's/,/\n/g' launch-params | grep PUPPET_HOSTNAME | cut -d "=" -f 2` + PUPPET_ENV=`sed 's/,/\n/g' launch-params | grep PUPPET_ENV | cut -d "=" -f 2` + NODEID="${RANDOMNUMBER}.${DEPLOYMENT}.${SERVICE_NAME}" + #essential to have PUPPET_HOSTNAME at the end in order to auto-sign the certs + DOMAIN="${PUPPET_HOSTNAME}" + ${ECHO} -e "\nNode Id ${NODEID}\n" + ${ECHO} -e "\nDomain ${DOMAIN}\n" + + ARGS=("-n${NODEID}" "-d${DOMAIN}" "-s${PUPPET_IP}") + ${ECHO} "\nRunning puppet installation with arguments: ${ARGS[@]}" + exec /root/bin/puppetinstall/puppetinstall "${ARGS[@]}" + +fi + +# END +
