forked from pinecrypt/butterknife-provisioning-image
		
	Updates and fixes
	
		
			
	
		
	
	
		
	
		
			Some checks reported errors
		
		
	
	
		
			
				
	
				continuous-integration/drone Build encountered an error
				
			
		
		
	
	
				
					
				
			
		
			Some checks reported errors
		
		
	
	continuous-integration/drone Build encountered an error
				
			This commit is contained in:
		
							
								
								
									
										50
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -6,6 +6,9 @@ name: default | ||||
| steps: | ||||
| - name: build | ||||
|   image: ubuntu | ||||
|   volumes: | ||||
|   - name: ramdisk | ||||
|     path: /build | ||||
|   settings: | ||||
|     mtu: 1300 | ||||
|   environment: | ||||
| @@ -13,25 +16,54 @@ steps: | ||||
|     FORCE_UNSAFE_CONFIGURE: 1 | ||||
|   commands: | ||||
|     - apt-get update | ||||
|     - apt-get install -yq wget build-essential file cpio rsync bc unzip | ||||
|     - wget https://github.com/buildroot/buildroot/archive/2020.02.10.tar.gz | ||||
|     - apt-get install -yq wget build-essential file cpio rsync bc unzip python3 | ||||
|     - cd /build | ||||
|     - wget https://github.com/buildroot/buildroot/archive/2022.02.tar.gz | ||||
|     - tar xf *.gz | ||||
|     - rm -fv *.gz | ||||
|     - cd buildroot-*/ | ||||
|     - cat board/pc/linux.config /drone/src/linux-defconfig > linux-defconfig | ||||
|     - cp /drone/src/config-seed .config | ||||
|     - make olddefconfig | ||||
|     - nice ionice make -j `nproc` | ||||
|     - cp output/images/bzImage /drone/src/provisioning-image-amd64 | ||||
| - name: deliver | ||||
|     - nice ionice make -j `nproc` -s | ||||
|     - ls -lash output/images | ||||
|     - cp output/images/bzImage /drone/src/butterknife-amd64.bin | ||||
|     - cp output/images/rootfs.iso9660 /drone/src/butterknife-amd64.iso | ||||
| - name: deliver-pxe | ||||
|   image: drillster/drone-email | ||||
|   settings: | ||||
|     from: jenkins@k-space.ee | ||||
|     subject: OpenWrt image | ||||
|     body: OpenWrt image | ||||
|     subject: Butterknife provisioning image (PXE) | ||||
|     body: This is kernel with bundled initramfs suitable for PXE booting | ||||
|     host: mail.k-space.ee | ||||
|     port: 465 | ||||
|     username: jenkins | ||||
|     password: | ||||
|       from_secret: email_password | ||||
|     attachments: provisioning-image-amd64 | ||||
|     attachments: butterknife-amd64.bin | ||||
| - name: deliver-iso | ||||
|   image: drillster/drone-email | ||||
|   settings: | ||||
|     from: jenkins@k-space.ee | ||||
|     subject: Butterknife provisioning image (ISO) | ||||
|     body: This is ISO file suitable for writing to USB keys directly with dd | ||||
|     host: mail.k-space.ee | ||||
|     port: 465 | ||||
|     username: jenkins | ||||
|     password: | ||||
|       from_secret: email_password | ||||
|     attachments: butterknife-amd64.iso | ||||
| volumes: | ||||
| - name: ramdisk | ||||
|   temp: | ||||
|     medium: memory | ||||
| - name: test | ||||
|   image: ubuntu | ||||
|   commands: | ||||
|    - apt-get update | ||||
|    - apt-get install -yq qemu-system-x86 | ||||
|    - qemu-system-x86_64 \ | ||||
|      -kernel /drone/src/provisioning-image-amd64 \ | ||||
|      -serial stdio \ | ||||
|      -nographic \ | ||||
|      -monitor none \ | ||||
|      -append "console=ttyS0 bk_action=poweroff" | ||||
|   | ||||
							
								
								
									
										69
									
								
								config-seed
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								config-seed
									
									
									
									
									
								
							| @@ -1,39 +1,44 @@ | ||||
