diff options
author | Zach Marano <zmarano@google.com> | 2016-04-29 11:24:50 -0700 |
---|---|---|
committer | Zach Marano <zmarano@google.com> | 2016-04-29 11:24:50 -0700 |
commit | 445ce2c4ef67b599b28fbc35888b4f2865812443 (patch) | |
tree | 7e0f09b49e3e646dfe83e805428649983ba47bdb /google-startup-scripts/usr/share/google/first-boot | |
parent | 827c16e068ecb768abd722d0946c39e4cadd7157 (diff) | |
download | google-compute-image-packages-445ce2c4ef67b599b28fbc35888b4f2865812443.tar.gz |
Create development branch.
Diffstat (limited to 'google-startup-scripts/usr/share/google/first-boot')
-rwxr-xr-x | google-startup-scripts/usr/share/google/first-boot | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/google-startup-scripts/usr/share/google/first-boot b/google-startup-scripts/usr/share/google/first-boot deleted file mode 100755 index b346b65..0000000 --- a/google-startup-scripts/usr/share/google/first-boot +++ /dev/null @@ -1,94 +0,0 @@ -#! /bin/bash -# Copyright 2013 Google Inc. All Rights Reserved. -# -# Licensed 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. - -# Run initialization code the first time this image boots on a given instance. - -declare -r INSTANCE_FILE=${PREFIX}/var/lib/google/vm-instance-id -declare -r LOCK_FILE=${INSTANCE_FILE}.lock - -mkdir -p ${PREFIX}/var/lib/google/per-instance - -function log() { - if [[ -x ${PREFIX}/usr/bin/logger ]]; then - echo $* | ${PREFIX}/usr/bin/logger -t first-boot -p auth.info - else - echo $* >&2 - fi -} - -function get_instance_id() { - ${PREFIX}/usr/share/google/get_metadata_value id 2>/dev/null -} - -# Checks the instance id has changed. -# Exits with return code 0 if the instance id hasn't changed. -function check_stored_instance_id() { - local readonly instance_id=$1 - - if [[ "${instance_id}" == "" ]]; then - # Cannot determine instance id. Either we're not running on a Compute VM, - # or networking hasn't started up yet, etc. - exit 1 - fi - - if [[ "${instance_id}" != "unknown-instance" && - "${instance_id}" == "$(cat ${INSTANCE_FILE} 2>/dev/null)" ]]; then - # Instance id is same as on disk. - exit 1 - fi -} - -# Performs host key setup if the instance has changed. -# Otherwise we exit with a non-zero return code. -function manage_stored_instance_id() { - local readonly instance_id=$1 - - # Create a subshell to manage the lock file. The file lock is released - # when the subshell exits. - ( - # Open LOCK_FILE on FD 200 and lock it. This prevents concurrent calls - # to regenerate host keys that spam console output. - flock -e 200 - - # Checks whether the instance has changed. - # If the instance hasn't changed, exit the script. - check_stored_instance_id ${instance_id} - - # If the instance hasn't changed, we have now exited the subshell. - # Since the instance changed, we do host key regeneration. - log "Running first-boot" - - # Regenerate host keys for ssh. - if [[ -x ${PREFIX}/usr/share/google/regenerate-host-keys ]]; then - ${PREFIX}/usr/share/google/regenerate-host-keys - fi - - # We are booting this instance for the first time. - echo ${instance_id} > ${INSTANCE_FILE} - ) 200> ${LOCK_FILE} - - return $? -} - -declare -r INSTANCE_ID=$(get_instance_id) - -manage_stored_instance_id ${INSTANCE_ID} -if [[ $? != 0 ]]; then - # The instance hasn't changed so exit. - exit 0 -fi - -# Make a per-instance data directory. -mkdir -p ${PREFIX}/var/lib/google/per-instance/${INSTANCE_ID} |