mirror of
https://github.com/rancher/os.git
synced 2025-08-12 03:52:37 +00:00
add scripts/run --openstack, and use the iso if --cloud-config file.iso
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
This commit is contained in:
parent
ecdd081c27
commit
d4ae014f76
8
Makefile
8
Makefile
@ -1,4 +1,4 @@
|
|||||||
TARGETS := $(shell ls scripts | grep -vE 'clean|run|help|docs')
|
TARGETS := $(shell ls scripts | grep -vE 'clean|run|help|docs|release')
|
||||||
|
|
||||||
.dapper:
|
.dapper:
|
||||||
@echo Downloading dapper
|
@echo Downloading dapper
|
||||||
@ -34,12 +34,18 @@ shell-bind: .dapper
|
|||||||
clean:
|
clean:
|
||||||
@./scripts/clean
|
@./scripts/clean
|
||||||
|
|
||||||
|
release: release-build openstack
|
||||||
|
|
||||||
|
release-build:
|
||||||
|
./.dapper release
|
||||||
|
|
||||||
itest:
|
itest:
|
||||||
./.dapper integration-test 2>&1 | tee dist/itest.log
|
./.dapper integration-test 2>&1 | tee dist/itest.log
|
||||||
|
|
||||||
openstack:
|
openstack:
|
||||||
cp dist/artifacts/rancheros.iso scripts/images/openstack/
|
cp dist/artifacts/rancheros.iso scripts/images/openstack/
|
||||||
cd scripts/images/openstack && ../../../.dapper
|
cd scripts/images/openstack && ../../../.dapper
|
||||||
|
cp ./scripts/images/openstack/dist/*.img dist/
|
||||||
|
|
||||||
openstack-run:
|
openstack-run:
|
||||||
qemu-system-x86_64 -curses \
|
qemu-system-x86_64 -curses \
|
||||||
|
@ -62,10 +62,12 @@ func Main() {
|
|||||||
func SaveCloudConfig() error {
|
func SaveCloudConfig() error {
|
||||||
log.Debugf("SaveCloudConfig")
|
log.Debugf("SaveCloudConfig")
|
||||||
|
|
||||||
|
// TODO: can't run these here, but it needs to be triggered from here :()
|
||||||
cfg := rancherConfig.LoadConfig()
|
cfg := rancherConfig.LoadConfig()
|
||||||
log.Debugf("init: SaveCloudConfig(pre ApplyNetworkConfig): %#v", cfg.Rancher.Network)
|
log.Debugf("init: SaveCloudConfig(pre ApplyNetworkConfig): %#v", cfg.Rancher.Network)
|
||||||
network.ApplyNetworkConfig(cfg)
|
network.ApplyNetworkConfig(cfg)
|
||||||
|
|
||||||
|
log.Debugf("datasources that will be consided: %#v", cfg.Rancher.CloudInit.Datasources)
|
||||||
dss := getDatasources(cfg)
|
dss := getDatasources(cfg)
|
||||||
if len(dss) == 0 {
|
if len(dss) == 0 {
|
||||||
log.Errorf("currentDatasource - none found")
|
log.Errorf("currentDatasource - none found")
|
||||||
@ -74,6 +76,7 @@ func SaveCloudConfig() error {
|
|||||||
|
|
||||||
selectDatasource(dss)
|
selectDatasource(dss)
|
||||||
|
|
||||||
|
// TODO: can't run these here, but it needs to be triggered from here :()
|
||||||
// Apply any newly detected network config.
|
// Apply any newly detected network config.
|
||||||
cfg = rancherConfig.LoadConfig()
|
cfg = rancherConfig.LoadConfig()
|
||||||
log.Debugf("init: SaveCloudConfig(post ApplyNetworkConfig): %#v", cfg.Rancher.Network)
|
log.Debugf("init: SaveCloudConfig(post ApplyNetworkConfig): %#v", cfg.Rancher.Network)
|
||||||
|
@ -3,3 +3,4 @@ set -e
|
|||||||
|
|
||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
rm -rf build dist bin images/*/build state
|
rm -rf build dist bin images/*/build state
|
||||||
|
rm -rf ./scripts/images/openstack/dist
|
||||||
|
87
scripts/run
87
scripts/run
@ -25,6 +25,9 @@ while [ "$#" -gt 0 ]; do
|
|||||||
--pxe)
|
--pxe)
|
||||||
BOOT_PXE=1
|
BOOT_PXE=1
|
||||||
;;
|
;;
|
||||||
|
--openstack)
|
||||||
|
USE_OPENSTACK_IMG=1
|
||||||
|
;;
|
||||||
--append)
|
--append)
|
||||||
shift 1
|
shift 1
|
||||||
QEMU_APPEND="${QEMU_APPEND} $1"
|
QEMU_APPEND="${QEMU_APPEND} $1"
|
||||||
@ -152,16 +155,24 @@ if [ "$QEMU" == "1" ] || [ "$BOOT_ISO" == "1" ] || [ "$BOOT_HD" == "1" ]; then
|
|||||||
|
|
||||||
if [ ! -e ${HD} ]; then
|
if [ ! -e ${HD} ]; then
|
||||||
mkdir -p $(dirname ${HD})
|
mkdir -p $(dirname ${HD})
|
||||||
if [ ¨$INSTALLED¨ == ¨1¨ ]; then
|
if [ "$USE_OPENSTACK_IMG" == "1" ]; then
|
||||||
./scripts/create-installed
|
if [ ! -e "dist/rancheros-openstack.img" ]; then
|
||||||
|
echo "please build the open stack image first (run make release)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cp dist/rancheros-openstack.img $HD
|
||||||
else
|
else
|
||||||
if [ "$AUTOFORMAT" == "1" ]; then
|
if [ ¨$INSTALLED¨ == ¨1¨ ]; then
|
||||||
echo "boot2docker, please format-me" | cat - /dev/zero | head -c 5242880 > format-flag.txt # 5M
|
./scripts/create-installed
|
||||||
qemu-img convert -f raw format-flag.txt -O qcow2 ${HD}
|
else
|
||||||
qemu-img resize ${HD} +10GB
|
if [ "$AUTOFORMAT" == "1" ]; then
|
||||||
else
|
echo "boot2docker, please format-me" | cat - /dev/zero | head -c 5242880 > format-flag.txt # 5M
|
||||||
qemu-img create -f qcow2 -o size=10G ${HD}
|
qemu-img convert -f raw format-flag.txt -O qcow2 ${HD}
|
||||||
fi
|
qemu-img resize ${HD} +10GB
|
||||||
|
else
|
||||||
|
qemu-img create -f qcow2 -o size=10G ${HD}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -180,34 +191,38 @@ if [ "$QIND" != "1" ]; then
|
|||||||
CPU="-cpu host"
|
CPU="-cpu host"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CCROOT=${BUILD}/cloud-config
|
if [[ "${CLOUD_CONFIG}" == *".iso" ]]; then
|
||||||
rm -rf ${CCROOT}
|
CLOUD_CONFIG_DISK="-cdrom ${CLOUD_CONFIG}"
|
||||||
mkdir -p ${CCROOT}
|
|
||||||
|
|
||||||
USER_DATA=${CCROOT}/openstack/latest/user_data
|
|
||||||
mkdir -p $(dirname ${USER_DATA})
|
|
||||||
rm -f ${USER_DATA} || :
|
|
||||||
if [ -n "$CLOUD_CONFIG" ]; then
|
|
||||||
cat ${CLOUD_CONFIG} > ${USER_DATA}
|
|
||||||
else
|
else
|
||||||
echo "#cloud-config" > ${USER_DATA}
|
CCROOT=${BUILD}/cloud-config
|
||||||
echo "ssh_authorized_keys:" >> ${USER_DATA}
|
rm -rf ${CCROOT}
|
||||||
echo "- $(<${BASE}/assets/rancher.key.pub)" >> ${USER_DATA}
|
mkdir -p ${CCROOT}
|
||||||
|
|
||||||
|
USER_DATA=${CCROOT}/openstack/latest/user_data
|
||||||
|
mkdir -p $(dirname ${USER_DATA})
|
||||||
|
rm -f ${USER_DATA} || :
|
||||||
|
if [ -n "$CLOUD_CONFIG" ]; then
|
||||||
|
cat ${CLOUD_CONFIG} > ${USER_DATA}
|
||||||
|
else
|
||||||
|
echo "#cloud-config" > ${USER_DATA}
|
||||||
|
echo "ssh_authorized_keys:" >> ${USER_DATA}
|
||||||
|
echo "- $(<${BASE}/assets/rancher.key.pub)" >> ${USER_DATA}
|
||||||
|
fi
|
||||||
|
case $CLOUD_CONFIG_FORMAT in
|
||||||
|
iso)
|
||||||
|
mkisofs -R -V config-2 -o ${BASE}/state/configdrive.iso ${CCROOT}
|
||||||
|
CLOUD_CONFIG_DISK="-cdrom ${BASE}/state/configdrive.iso"
|
||||||
|
;;
|
||||||
|
fat)
|
||||||
|
echo "TODO: implement a vfat formated qemu img & copy the config files into it"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
CLOUD_CONFIG_DISK="-fsdev local,security_model=passthrough,readonly,id=fsdev0,path=${CCROOT} \
|
||||||
|
-device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=config-2"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
case $CLOUD_CONFIG_FORMAT in
|
|
||||||
iso)
|
|
||||||
mkisofs -R -V config-2 -o ${BASE}/state/configdrive.iso ${CCROOT}
|
|
||||||
CLOUD_CONFIG_DISK="-cdrom ${BASE}/state/configdrive.iso"
|
|
||||||
;;
|
|
||||||
fat)
|
|
||||||
echo "TODO: implement a vfat formated qemu img & copy the config files into it"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
CLOUD_CONFIG_DISK="-fsdev local,security_model=passthrough,readonly,id=fsdev0,path=${CCROOT} \
|
|
||||||
-device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=config-2"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
HOME=${HOME:-/}
|
HOME=${HOME:-/}
|
||||||
fi
|
fi
|
||||||
@ -251,7 +266,6 @@ elif [ "$BOOT_ISO" == "1" ] ||
|
|||||||
[ "$BOOT_HD" == "1" ]; then
|
[ "$BOOT_HD" == "1" ]; then
|
||||||
if [ "$BOOT_ISO" == "1" ]; then
|
if [ "$BOOT_ISO" == "1" ]; then
|
||||||
ISO_OPTS="-boot d -cdrom ./dist/artifacts/rancheros.iso \
|
ISO_OPTS="-boot d -cdrom ./dist/artifacts/rancheros.iso \
|
||||||
${CLOUD_CONFIG_DISK} \
|
|
||||||
-fsdev local,security_model=none,id=fsdev1,path=${HOME} \
|
-fsdev local,security_model=none,id=fsdev1,path=${HOME} \
|
||||||
-device virtio-9p-pci,id=fs1,fsdev=fsdev1,mount_tag=home "
|
-device virtio-9p-pci,id=fs1,fsdev=fsdev1,mount_tag=home "
|
||||||
echo "----- $ISO_OPTS"
|
echo "----- $ISO_OPTS"
|
||||||
@ -259,6 +273,7 @@ elif [ "$BOOT_ISO" == "1" ] ||
|
|||||||
set -x
|
set -x
|
||||||
exec qemu-system-${QEMUARCH} \
|
exec qemu-system-${QEMUARCH} \
|
||||||
${DISPLAY_OPTS} \
|
${DISPLAY_OPTS} \
|
||||||
|
${CLOUD_CONFIG_DISK} \
|
||||||
-rtc base=utc,clock=host \
|
-rtc base=utc,clock=host \
|
||||||
${KVM_ENABLE} \
|
${KVM_ENABLE} \
|
||||||
${CPU} \
|
${CPU} \
|
||||||
|
Loading…
Reference in New Issue
Block a user