| # Buildroot configuration seed | ||||
| BR2_x86_64=y | ||||
| BR2_INIT_NONE=y | ||||
| BR2_TOOLCHAIN_BUILDROOT_WCHAR=y | ||||
| BR2_TOOLCHAIN_BUILDROOT_CXX=y | ||||
| BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="/drone/src/linux-defconfig" | ||||
| BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y | ||||
| BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y | ||||
| BR2_LINUX_KERNEL_XZ=y | ||||
| BR2_LINUX_KERNEL=y | ||||
| BR2_TARGET_SYSLINUX=y | ||||
| BR2_TARGET_SYSLINUX_EFI=y | ||||
| BR2_TARGET_ROOTFS_INITRAMFS=y | ||||
| BR2_TARGET_ROOTFS_ISO9660=y | ||||
| BR2_TARGET_ROOTFS_ISO9660_HYBRID=y | ||||
| BR2_TARGET_GENERIC_ISSUE="Welcome to Butterknife provisioning tool" | ||||
| BR2_PACKAGE_DIALOG=y | ||||
| BR2_PACKAGE_JQ=y | ||||
| BR2_PACKAGE_BIND=y | ||||
| BR2_PACKAGE_BIND_TOOLS=y | ||||
| BR2_PACKAGE_NTP=y | ||||
| BR2_PACKAGE_NTP_NTPDATE=y | ||||
| BR2_PACKAGE_UDPCAST=y | ||||
| BR2_PACKAGE_UDPCAST_SENDER=y | ||||
| BR2_PACKAGE_UDPCAST_RECEIVER=y | ||||
| BR2_PACKAGE_CA_CERTIFICATES=y | ||||
| BR2_PACKAGE_OPENSSL=y | ||||
| BR2_PACKAGE_LIBCURL=y | ||||
| BR2_PACKAGE_LIBCURL_CURL=y | ||||
| BR2_PACKAGE_BIND=y | ||||
| BR2_PACKAGE_BTRFS_PROGS=y | ||||
| BR2_PACKAGE_NTFS_3G=y | ||||
| BR2_PACKAGE_NTFS_3G_NTFSPROGS=y | ||||
| BR2_PACKAGE_PCIUTILS=y | ||||
| BR2_PACKAGE_GPTFDISK=y | ||||
| BR2_PACKAGE_GPTFDISK_SGDISK=y | ||||
| BR2_PACKAGE_MS_SYS=y | ||||
| BR2_PACKAGE_UTIL_LINUX_LIBFDISK=y | ||||
| BR2_PACKAGE_UTIL_LINUX_BINARIES=y | ||||
| BR2_PACKAGE_DOSFSTOOLS=y | ||||
| BR2_PACKAGE_CA_CERTIFICATES=y | ||||
| BR2_PACKAGE_DIALOG=y | ||||
| BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y | ||||
| BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y | ||||
| BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="linux-defconfig" | ||||
| BR2_PACKAGE_DOSFSTOOLS=y | ||||
| BR2_PACKAGE_GPTFDISK_SGDISK=y | ||||
| BR2_PACKAGE_GPTFDISK=y | ||||
| BR2_PACKAGE_JQ=y | ||||
| BR2_PACKAGE_LIBCURL_CURL=y | ||||
| BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES=n | ||||
| BR2_PACKAGE_LIBCURL=y | ||||
| BR2_PACKAGE_NTFS_3G_NTFSPROGS=y | ||||
| BR2_PACKAGE_NTFS_3G=y | ||||
| BR2_PACKAGE_NTP_NTPDATE=y | ||||
| BR2_PACKAGE_NTP_NTPD=n | ||||
| BR2_PACKAGE_NTP=y | ||||
| BR2_PACKAGE_OPENSSL=y | ||||
| BR2_PACKAGE_PCIUTILS=y | ||||
| BR2_PACKAGE_UDPCAST_RECEIVER=y | ||||
| BR2_PACKAGE_UDPCAST_SENDER=y | ||||
| BR2_PACKAGE_UDPCAST=y | ||||
| BR2_PACKAGE_UTIL_LINUX_BINARIES=y | ||||
| BR2_PACKAGE_UTIL_LINUX_LIBFDISK=y | ||||
| BR2_ROOTFS_OVERLAY="/drone/src/overlay/" | ||||
| BR2_TARGET_GENERIC_ISSUE="Welcome to Butterknife provisioning tool" | ||||
| BR2_TARGET_ROOTFS_INITRAMFS=y | ||||
| BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="/drone/src/isolinux.cfg" | ||||
| BR2_TARGET_ROOTFS_ISO9660_HYBRID=y | ||||
| BR2_TARGET_ROOTFS_ISO9660=y | ||||
| BR2_TARGET_SYSLINUX_EFI=y | ||||
| BR2_TARGET_SYSLINUX_ISOLINUX=y | ||||
| BR2_TARGET_SYSLINUX=y | ||||
| BR2_TOOLCHAIN_BUILDROOT_CXX=y | ||||
| BR2_TOOLCHAIN_BUILDROOT_WCHAR=y | ||||
| BR2_x86_64=y | ||||
|   | ||||
							
								
								
									
										7
									
								
								isolinux.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								isolinux.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| default butterknife | ||||
