X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=mcp%2Fscripts%2Fcreate-config-drive.sh;h=4b22b27aee4e317eeb3e803cfad10bffa3bc0969;hb=e2bbc14187ddc65b1b54762a4cebcb48cba38bf0;hp=df3f72f1f1d9adbf689dabd07c3131e92cda6986;hpb=e49e91d7aa740437c01e6531ef648d2dae97c11d;p=fuel.git diff --git a/mcp/scripts/create-config-drive.sh b/mcp/scripts/create-config-drive.sh index df3f72f1f..4b22b27ae 100755 --- a/mcp/scripts/create-config-drive.sh +++ b/mcp/scripts/create-config-drive.sh @@ -1,19 +1,29 @@ -#!/bin/bash +#!/bin/bash -e +############################################################################## +# Copyright (c) 2017 Mirantis Inc. and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## # This will generate a openstack-style config drive image suitable for # use with cloud-init. You may optionally pass in an ssh public key # (using the -k/--ssh-key option) and a user-data blog (using the # -u/--user-data option). +CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x + usage () { echo "usage: ${0##*/}: [--ssh-key ] [--vendor-data ] [--user-data ] [--hostname ] " } ARGS=$(getopt \ -o k:u:v:h: \ - --long help,hostname:,ssh-key:,user-data:,vendor-data: -n ${0##*/} \ + --long help,hostname:,ssh-key:,user-data:,vendor-data: -n "${0##*/}" \ -- "$@") +# shellcheck disable=SC2181 if [ $? -ne 0 ]; then usage >&2 exit 2 @@ -52,51 +62,51 @@ done config_image=$1 shift -if [ "$ssh_key" ] && [ -f "$ssh_key" ]; then - echo "adding pubkey from $ssh_key" - ssh_key_data=$(cat "$ssh_key") +if [ "${ssh_key}" ] && [ -f "${ssh_key}" ]; then + echo "adding pubkey from ${ssh_key}" + ssh_key_data=$(cat "${ssh_key}") fi uuid=$(uuidgen) -if ! [ "$hostname" ]; then - hostname="$uuid" +if ! [ "${hostname}" ]; then + hostname="${uuid}" fi trap 'rm -rf $config_dir' EXIT config_dir=$(mktemp -t -d configXXXXXX) -if [ "$user_data" ] && [ -f "$user_data" ]; then - echo "adding user data from $user_data" - cp ${user_data} ${config_dir}/user-data +if [ "${user_data}" ] && [ -f "${user_data}" ]; then + echo "adding user data from ${user_data}" + cp "${user_data}" "${config_dir}/user-data" else - touch $config_dir/user-data + touch "${config_dir}/user-data" fi -if [ "$vendor_data" ] && [ -f "$vendor_data" ]; then - echo "adding vendor data from $vendor_data" - cp ${vendor_data} ${config_dir}/vendor-data +if [ "${vendor_data}" ] && [ -f "${vendor_data}" ]; then + echo "adding vendor data from ${vendor_data}" + cp "${vendor_data}" "${config_dir}/vendor-data" fi -cat > $config_dir/meta-data <<-EOF -instance-id: $uuid -hostname: $hostname -local-hostname: $hostname +cat > "${config_dir}/meta-data" <<-EOF +instance-id: ${uuid} +hostname: ${hostname} +local-hostname: ${hostname} EOF -if [ "$ssh_key_data" ]; then - cat >> $config_dir/meta-data <<-EOF +if [ "${ssh_key_data}" ]; then + cat >> "${config_dir}/meta-data" <<-EOF public-keys: - | - $ssh_key_data + ${ssh_key_data} EOF fi #PS1="debug> " bash --norc -echo "generating configuration image at $config_image" -if ! mkisofs -o $config_image -V cidata -r -J --quiet $config_dir; then - echo "ERROR: failed to create $config_image" >&2 +echo "generating configuration image at ${config_image}" +if ! mkisofs -o "${config_image}" -V cidata -r -J --quiet "${config_dir}"; then + echo "ERROR: failed to create ${config_image}" >&2 exit 1 fi -chmod a+r $config_image +chmod a+r "${config_image}"