Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
virl-utils-hs-fulda
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sebastian Rieger
virl-utils-hs-fulda
Commits
1bfcb521
Commit
1bfcb521
authored
9 years ago
by
Sebastian Rieger
Browse files
Options
Downloads
Patches
Plain Diff
fixed check for existing images, added support for Cumulus VX 3.x
parent
05253d16
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
create-cumulusvx-image/create-cumulus-vx-image.sh
+44
-15
44 additions, 15 deletions
create-cumulusvx-image/create-cumulus-vx-image.sh
create-cumulusvx-image/dynamic-subtype-CumulusVX.json
+11
-10
11 additions, 10 deletions
create-cumulusvx-image/dynamic-subtype-CumulusVX.json
with
55 additions
and
25 deletions
create-cumulusvx-image/create-cumulus-vx-image.sh
+
44
−
15
View file @
1bfcb521
...
...
@@ -6,7 +6,9 @@
#
# V0.2 added support to delete existing image with the same name and generating the default nova flavor
# V0.3 checking whether it is safe to unmount the working directory
# V0.31 added support for newer glance releases (e.g. kilo) used in VIRL 1.0.0
# V0.3.1 added support for newer glance releases (e.g. kilo) used in VIRL 1.0.0
# V0.4 fixed check for existing images, added support for Cumulus VX 3.x
# usage
if
[
!
$#
-eq
2
]
;
then
...
...
@@ -48,9 +50,9 @@ function safe_unmount() {
}
# check for an existing image with the same name and offer to delete it prior to creating a new one
CHECK_FOR_EXISTING_IMAGE
=
$(
glance image-show
$GLANCE_IMAGE_NAME
2>&1
)
CHECK_FOR_EXISTING_IMAGE
=
$(
glance
--os-image-api-version
1
image-show
$GLANCE_IMAGE_NAME
2>&1
)
if
[
$?
==
0
]
;
then
glance image-show
$GLANCE_IMAGE_NAME
glance
--os-image-api-version
1
image-show
$GLANCE_IMAGE_NAME
echo
echo
read
-r
-p
"There is already an image with the same name in glance. Do you want to overwrite it? [y/N] "
RESPONSE
...
...
@@ -58,7 +60,7 @@ if [ $? == 0 ] ; then
echo
"Deleting existing image
$GLANCE_IMAGE_NAME
..."
echo
"==========================================================="
glance image-delete
$GLANCE_IMAGE_NAME
glance
--os-image-api-version
1
image-delete
$GLANCE_IMAGE_NAME
else
echo
"An image with the same name already exists. Either delete this image or choose another name."
exit
1
...
...
@@ -69,10 +71,30 @@ echo
echo
"Creating CumulusVX image..."
echo
"==========================================================="
# check version
if
[[
"
$CUMULUS_QCOW2_BASENAME
"
=
~ ^cumulus-vx-2
\.
5
]]
;
then
# handle 2.5.x versions
CUMULUS_VERSION
=
2
elif
[[
"
$CUMULUS_QCOW2_BASENAME
"
=
~ ^cumulus-linux-3
\.
]]
;
then
# handle 3.x versions
CUMULUS_VERSION
=
3
else
echo
"Unsupported version of Cumulus VX, currently this script supports versions 2.5.x and 3.x"
exit
1
fi
qemu-img convert
-O
raw
$CUMULUS_QCOW2
$CUMULUS_QCOW2_BASENAME
.raw
LOOPDEV
=
$(
kpartx
-av
$CUMULUS_QCOW2_BASENAME
.raw
)
LOOPDEV_PART1
=
$(
echo
"
$LOOPDEV
"
|
sed
'1q;d'
|
cut
-d
" "
-f
3
)
LOOPDEV_PART2
=
$(
echo
"
$LOOPDEV
"
|
sed
'2q;d'
|
cut
-d
" "
-f
3
)
if
[
$CUMULUS_VERSION
==
2
]
;
then
# partition layout Cumulus VX 2.5.x: part1 = boot, part2 = root
LOOPDEV_PART_BOOT
=
$(
echo
"
$LOOPDEV
"
|
sed
'1q;d'
|
cut
-d
" "
-f
3
)
LOOPDEV_PART_ROOT
=
$(
echo
"
$LOOPDEV
"
|
sed
'2q;d'
|
cut
-d
" "
-f
3
)
elif
[
$CUMULUS_VERSION
==
3
]
;
then
# partition layout Cumulus VX 3.x: part1 = grubboot, part2 = onieboot, part3 = boot, part4 = root
LOOPDEV_PART_BOOT
=
$(
echo
"
$LOOPDEV
"
|
sed
'3q;d'
|
cut
-d
" "
-f
3
)
LOOPDEV_PART_ROOT
=
$(
echo
"
$LOOPDEV
"
|
sed
'4q;d'
|
cut
-d
" "
-f
3
)
fi
mkdir
cumulusvx-boot-
$TIMESTAMP
mkdir
cumulusvx-root-
$TIMESTAMP
...
...
@@ -81,12 +103,19 @@ echo
echo
"Injecting changes to use serial console and startup script to get switch config..."
echo
"=================================================================================="
mount /dev/mapper/
$LOOPDEV_PART1
cumulusvx-boot-
$TIMESTAMP
mount /dev/mapper/
$LOOPDEV_PART2
cumulusvx-root-
$TIMESTAMP
mount /dev/mapper/
$LOOPDEV_PART_BOOT
cumulusvx-boot-
$TIMESTAMP
mount /dev/mapper/
$LOOPDEV_PART_ROOT
cumulusvx-root-
$TIMESTAMP
if
[
$CUMULUS_VERSION
==
2
]
;
then
# changing grub and inittab to use a serial console on kernel command line
sed
-i
.bak
-e
s/
"linux
\/
bzImage root=
\/
dev
\/
sda2"
/
"linux
\/
bzImage root=
\/
dev
\/
sda2 console=ttyS0 console=tty0"
/g cumulusvx-root-
$TIMESTAMP
/vbox_grub.cfg
sed
-i
.bak
-e
s/
"linux
\/
bzImage root=
\/
dev
\/
sda2"
/
"linux
\/
bzImage root=
\/
dev
\/
sda2 console=ttyS0 console=tty0"
/g cumulusvx-boot-
$TIMESTAMP
/grub/grub.cfg
sed
-i
.bak
-e
s/
"# S0:3:respawn:
\/
sbin
\/
getty -L
\$
(get-cmdline-console) vt100"
/
"S0:3:respawn:
\/
sbin
\/
getty -L
\$
(get-cmdline-console) vt100"
/g cumulusvx-root-
$TIMESTAMP
/etc/inittab
elif
[
$CUMULUS_VERSION
==
3
]
;
then
# changing grub to show boot log
sed
-i
.bak
-e
s/
"console=tty0 quiet"
/
"console=tty0"
/g cumulusvx-boot-
$TIMESTAMP
/grub/grub.cfg
fi
# append a script to import the configuration defined in VM Maestro to rc.local
sed
-i
.bak
-e
s/
"^exit 0$"
/
""
/g cumulusvx-root-
$TIMESTAMP
/etc/rc.local
cat
<<
EOF
>> cumulusvx-root-
$TIMESTAMP
/etc/rc.local
...
...
@@ -99,7 +128,7 @@ EOF
#DEBUG:
# run bash to allow manual changes to the image before packing
#
#
bash
bash
safe_unmount cumulusvx-boot-
$TIMESTAMP
safe_unmount cumulusvx-root-
$TIMESTAMP
...
...
This diff is collapsed.
Click to expand it.
create-cumulusvx-image/dynamic-subtype-CumulusVX.json
+
11
−
10
View file @
1bfcb521
{
"dynamic-subtypes"
:
[
{
"c
onfig_file"
:
"/cumulusvx.
sh"
,
"c
li_protocol"
:
"s
sh"
,
"gui_icon"
:
"iosvl2"
,
"plugin_desc"
:
"CumulusVX"
,
"interface_first"
:
1
,
"baseline_flavor"
:
"CumulusVX.small"
,
"plugin_base"
:
"generic"
,
"interface_management"
:
"eth0"
,
"interface_pattern"
:
"swp{0}"
,
"interface_range"
:
25
,
"cli_protocol"
:
"ssh"
,
"baseline_flavor"
:
"CumulusVX.small"
,
"plugin_name"
:
"CumulusVX"
,
"interface_first"
:
1
,
"config_file"
:
"/cumulusvx.sh"
,
"deprecated_use"
:
""
,
"hw_vm_extra"
:
""
,
"cli_serial"
:
1
,
"
plugin_desc"
:
"CumulusVX"
,
"
interface_range"
:
25
,
"config_disk_type"
:
"disk"
,
"
hw_vm_extra"
:
"
"
,
"
baseline_image"
:
"CumulusVX"
,
"
gui_visible"
:
true
"
plugin_name"
:
"CumulusVX
"
,
"
gui_visible"
:
true
,
"
baseline_image"
:
"CumulusVX"
}
]
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment