summaryrefslogtreecommitdiff
path: root/google-startup-scripts/usr/share/google/first-boot
diff options
context:
space:
mode:
authorZach Marano <zmarano@google.com>2016-04-29 11:24:50 -0700
committerZach Marano <zmarano@google.com>2016-04-29 11:24:50 -0700
commit445ce2c4ef67b599b28fbc35888b4f2865812443 (patch)
tree7e0f09b49e3e646dfe83e805428649983ba47bdb /google-startup-scripts/usr/share/google/first-boot
parent827c16e068ecb768abd722d0946c39e4cadd7157 (diff)
downloadgoogle-compute-image-packages-445ce2c4ef67b599b28fbc35888b4f2865812443.tar.gz
Create development branch.
Diffstat (limited to 'google-startup-scripts/usr/share/google/first-boot')
-rwxr-xr-xgoogle-startup-scripts/usr/share/google/first-boot94
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}