From 3511343f463b64847af6b563ef61776248fb8ebb Mon Sep 17 00:00:00 2001 From: Ivan Mikushin Date: Tue, 28 Apr 2015 00:07:20 +0500 Subject: [PATCH 1/4] ./scripts/run: provision tmp/cloud-config.yml as cloud-config --- .gitignore | 1 + scripts/run | 18 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index f7bb8f07..5ec6b670 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/tmp /assets /state /bin diff --git a/scripts/run b/scripts/run index a49d8186..ddc8d319 100755 --- a/scripts/run +++ b/scripts/run @@ -56,13 +56,17 @@ fi mkdir -p $(dirname $USER_DATA) -echo "#cloud-config" > ${USER_DATA} -echo "ssh_authorized_keys:" >> ${USER_DATA} -for i in ${HOME}/.ssh/*.pub; do - if [ -e $i ]; then - echo " - $(<$i)" >> ${USER_DATA} - fi -done +if [ -e ../../tmp/cloud-config.yml ]; then + cat ../../tmp/cloud-config.yml > ${USER_DATA} +else + echo "#cloud-config" > ${USER_DATA} + echo "ssh_authorized_keys:" >> ${USER_DATA} + for i in ${HOME}/.ssh/*.pub; do + if [ -e $i ]; then + echo " - $(<$i)" >> ${USER_DATA} + fi + done +fi while [ "$#" -gt 0 ]; do case $1 in From c5676987a94f8a27768054b952935d7eda54534d Mon Sep 17 00:00:00 2001 From: Ivan Mikushin Date: Wed, 29 Apr 2015 10:50:21 +0500 Subject: [PATCH 2/4] use an arg instead of a magic location for a user supplied cloud-config --- scripts/run | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/run b/scripts/run index ddc8d319..e2d80f8c 100755 --- a/scripts/run +++ b/scripts/run @@ -17,6 +17,7 @@ INITRD_TMP=${BUILD}/$(sha1sum ${INITRD} | awk '{print $1}') INITRD_CURRENT=${BUILD}/initrd-current INITRD_TEST=${BUILD}/initrd.test USER_DATA=cloud-init/openstack/latest/user_data +CLOUD_CONFIG=$(readlink -f "$1") || : if [[ ! -e ${KERNEL} || ! -e ${INITRD} ]]; then echo "Failed to find ${KERNEL} or ${INITRD}" 1>&2 @@ -56,8 +57,8 @@ fi mkdir -p $(dirname $USER_DATA) -if [ -e ../../tmp/cloud-config.yml ]; then - cat ../../tmp/cloud-config.yml > ${USER_DATA} +if [ -n "$CLOUD_CONFIG" ]; then + cat ${CLOUD_CONFIG} > ${USER_DATA} else echo "#cloud-config" > ${USER_DATA} echo "ssh_authorized_keys:" >> ${USER_DATA} From 3a5f2bcb9bed4f3173699847344d0497e37e0541 Mon Sep 17 00:00:00 2001 From: Ivan Mikushin Date: Wed, 29 Apr 2015 11:38:04 +0500 Subject: [PATCH 3/4] fix arg use conflict: add --cloud-config parameter --- scripts/run | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/scripts/run b/scripts/run index e2d80f8c..fce1e5ec 100755 --- a/scripts/run +++ b/scripts/run @@ -17,7 +17,27 @@ INITRD_TMP=${BUILD}/$(sha1sum ${INITRD} | awk '{print $1}') INITRD_CURRENT=${BUILD}/initrd-current INITRD_TEST=${BUILD}/initrd.test USER_DATA=cloud-init/openstack/latest/user_data -CLOUD_CONFIG=$(readlink -f "$1") || : + +while [ "$#" -gt 0 ]; do + case $1 in + --append) + shift 1 + QEMU_APPEND="${QEMU_APPEND} $1" + ;; + --cloud-config) + shift 1 + CLOUD_CONFIG=$(readlink -f "$1") || : + if [ ! -f ${CLOUD_CONFIG} ]; then + echo No such file: "'"${CLOUD_CONFIG}"'" 1>&2 + exit 1 + fi + ;; + *) + break + ;; + esac + shift 1 +done if [[ ! -e ${KERNEL} || ! -e ${INITRD} ]]; then echo "Failed to find ${KERNEL} or ${INITRD}" 1>&2 @@ -69,19 +89,6 @@ else done fi -while [ "$#" -gt 0 ]; do - case $1 in - --append) - shift 1 - QEMU_APPEND="${QEMU_APPEND} $1" - ;; - *) - break - ;; - esac - shift 1 -done - qemu-system-x86_64 -serial stdio \ -kernel ${KERNEL} \ -initrd ${INITRD_TEST} \ From 3fb991063c31609d9edcd69a5f839cb3c24644fd Mon Sep 17 00:00:00 2001 From: Ivan Mikushin Date: Wed, 29 Apr 2015 12:53:44 +0500 Subject: [PATCH 4/4] revert .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5ec6b670..f7bb8f07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -/tmp /assets /state /bin