| prompt 0 | ||||
|  | ||||
| label butterknife | ||||
|     menu Butterknife provisioning | ||||
|     kernel __KERNEL_PATH__ | ||||
|     append bk_image=harbor.k-space.ee/k-space/ubuntu-desktop bk_timeserver=ntp.ubuntu.com quiet | ||||
							
								
								
									
										113
									
								
								linux-defconfig
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								linux-defconfig
									
									
									
									
									
								
							| @@ -1,45 +1,82 @@ | ||||
| # Linux kernel configuration seed | ||||
| CONFIG_EFI_STUB=y | ||||
| CONFIG_VIRT_DRIVERS=y | ||||
| CONFIG_HYPERV=y | ||||
| CONFIG_PCI=y | ||||
| CONFIG_BTRFS_FS=y | ||||
| CONFIG_VFAT_FS=y | ||||
| CONFIG_NLS_CODEPAGE_437=y | ||||
| CONFIG_NLS_ISO8859_1=y | ||||
| CONFIG_HYPERV_NET=y | ||||
| CONFIG_VMXNET3=y | ||||
| CONFIG_VMWARE_PVSCSI=y | ||||
| CONFIG_ALX=y | ||||
| CONFIG_ATL1C=y | ||||
| CONFIG_ATL1E=y | ||||
| CONFIG_ATL1=y | ||||
| CONFIG_ATL2=y | ||||
| CONFIG_BLK_DEV_NVME=y | ||||
| CONFIG_SATA_AHCI=y | ||||
| CONFIG_BLK_DEV_SD=y | ||||
| CONFIG_BTRFS_FS_POSIX_ACL=y | ||||
| CONFIG_BTRFS_FS=y | ||||
| CONFIG_CHELSIO_T1_1G=y | ||||
| CONFIG_CHELSIO_T1=y | ||||
| CONFIG_CHELSIO_T3=y | ||||
| CONFIG_CHELSIO_T4VF=y | ||||
| CONFIG_CHELSIO_T4=y | ||||
| CONFIG_FB=y | ||||
| CONFIG_FB_EFI=y | ||||
| CONFIG_FORCEDETH=y | ||||
| CONFIG_FRAMEBUFFER_CONSOLE=y | ||||
| CONFIG_FUSE_FS=y | ||||
| CONFIG_HW_RANDOM_VIRTIO=y | ||||
| CONFIG_HYPERVISOR_GUEST=y | ||||
| CONFIG_HYPERV_NET=y | ||||
| CONFIG_HYPERV=y | ||||
| CONFIG_IGB=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_IKCONFIG=y | ||||
| CONFIG_INET=y | ||||
| CONFIG_INPUT_EVDEV=y | ||||
| CONFIG_IP_NF_FILTER=y | ||||
| CONFIG_IP_NF_IPTABLES=y | ||||
| CONFIG_MLX4_EN=y | ||||
| CONFIG_MLX5_CORE_EN=y | ||||
| CONFIG_MLX5_CORE=y | ||||
| CONFIG_MODULES=n | ||||
| CONFIG_MVMDIO=y | ||||
| CONFIG_NE2K_PCI=y | ||||
| CONFIG_NETDEVICES=y | ||||
| CONFIG_NETFILTER=n | ||||
| CONFIG_NET_VENDOR_CAVIUM=n | ||||
| CONFIG_NET_VENDOR_XILINX=n | ||||
| CONFIG_IGB=y | ||||
| CONFIG_ATL2=y | ||||
| CONFIG_ATL1=y | ||||
| CONFIG_ATL1E=y | ||||
| CONFIG_ATL1C=y | ||||
| CONFIG_ALX=y | ||||
| CONFIG_CHELSIO_T1=y | ||||
| CONFIG_CHELSIO_T1_1G=y | ||||
| CONFIG_CHELSIO_T3=y | ||||
| CONFIG_CHELSIO_T4=y | ||||
| CONFIG_CHELSIO_T4VF=y | ||||
| CONFIG_CHELSIO_MVMDIO=y | ||||
| CONFIG_CHELSIO_SKGE=y | ||||
| CONFIG_CHELSIO_SKY2=y | ||||
| CONFIG_CHELSIO_MLX4_EN=y | ||||
| CONFIG_CHELSIO_MLX5_CORE=y | ||||
| CONFIG_CHELSIO_MLX5_CORE_EN=y | ||||
| CONFIG_E100=y | ||||
| CONFIG_E1000=y | ||||
| CONFIG_E1000E=y | ||||
| CONFIG_FORCEDETH=y | ||||
| CONFIG_8139TOO=y | ||||
| CONFIG_R8169=y | ||||
| CONFIG_NET=y | ||||
| CONFIG_NLS_CODEPAGE_437=y | ||||
| CONFIG_NLS_ISO8859_1=y | ||||
| CONFIG_PACKET=y | ||||
| CONFIG_PARAVIRT=y | ||||
| CONFIG_PARTITION_ADVANCED=y | ||||
| CONFIG_PCCARD=n | ||||
| CONFIG_RFKILL=n | ||||
| CONFIG_SATA_AHCI=y | ||||
| CONFIG_SCSI_VIRTIO=y | ||||
| CONFIG_SECURITY_SELINUX=n | ||||
| CONFIG_SERIAL_8250_CONSOLE=y | ||||
| CONFIG_SERIAL_8250=y | ||||
| CONFIG_SIS190=y | ||||
| CONFIG_SIS900=y | ||||
| CONFIG_SKGE=y | ||||
| CONFIG_SOUND=n | ||||
| CONFIG_USB_EHCI_HCD=y | ||||
| CONFIG_USB_STORAGE=y | ||||
| CONFIG_USB_UHCI_HCD=y | ||||
| CONFIG_USB_XHCI_HCD=y | ||||
| CONFIG_USB=y | ||||
| CONFIG_VFAT_FS=y | ||||
| CONFIG_VIA_RHINE=y | ||||
| CONFIG_VIA_VELOCITY=y | ||||
| CONFIG_SIS900=y | ||||
| CONFIG_SIS190=y | ||||
| CONFIG_PARTITION_ADVANCED=y | ||||
| CONFIG_VIRT_DRIVERS=y | ||||
| CONFIG_VIRTIO_BALLOON=y | ||||
| CONFIG_VIRTIO_BLK_SCSI=y | ||||
| CONFIG_VIRTIO_BLK=y | ||||
| CONFIG_VIRTIO_CONSOLE=y | ||||
| CONFIG_VIRTIO_INPUT=y | ||||
| CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y | ||||
| CONFIG_VIRTIO_MMIO=y | ||||
| CONFIG_VIRTIO_NET=y | ||||
| CONFIG_VIRTIO_PCI=y | ||||
| CONFIG_VIRTUALIZATION=n | ||||
| CONFIG_VMWARE_PVSCSI=y | ||||
| CONFIG_VMXNET3=y | ||||
| CONFIG_WIRELESS=n | ||||
| CONFIG_WLAN=n | ||||
| CONFIG_DRM_QXL=y | ||||
|   | ||||
| @@ -6,7 +6,6 @@ action=$(dialog --menu "Advanced options, consider your warranty VOID!" 0 0 0 \ | ||||
|     shell           "Drop to shell" \ | ||||
|     instance        "Instance maintenance and recovery" \ | ||||
|     subvol          "Delete instances/templates" \ | ||||
|     restore         "Restore Windows master boot record" \ | ||||
|     2>&1 >$(tty)) | ||||
| clear | ||||
|  | ||||
| @@ -72,19 +71,5 @@ case $action in | ||||
|         umount $mountpoint | ||||
|         rmdir $mountpoint | ||||
|     ;; | ||||
|     restore) | ||||
|         disk=$(butterknife-select-disk 2>&1 >$(tty)) | ||||
|  | ||||
|         # Select MBR type | ||||
|         action=$(dialog --menu "What kind of master boot record would you like to restore? You might have to mark partition bootable using fdisk." 0 0 0 \ | ||||
|             mbr7          "Windows 7/8/10" \ | ||||
|             mbrvista      "Windows Vista" \ | ||||
|             mbr           "Windows 2000/XP/2003" \ | ||||
|             2>&1 >$(tty)) | ||||
|  | ||||
|         cmd="ms-sys --$action /dev/$disk" | ||||
|         $cmd | dialog --programbox "$cmd" 10 76 | ||||
|  | ||||
|     ;; | ||||
| esac | ||||
|  | ||||
|   | ||||
| @@ -3,6 +3,19 @@ | ||||
| # TODO: Make sure fdisk from busybox is NOT used, it's counting sectors incorrectly (?!) | ||||
| # TODO: Check connectivity with API server | ||||
|  | ||||
| ####################################### | ||||
| ### Check for presence of utilities ### | ||||
| ####################################### | ||||
| for util in btrfs jq fdisk find ntfsresize udp-sender udp-receiver ntpdate curl mktemp sgdisk test true sort uniq dig; do | ||||
|     if [ -z "$(which $util)" ]; then | ||||
|         echo "Butterknife was unable to locate $util," \ | ||||
|             "are you sure the provisioning image was compiled properly?" | ||||
|         exit 253 | ||||
|     else | ||||
|         echo "Found $util..." | ||||
|     fi | ||||
| done | ||||
|  | ||||
| BUTTERKNIFE_POOL_MOUNTPOINT=/var/lib/butterknife/pool | ||||
| TARGET_MOUNTPOINT=/mnt/target | ||||
|  | ||||
|   | ||||
| @@ -42,6 +42,11 @@ if [ $bk_action == "provision" ]; then | ||||
|     poweroff -f | ||||
| fi | ||||
|  | ||||
| if [ $bk_action == "poweroff" ]; then | ||||
|     poweroff -f | ||||
| fi | ||||
|  | ||||
|  | ||||
| while [ 1 ]; do | ||||
|     action=$(dialog --no-cancel --menu "What do you want to do" 0 0 0 \ | ||||
|         provision       "Provision this machine" \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user