Revision 3822d893
b/Makefile.am | ||
---|---|---|
11 | 11 |
toolsdir=$(osdir)/$(osname)/tools |
12 | 12 |
|
13 | 13 |
dist_os_SCRIPTS = ${srcdir}/create ${srcdir}/import ${srcdir}/export ${srcdir}/rename ${srcdir}/verify |
14 |
dist_tools_SCRIPTS = ${srcdir}/tools/*
|
|
14 |
dist_tools_SCRIPTS = ${srcdir}/tools/snf-passtohash.py
|
|
15 | 15 |
dist_os_DATA = ${srcdir}/ganeti_api_version ${srcdir}/parameters.list ${srcdir}/common_linux.sh ${srcdir}/common_windows.sh |
16 | 16 |
if WINSUPPORT |
17 | 17 |
dist_os_DATA += ${srcdir}/unattend.xml |
18 | 18 |
endif |
19 | 19 |
dist_config_DATA = variants.list |
20 | 20 |
os_DATA = common.sh |
21 |
tools_SCRIPTS = tools/make-dump tools/make-qemu-img tools/mount-disks tools/umount-disks |
|
21 | 22 |
|
22 | 23 |
dist_linuxcustom_DATA = ${srcdir}/example/hooks/linux/* |
23 | 24 |
if WINSUPPORT |
... | ... | |
46 | 47 |
-e 's|@INSTALL_MBR[@]|$(INSTALL_MBR)|g' |
47 | 48 |
|
48 | 49 |
|
49 |
common.sh: $(srcdir)/common.sh.in Makefile |
|
50 |
tools_builddir: |
|
51 |
@mkdir_p@ tools |
|
52 |
|
|
53 |
$(tools_SCRIPTS) common.sh: Makefile |
|
50 | 54 |
rm -f $@ $@.tmp |
51 | 55 |
srcdir=''; \ |
52 | 56 |
test -f ./$@.in || srcdir=$(srcdir)/; \ |
53 | 57 |
$(edit) $${srcdir}$@.in >$@.tmp |
54 | 58 |
mv $@.tmp $@ |
55 | 59 |
|
60 |
common.sh: $(srcdir)/common.sh.in |
|
61 |
tools/make-dump: $(srcdir)/tools/make-dump.in tools_builddir |
|
62 |
tools/make-qemu-img: $(srcdir)/tools/make-qemu-img.in tools_builddir |
|
63 |
tools/mount-disks: $(srcdir)/tools/mount-disks.in tools_builddir |
|
64 |
tools/umount-disks: $(srcdir)/tools/umount-disks.in tools_builddir |
|
65 |
|
|
56 | 66 |
install-exec-local: |
57 | 67 |
@mkdir_p@ "$(DESTDIR)$(osdir)/$(osname)" |
58 | 68 |
@mkdir_p@ "$(DESTDIR)$(variantsdir)" |
... | ... | |
63 | 73 |
touch "$(DESTDIR)$(variantsdir)/default.conf" |
64 | 74 |
ln -fs $(DESTDIR)$(configdir)/variants.list $(DESTDIR)$(osdir)/variants.list |
65 | 75 |
|
66 |
CLEANFILES = common.sh |
|
76 |
CLEANFILES = $(os_DATA) $(tools_SCRIPTS) |
/dev/null | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
INSTANCE_NAME="$1" |
|
4 |
|
|
5 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
6 |
echo "Must provide a node name!" |
|
7 |
exit 1 |
|
8 |
fi |
|
9 |
|
|
10 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
11 |
OS_VARIANT="${info[0]/*+/}" |
|
12 |
HYPERVISOR="${info[1]}" |
|
13 |
DISK_COUNT="${info[2]}" |
|
14 |
OS_API_VERSION="15" |
|
15 |
|
|
16 |
# do stuff |
|
17 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
18 |
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME") |
|
19 |
|
|
20 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
21 |
|
|
22 |
. /usr/share/ganeti/os/image/common.sh |
|
23 |
|
|
24 |
if [ -n "$2" ] ; then |
|
25 |
IMAGE_DIR=$2 |
|
26 |
fi |
|
27 |
|
|
28 |
filesystem_dev=$(map_disk0 $blockdev) |
|
29 |
CLEANUP+=("unmap_disk0 $blockdev") |
|
30 |
root_dev=$(map_partition $filesystem_dev root) |
|
31 |
boot_dev=$(map_partition $filesystem_dev boot) |
|
32 |
|
|
33 |
if [ -n "$boot_dev" ] ; then |
|
34 |
echo "Creating dump from $INSTANCE_NAME for boot at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump" |
|
35 |
dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump $boot_dev |
|
36 |
fi |
|
37 |
|
|
38 |
echo "Creating dump from $INSTANCE_NAME for root at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump" |
|
39 |
dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump $root_dev |
b/tools/make-dump.in | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
INSTANCE_NAME="$1" |
|
4 |
|
|
5 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
6 |
echo "Must provide a node name!" |
|
7 |
exit 1 |
|
8 |
fi |
|
9 |
|
|
10 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
11 |
OS_VARIANT="${info[0]/*+/}" |
|
12 |
HYPERVISOR="${info[1]}" |
|
13 |
DISK_COUNT="${info[2]}" |
|
14 |
OS_API_VERSION="15" |
|
15 |
|
|
16 |
# do stuff |
|
17 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
18 |
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME") |
|
19 |
|
|
20 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
21 |
|
|
22 |
. @osdir@/@osname@/common.sh |
|
23 |
|
|
24 |
if [ -n "$2" ] ; then |
|
25 |
IMAGE_DIR=$2 |
|
26 |
fi |
|
27 |
|
|
28 |
filesystem_dev=$(map_disk0 $blockdev) |
|
29 |
CLEANUP+=("unmap_disk0 $blockdev") |
|
30 |
root_dev=$(map_partition $filesystem_dev root) |
|
31 |
boot_dev=$(map_partition $filesystem_dev boot) |
|
32 |
|
|
33 |
if [ -n "$boot_dev" ] ; then |
|
34 |
echo "Creating dump from $INSTANCE_NAME for boot at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump" |
|
35 |
dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump $boot_dev |
|
36 |
fi |
|
37 |
|
|
38 |
echo "Creating dump from $INSTANCE_NAME for root at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump" |
|
39 |
dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump $root_dev |
/dev/null | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
INSTANCE_NAME="$1" |
|
4 |
|
|
5 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
6 |
echo "Must provide a node name!" |
|
7 |
exit 1 |
|
8 |
fi |
|
9 |
|
|
10 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
11 |
OS_VARIANT="${info[0]/*+/}" |
|
12 |
HYPERVISOR="${info[1]}" |
|
13 |
DISK_COUNT="${info[2]}" |
|
14 |
OS_API_VERSION="15" |
|
15 |
|
|
16 |
# do stuff |
|
17 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
18 |
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME") |
|
19 |
|
|
20 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
21 |
|
|
22 |
. /usr/share/ganeti/os/image/common.sh |
|
23 |
|
|
24 |
if [ -n "$2" ] ; then |
|
25 |
IMAGE_DIR=$2 |
|
26 |
fi |
|
27 |
|
|
28 |
echo "Creating qemu-img image from $INSTANCE_NAME to ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img" |
|
29 |
$QEMU_IMG convert -O qcow2 $DISK_0_PATH ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img |
b/tools/make-qemu-img.in | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
INSTANCE_NAME="$1" |
|
4 |
|
|
5 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
6 |
echo "Must provide a node name!" |
|
7 |
exit 1 |
|
8 |
fi |
|
9 |
|
|
10 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
11 |
OS_VARIANT="${info[0]/*+/}" |
|
12 |
HYPERVISOR="${info[1]}" |
|
13 |
DISK_COUNT="${info[2]}" |
|
14 |
OS_API_VERSION="15" |
|
15 |
|
|
16 |
# do stuff |
|
17 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
18 |
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME") |
|
19 |
|
|
20 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
21 |
|
|
22 |
. @osdir@/@osname@/common.sh |
|
23 |
|
|
24 |
if [ -n "$2" ] ; then |
|
25 |
IMAGE_DIR=$2 |
|
26 |
fi |
|
27 |
|
|
28 |
echo "Creating qemu-img image from $INSTANCE_NAME to ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img" |
|
29 |
$QEMU_IMG convert -O qcow2 $DISK_0_PATH ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img |
/dev/null | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
INSTANCE_NAME="$1" |
|
4 |
|
|
5 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
6 |
echo "Must provide a node name!" |
|
7 |
exit 1 |
|
8 |
fi |
|
9 |
|
|
10 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
11 |
OS_VARIANT="${info[0]/*+/}" |
|
12 |
HYPERVISOR="${info[1]}" |
|
13 |
DISK_COUNT="${info[2]}" |
|
14 |
OS_API_VERSION="15" |
|
15 |
|
|
16 |
# do stuff |
|
17 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
18 |
|
|
19 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
20 |
|
|
21 |
. /usr/share/ganeti/os/image/common.sh |
|
22 |
|
|
23 |
filesystem_dev=$(map_disk0 $blockdev) |
|
24 |
root_dev=$(map_partition $filesystem_dev root) |
|
25 |
boot_dev=$(map_partition $filesystem_dev boot) |
|
26 |
|
|
27 |
target="/tmp/${INSTANCE_NAME}_root" |
|
28 |
mkdir -p $target |
|
29 |
|
|
30 |
# mount filesystems |
|
31 |
mount_disk0 $target |
|
32 |
echo "$INSTANCE_NAME is now mounted at $target" |
|
33 |
|
|
34 |
CLEANUP=( ) |
b/tools/mount-disks.in | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
INSTANCE_NAME="$1" |
|
4 |
|
|
5 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
6 |
echo "Must provide a node name!" |
|
7 |
exit 1 |
|
8 |
fi |
|
9 |
|
|
10 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
11 |
OS_VARIANT="${info[0]/*+/}" |
|
12 |
HYPERVISOR="${info[1]}" |
|
13 |
DISK_COUNT="${info[2]}" |
|
14 |
OS_API_VERSION="15" |
|
15 |
|
|
16 |
# do stuff |
|
17 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
18 |
|
|
19 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
20 |
|
|
21 |
. @osdir@/@osname@/common.sh |
|
22 |
|
|
23 |
filesystem_dev=$(map_disk0 $blockdev) |
|
24 |
root_dev=$(map_partition $filesystem_dev root) |
|
25 |
boot_dev=$(map_partition $filesystem_dev boot) |
|
26 |
|
|
27 |
target="/tmp/${INSTANCE_NAME}_root" |
|
28 |
mkdir -p $target |
|
29 |
|
|
30 |
# mount filesystems |
|
31 |
mount_disk0 $target |
|
32 |
echo "$INSTANCE_NAME is now mounted at $target" |
|
33 |
|
|
34 |
CLEANUP=( ) |
/dev/null | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
|
|
4 |
INSTANCE_NAME="$1" |
|
5 |
|
|
6 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
7 |
echo "Must provide a node name!" |
|
8 |
exit 1 |
|
9 |
fi |
|
10 |
|
|
11 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
12 |
OS_VARIANT="${info[0]/*+/}" |
|
13 |
HYPERVISOR="${info[1]}" |
|
14 |
DISK_COUNT="${info[2]}" |
|
15 |
OS_API_VERSION="15" |
|
16 |
|
|
17 |
# do stuff |
|
18 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
19 |
|
|
20 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
21 |
filesystem_dev="${DISK_0_PATH/\/dev\//}" |
|
22 |
|
|
23 |
. /usr/share/ganeti/os/image/common.sh |
|
24 |
|
|
25 |
target="/tmp/${INSTANCE_NAME}_root" |
|
26 |
|
|
27 |
root_dev=$(map_partition $filesystem_dev root) |
|
28 |
boot_dev=$(map_partition $filesystem_dev boot) |
|
29 |
|
|
30 |
if [ -n "${boot_dev}" ] ; then |
|
31 |
umount $target/boot |
|
32 |
fi |
|
33 |
|
|
34 |
umount $target |
|
35 |
rmdir $target |
|
36 |
$KPARTX -d -p- $DISK_0_PATH |
|
37 |
gnt-instance deactivate-disks $INSTANCE_NAME |
|
38 |
|
|
39 |
CLEANUP=( ) |
b/tools/umount-disks.in | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
set -e |
|
3 |
|
|
4 |
INSTANCE_NAME="$1" |
|
5 |
|
|
6 |
if [ -z "$INSTANCE_NAME" ] ; then |
|
7 |
echo "Must provide a node name!" |
|
8 |
exit 1 |
|
9 |
fi |
|
10 |
|
|
11 |
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME)) |
|
12 |
OS_VARIANT="${info[0]/*+/}" |
|
13 |
HYPERVISOR="${info[1]}" |
|
14 |
DISK_COUNT="${info[2]}" |
|
15 |
OS_API_VERSION="15" |
|
16 |
|
|
17 |
# do stuff |
|
18 |
output="$(gnt-instance activate-disks $INSTANCE_NAME)" |
|
19 |
|
|
20 |
DISK_0_PATH="${output/*disk\/0\:/}" |
|
21 |
filesystem_dev="${DISK_0_PATH/\/dev\//}" |
|
22 |
|
|
23 |
. @osdir@/@osname@/common.sh |
|
24 |
|
|
25 |
target="/tmp/${INSTANCE_NAME}_root" |
|
26 |
|
|
27 |
root_dev=$(map_partition $filesystem_dev root) |
|
28 |
boot_dev=$(map_partition $filesystem_dev boot) |
|
29 |
|
|
30 |
if [ -n "${boot_dev}" ] ; then |
|
31 |
umount $target/boot |
|
32 |
fi |
|
33 |
|
|
34 |
umount $target |
|
35 |
rmdir $target |
|
36 |
$KPARTX -d -p- $DISK_0_PATH |
|
37 |
gnt-instance deactivate-disks $INSTANCE_NAME |
|
38 |
|
|
39 |
CLEANUP=( ) |
Also available in: Unified diff