Revision 7d8e7706
b/Makefile.am | ||
---|---|---|
6 | 6 |
toolsdir=${osdir}/${osname}/tools |
7 | 7 |
|
8 | 8 |
dist_os_SCRIPTS = ${srcdir}/create ${srcdir}/import ${srcdir}/export ${srcdir}/rename ${srcdir}/verify |
9 |
dist_tools_SCRIPTS = ${srcdir}/tools/*
|
|
9 |
dist_tools_SCRIPTS = ${srcdir}/tools/snf-passtohash.py
|
|
10 | 10 |
dist_os_DATA = ${srcdir}/ganeti_api_version ${srcdir}/parameters.list |
11 | 11 |
dist_config_DATA = ${srcdir}/variants.list |
12 | 12 |
os_DATA = common.sh |
13 |
tools_SCRIPTS = tools/make-dump tools/make-qemu-img tools/mount-disks tools/umount-disks |
|
13 | 14 |
|
14 | 15 |
dist_custom_DATA = ${srcdir}/example/hooks/* |
15 | 16 |
|
... | ... | |
30 | 31 |
-e 's|@SFDISK[@]|$(SFDISK)|g' \ |
31 | 32 |
-e 's|@QEMU_IMG[@]|$(QEMU_IMG)|g' |
32 | 33 |
|
33 |
common.sh: $(srcdir)/common.sh.in Makefile |
|
34 |
tools_builddir: |
|
35 |
@mkdir_p@ tools |
|
36 |
|
|
37 |
$(tools_SCRIPTS) common.sh: Makefile |
|
34 | 38 |
rm -f $@ $@.tmp |
35 | 39 |
srcdir=''; \ |
36 | 40 |
test -f ./$@.in || srcdir=$(srcdir)/; \ |
37 | 41 |
$(edit) $${srcdir}$@.in >$@.tmp |
38 | 42 |
mv $@.tmp $@ |
39 | 43 |
|
44 |
common.sh: $(srcdir)/common.sh.in |
|
45 |
tools/make-dump: $(srcdir)/tools/make-dump.in tools_builddir |
|
46 |
tools/make-qemu-img: $(srcdir)/tools/make-qemu-img.in tools_builddir |
|
47 |
tools/mount-disks: $(srcdir)/tools/mount-disks.in tools_builddir |
|
48 |
tools/umount-disks: $(srcdir)/tools/umount-disks.in tools_builddir |
|
49 |
|
|
40 | 50 |
install-exec-local: |
41 | 51 |
@mkdir_p@ "$(DESTDIR)$(osdir)/$(osname)" |
42 | 52 |
@mkdir_p@ "$(DESTDIR)$(variantsdir)" |
... | ... | |
47 | 57 |
touch "$(DESTDIR)$(variantsdir)/default.conf" |
48 | 58 |
ln -fs $(DESTDIR)$(configdir)/variants.list $(DESTDIR)$(osdir)/variants.list |
49 | 59 |
|
50 |
CLEANFILES = common.sh |
|
60 |
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