mirror of
https://github.com/vyos/vyos-build.git
synced 2025-10-01 20:28:40 +02:00
Separate files needed for different cloud providers
Fix serial console speed settings Add google cloud image generation
This commit is contained in:
parent
f6c147b9ae
commit
16cc9be3ba
20
Makefile
20
Makefile
@ -82,12 +82,24 @@ clearfog: clean prepare
|
|||||||
azure: clean prepare
|
azure: clean prepare
|
||||||
@set -e
|
@set -e
|
||||||
@echo "It's not like I'm building this specially for you or anything!"
|
@echo "It's not like I'm building this specially for you or anything!"
|
||||||
cp tools/cloud-init/99-walinuxagent.chroot build/config/hooks/
|
cp tools/cloud-init/azure/99-walinuxagent.chroot build/config/hooks/
|
||||||
cp tools/cloud-init/vyos-azure.list.chroot build/config/package-lists/
|
cp tools/cloud-init/azure/vyos-azure.list.chroot build/config/package-lists/
|
||||||
cp -f tools/cloud-init/config.boot.default build/config/includes.chroot/opt/vyatta/etc/
|
cp -f tools/cloud-init/azure/config.boot.default build/config/includes.chroot/opt/vyatta/etc/
|
||||||
cd $(build_dir)
|
cd $(build_dir)
|
||||||
@../scripts/build-azure-image
|
@../scripts/build-azure-image
|
||||||
|
|
||||||
|
.PHONY: GCE
|
||||||
|
.ONESHELL:
|
||||||
|
GCE: clean prepare
|
||||||
|
@set -e
|
||||||
|
@echo "It's not like I'm building this specially for you or anything!"
|
||||||
|
mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d
|
||||||
|
cp tools/cloud-init/GCE/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/
|
||||||
|
cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/
|
||||||
|
cp -f tools/cloud-init/GCE/config.boot.default build/config/includes.chroot/opt/vyatta/etc/
|
||||||
|
cd $(build_dir)
|
||||||
|
@../scripts/build-GCE-image
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
clean:
|
clean:
|
||||||
@ -101,6 +113,8 @@ clean:
|
|||||||
rm -f *.img
|
rm -f *.img
|
||||||
rm -f *.xz
|
rm -f *.xz
|
||||||
rm -f *.vhd
|
rm -f *.vhd
|
||||||
|
rm -f *.raw
|
||||||
|
rm -f *.tar.gz
|
||||||
|
|
||||||
.PHONY: purge
|
.PHONY: purge
|
||||||
purge:
|
purge:
|
||||||
|
|||||||
153
scripts/build-GCE-image
Executable file
153
scripts/build-GCE-image
Executable file
@ -0,0 +1,153 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2018 VyOS maintainers and contributors
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or later as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# File: build-GCE-image
|
||||||
|
# Purpose:
|
||||||
|
# Build VyOS image for Google cloud.
|
||||||
|
|
||||||
|
lb bootstrap
|
||||||
|
|
||||||
|
lb chroot
|
||||||
|
lb installer
|
||||||
|
lb binary_chroot
|
||||||
|
lb chroot_devpts install
|
||||||
|
lb chroot_proc install
|
||||||
|
lb chroot_selinuxfs install
|
||||||
|
lb chroot_sysfs install
|
||||||
|
lb chroot_hosts install
|
||||||
|
lb chroot_resolv install
|
||||||
|
lb chroot_hostname install
|
||||||
|
lb chroot_sysv-rc install
|
||||||
|
lb chroot_upstart install
|
||||||
|
lb chroot_apt install-binary
|
||||||
|
lb chroot_archives chroot install
|
||||||
|
lb binary_rootfs
|
||||||
|
lb binary_manifest
|
||||||
|
lb binary_package-lists
|
||||||
|
lb binary_linux-image
|
||||||
|
lb binary_memtest
|
||||||
|
lb binary_grub
|
||||||
|
lb binary_grub2
|
||||||
|
lb binary_syslinux
|
||||||
|
lb binary_disk
|
||||||
|
lb binary_loadlin
|
||||||
|
lb binary_win32-loader
|
||||||
|
lb binary_includes
|
||||||
|
lb binary_hooks
|
||||||
|
lb binary_checksums
|
||||||
|
|
||||||
|
# get vyos build version
|
||||||
|
version=$(cat version)
|
||||||
|
dateymd=$(date +%Y%m%d)
|
||||||
|
|
||||||
|
######################################
|
||||||
|
### Prepare the HDD (format, ext.) ###
|
||||||
|
######################################
|
||||||
|
PARTED=/sbin/parted
|
||||||
|
OUTPUT=disk.raw
|
||||||
|
OUTPUTGZ=VyOS-"$dateymd".tar.gz
|
||||||
|
IMAGE_SIZE=2
|
||||||
|
qemu-img create -f raw ${OUTPUT} ${IMAGE_SIZE}G
|
||||||
|
|
||||||
|
${PARTED} -s ${OUTPUT} mktable msdos
|
||||||
|
${PARTED} -s -a optimal ${OUTPUT} mkpart primary ext4 1Mi 100%
|
||||||
|
${PARTED} -s ${OUTPUT} set 1 boot on
|
||||||
|
RESULT_KPARTX=`kpartx -asv ${OUTPUT} 2>&1`
|
||||||
|
|
||||||
|
if echo "${RESULT_KPARTX}" | grep "^add map" ; then
|
||||||
|
LOOP_DEVICE=$(echo ${RESULT_KPARTX} | cut -d" " -f3)
|
||||||
|
LOOPRAW_DEVICE=${LOOP_DEVICE%p*}
|
||||||
|
echo "kpartx mounted using: ${LOOP_DEVICE} via ${LOOPRAW_DEVICE}"
|
||||||
|
else
|
||||||
|
echo "It seems kpartx didn't mount the image correctly: exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup(){
|
||||||
|
error=$?
|
||||||
|
[ ! -d "${MOUNT_DIR}" ] && return
|
||||||
|
if [ "$error" -gt 0 ]; then
|
||||||
|
echo
|
||||||
|
echo "Error $error"
|
||||||
|
else
|
||||||
|
echo "Finished."
|
||||||
|
fi
|
||||||
|
|
||||||
|
set +e
|
||||||
|
|
||||||
|
sync
|
||||||
|
umount -l ${MOUNT_DIR}
|
||||||
|
rmdir ${MOUNT_DIR}
|
||||||
|
|
||||||
|
umount devpts-live
|
||||||
|
umount proc-live
|
||||||
|
umount sysfs-live
|
||||||
|
|
||||||
|
dmsetup remove --deferred ${LOOP_DEVICE}
|
||||||
|
losetup -d /dev/${LOOPRAW_DEVICE}
|
||||||
|
exit $error
|
||||||
|
}
|
||||||
|
trap "cleanup" EXIT TERM INT
|
||||||
|
|
||||||
|
mkfs.ext4 /dev/mapper/${LOOP_DEVICE} -L persistence
|
||||||
|
UUID=$(blkid -o value -s UUID /dev/mapper/${LOOP_DEVICE})
|
||||||
|
|
||||||
|
# No fsck because of X days without checks
|
||||||
|
tune2fs -i 0 /dev/mapper/${LOOP_DEVICE}
|
||||||
|
|
||||||
|
MOUNT_DIR=`mktemp -d -t build-debimg.XXXXXX`
|
||||||
|
mount /dev/mapper/${LOOP_DEVICE} ${MOUNT_DIR}
|
||||||
|
|
||||||
|
########################
|
||||||
|
### Setting-up files ###
|
||||||
|
########################
|
||||||
|
mkdir -p ${MOUNT_DIR}/boot/grub
|
||||||
|
mkdir -p ${MOUNT_DIR}/boot/"$version"/rw
|
||||||
|
|
||||||
|
echo "/ union" > ${MOUNT_DIR}/persistence.conf
|
||||||
|
cp binary/live/filesystem.squashfs ${MOUNT_DIR}/boot/"$version"/"$version.squashfs"
|
||||||
|
cp binary/live/initrd.img ${MOUNT_DIR}/boot/"$version"/initrd.img
|
||||||
|
cp binary/live/vmlinuz ${MOUNT_DIR}/boot/"$version"/vmlinuz
|
||||||
|
|
||||||
|
########################
|
||||||
|
### Create grub menu ###
|
||||||
|
########################
|
||||||
|
cat > ${MOUNT_DIR}/boot/grub/grub.cfg << EOF
|
||||||
|
set timeout=5
|
||||||
|
set default=0
|
||||||
|
|
||||||
|
menuentry "VyOS $version (Serial console)" {
|
||||||
|
linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=tty0 console=ttyS0,38400n8d earlyprintk=ttyS0,38400 consoleblank=0 systemd.show_status=true
|
||||||
|
initrd /boot/"$version"/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Lost password change $version (Serial console)" {
|
||||||
|
linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=tty0 console=ttyS0,38400n8d earlyprintk=ttyS0,38400 consoleblank=0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset
|
||||||
|
initrd /boot/"$version"/initrd.img
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
#############################
|
||||||
|
### Setting-up bootloader ###
|
||||||
|
#############################
|
||||||
|
grub-install --boot-directory ${MOUNT_DIR}/boot --force --no-floppy --skip-fs-probe /dev/${LOOPRAW_DEVICE}
|
||||||
|
|
||||||
|
###################
|
||||||
|
### HOOK SCRIPT ###
|
||||||
|
###################
|
||||||
|
fstrim ${MOUNT_DIR}
|
||||||
|
sync
|
||||||
|
|
||||||
|
tar -Sczf ${OUTPUTGZ} ${OUTPUT}
|
||||||
@ -12,7 +12,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# File: build-clearfog-image
|
# File: build-azure-image
|
||||||
# Purpose:
|
# Purpose:
|
||||||
# Build VyOS image for Azure.
|
# Build VyOS image for Azure.
|
||||||
|
|
||||||
@ -127,12 +127,12 @@ set timeout=5
|
|||||||
set default=0
|
set default=0
|
||||||
|
|
||||||
menuentry "VyOS $version (Serial console)" {
|
menuentry "VyOS $version (Serial console)" {
|
||||||
linux /boot/"$version"/vmlinuz boot=live quiet vyos-union=/boot/"$version" console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 systemd.show_status=true
|
linux /boot/"$version"/vmlinuz boot=live quiet vyos-union=/boot/"$version" console=tty0 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 consoleblank=0 systemd.show_status=true
|
||||||
initrd /boot/"$version"/initrd.img
|
initrd /boot/"$version"/initrd.img
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry "Lost password change $version (Serial console)" {
|
menuentry "Lost password change $version (Serial console)" {
|
||||||
linux /boot/"$version"/vmlinuz boot=live quiet vyos-union=/boot/"$version" console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset
|
linux /boot/"$version"/vmlinuz boot=live quiet vyos-union=/boot/"$version" console=tty0 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 consoleblank=0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset
|
||||||
initrd /boot/"$version"/initrd.img
|
initrd /boot/"$version"/initrd.img
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
2
tools/cloud-init/GCE/90_dpkg.cfg
Normal file
2
tools/cloud-init/GCE/90_dpkg.cfg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# to update this file, run dpkg-reconfigure cloud-init
|
||||||
|
datasource_list: [ GCE ]
|
||||||
@ -16,7 +16,7 @@ system {
|
|||||||
}
|
}
|
||||||
console {
|
console {
|
||||||
device ttyS0 {
|
device ttyS0 {
|
||||||
speed 9600
|
speed 38400
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
config-management {
|
config-management {
|
||||||
30
tools/cloud-init/azure/config.boot.default
Normal file
30
tools/cloud-init/azure/config.boot.default
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
system {
|
||||||
|
syslog {
|
||||||
|
global {
|
||||||
|
facility all {
|
||||||
|
level info
|
||||||
|
}
|
||||||
|
facility protocols {
|
||||||
|
level debug
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ntp {
|
||||||
|
server "0.pool.ntp.org"
|
||||||
|
server "1.pool.ntp.org"
|
||||||
|
server "2.pool.ntp.org"
|
||||||
|
}
|
||||||
|
console {
|
||||||
|
device ttyS0 {
|
||||||
|
speed 115200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config-management {
|
||||||
|
commit-revisions 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interfaces {
|
||||||
|
loopback lo {
|
||||||
|
}
|
||||||
|
}
|
||||||
1
tools/cloud-init/cloud-init.list.chroot
Normal file
1
tools/cloud-init/cloud-init.list.chroot
Normal file
@ -0,0 +1 @@
|
|||||||
|
cloud-init
|
||||||
Loading…
x
Reference in New Issue
Block a user