Compare commits
20 Commits
g_8ffcfa54
...
master
Author | SHA1 | Date | |
---|---|---|---|
c26d9c8dfb | |||
fd21958883 | |||
5343bac65e | |||
7401717352 | |||
9c7265e6d4 | |||
632556590b | |||
ce85723f1a | |||
6d3b19dfff | |||
819efecd46 | |||
46eef3e758 | |||
aa0cbaca9b | |||
ef36aa71a3 | |||
a3a1ac2969 | |||
79c62dd58b | |||
73a2e56742 | |||
9380a35800 | |||
6ccd85fe1d | |||
05ab34d4a2 | |||
706c9bae02 | |||
1ddc2fd8d6 |
70
embed.ipxe
70
embed.ipxe
|
@ -35,7 +35,7 @@ isset ${net${idx}/mac} || goto loop_done
|
||||||
######################## SET STATIC IP INFO HERE #############################
|
######################## SET STATIC IP INFO HERE #############################
|
||||||
# Just copy/paste an entire line to add more
|
# Just copy/paste an entire line to add more
|
||||||
#
|
#
|
||||||
echo Checking net${idx}
|
echo Checking net${idx} for a static IP config
|
||||||
|
|
||||||
# node1.bitmessage.at
|
# node1.bitmessage.at
|
||||||
iseq ${net${idx}/mac} 40:a8:f0:31:cc:58 && set ip-dev-name eno1 && set ip-addr 93.189.28.82 && set ip-gateway 93.189.28.81 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
iseq ${net${idx}/mac} 40:a8:f0:31:cc:58 && set ip-dev-name eno1 && set ip-addr 93.189.28.82 && set ip-gateway 93.189.28.81 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
@ -46,6 +46,16 @@ iseq ${net${idx}/mac} 28:80:23:a7:52:d1 && set ip-dev-name eno2 && set ip-addr 9
|
||||||
# node1.surda.cloud
|
# node1.surda.cloud
|
||||||
iseq ${net${idx}/mac} d0:50:99:df:1d:49 && set ip-dev-name enp39s0 && set ip-addr 93.189.28.85 && set ip-gateway 93.189.28.81 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
iseq ${net${idx}/mac} d0:50:99:df:1d:49 && set ip-dev-name enp39s0 && set ip-addr 93.189.28.85 && set ip-gateway 93.189.28.81 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
iseq ${net${idx}/mac} d0:50:99:df:1d:4a && set ip-dev-name enp38s0 && set ip-addr 93.189.28.85 && set ip-gateway 93.189.28.81 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
iseq ${net${idx}/mac} d0:50:99:df:1d:4a && set ip-dev-name enp38s0 && set ip-addr 93.189.28.85 && set ip-gateway 93.189.28.81 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
# node2.surda.cloud
|
||||||
|
iseq ${net${idx}/mac} c8:1f:66:b9:0b:d6 && set ip-dev-name eno1 && set ip-addr 110.4.42.77 && set ip-gateway 110.4.42.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} c8:1f:66:b9:0b:d7 && set ip-dev-name eno2 && set ip-addr 110.4.42.77 && set ip-gateway 110.4.42.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} c8:1f:66:b9:0b:d8 && set ip-dev-name eno3 && set ip-addr 110.4.42.77 && set ip-gateway 110.4.42.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} c8:1f:66:b9:0b:d9 && set ip-dev-name eno4 && set ip-addr 110.4.42.77 && set ip-gateway 110.4.42.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
# node3.surda.cloud
|
||||||
|
iseq ${net${idx}/mac} b8:2a:72:d5:05:36 && set ip-dev-name eno1 && set ip-addr 101.99.86.54 && set ip-gateway 101.99.86.49 && set ip-netmask 255.255.255.240 && set ip-dns 8.8.8.8 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} b8:2a:72:d5:05:37 && set ip-dev-name eno2 && set ip-addr 101.99.86.54 && set ip-gateway 101.99.86.49 && set ip-netmask 255.255.255.240 && set ip-dns 8.8.8.8 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} b8:2a:72:d5:05:38 && set ip-dev-name eno3 && set ip-addr 101.99.86.54 && set ip-gateway 101.99.86.49 && set ip-netmask 255.255.255.240 && set ip-dns 8.8.8.8 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} b8:2a:72:d5:05:39 && set ip-dev-name eno4 && set ip-addr 101.99.86.54 && set ip-gateway 101.99.86.49 && set ip-netmask 255.255.255.240 && set ip-dns 8.8.8.8 && set successful t && goto loop_done ||
|
||||||
# node3.sysdeploy.org
|
# node3.sysdeploy.org
|
||||||
iseq ${net${idx}/mac} 00:25:90:a2:9f:e9 && set ip-dev-name eno2 && set ip-addr 104.251.122.45 && set ip-gateway 104.251.122.44 && set ip-netmask 255.255.255.254 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
iseq ${net${idx}/mac} 00:25:90:a2:9f:e9 && set ip-dev-name eno2 && set ip-addr 104.251.122.45 && set ip-gateway 104.251.122.44 && set ip-netmask 255.255.255.254 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
# node4.sysdeploy.org
|
# node4.sysdeploy.org
|
||||||
|
@ -58,6 +68,13 @@ iseq ${net${idx}/mac} 34:17:eb:ea:78:b1 && set ip-dev-name eno2 && set ip-addr 1
|
||||||
# node8.sysdeploy.org
|
# node8.sysdeploy.org
|
||||||
iseq ${net${idx}/mac} bc:30:5b:de:3a:9e && set ip-dev-name eno1 && set ip-addr 109.73.65.100 && set ip-gateway 109.73.65.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
iseq ${net${idx}/mac} bc:30:5b:de:3a:9e && set ip-dev-name eno1 && set ip-addr 109.73.65.100 && set ip-gateway 109.73.65.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
iseq ${net${idx}/mac} bc:30:5b:de:3a:9f && set ip-dev-name eno2 && set ip-addr 109.73.65.100 && set ip-gateway 109.73.65.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
iseq ${net${idx}/mac} bc:30:5b:de:3a:9f && set ip-dev-name eno2 && set ip-addr 109.73.65.100 && set ip-gateway 109.73.65.1 && set ip-netmask 255.255.255.0 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
# node9.sysdeploy.org
|
||||||
|
iseq ${net${idx}/mac} 00:25:90:a9:73:76 && set ip-dev-name eno1 && set ip-addr 23.94.164.18 && set ip-gateway 23.94.164.17 && set ip-netmask 255.255.255.252 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
#iseq ${net${idx}/mac} 00:25:90:a9:73:77 && set ip-dev-name enp0s25 && set ip-addr 23.94.164.18 && set ip-gateway 23.94.164.17 && set ip-netmask 255.255.255.252 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
# backup.bitmessage.at
|
||||||
|
iseq ${net${idx}/mac} a8:a1:59:c7:21:8f && set ip-dev-name enp39s0 && set ip-addr 93.189.25.253 && set ip-gateway 93.189.25.249 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
iseq ${net${idx}/mac} a8:a1:59:c7:21:90 && set ip-dev-name enp38s0 && set ip-addr 93.189.25.253 && set ip-gateway 93.189.25.249 && set ip-netmask 255.255.255.248 && set ip-dns 1.1.1.1 && set successful t && goto loop_done ||
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# if you don't know the linux interface name, use "clear ip-dev-name", then
|
# if you don't know the linux interface name, use "clear ip-dev-name", then
|
||||||
|
@ -72,7 +89,9 @@ inc idx && goto loop
|
||||||
iseq ${successful} f && goto error_handler ||
|
iseq ${successful} f && goto error_handler ||
|
||||||
|
|
||||||
# If on the other hand we're successful, then we construct the kernel ip= line
|
# If on the other hand we're successful, then we construct the kernel ip= line
|
||||||
set ip-info ${ip-addr}::${ip-gateway}:${ip-netmask}::${ip-dev-name}:off:${ip-dns}
|
set ip-info ${ip-addr}::${ip-gateway}:${ip-netmask}::${ip-dev-name}:off:${ip-dns} && echo Static IP found
|
||||||
|
|
||||||
|
echo ip-info ${ip-info}
|
||||||
|
|
||||||
# And setup IPXE networking.
|
# And setup IPXE networking.
|
||||||
|
|
||||||
|
@ -133,10 +152,10 @@ goto loop
|
||||||
|
|
||||||
# In case we want to... log?? Or do something else.
|
# In case we want to... log?? Or do something else.
|
||||||
:error_handler
|
:error_handler
|
||||||
echo "###########################################################"
|
echo ###########################################################
|
||||||
echo "An unspecified error has occurred."
|
echo An unspecified error has occurred.
|
||||||
echo "The system will sleep for two minutes and then reboot."
|
echo The system will sleep for two minutes and then reboot.
|
||||||
echo "###########################################################"
|
echo ###########################################################
|
||||||
sleep 60
|
sleep 60
|
||||||
sleep 60
|
sleep 60
|
||||||
reboot
|
reboot
|
||||||
|
@ -153,7 +172,6 @@ iseq ${buildarch} i386 && goto start_i386 ||
|
||||||
iseq ${buildarch} x86_64 && goto start_amd64 ||
|
iseq ${buildarch} x86_64 && goto start_amd64 ||
|
||||||
goto error_handler
|
goto error_handler
|
||||||
|
|
||||||
|
|
||||||
# Builds may be done on 32-bit, but machines will always be 64-bit.
|
# Builds may be done on 32-bit, but machines will always be 64-bit.
|
||||||
# Keep this section just in case we want to use 32-bit machines in the future.
|
# Keep this section just in case we want to use 32-bit machines in the future.
|
||||||
:start_arm32
|
:start_arm32
|
||||||
|
@ -193,8 +211,12 @@ goto static_ip_boot_setup
|
||||||
:boot_all
|
:boot_all
|
||||||
|
|
||||||
# Get accurate time so we can set the clock in kernel boot cmdline
|
# Get accurate time so we can set the clock in kernel boot cmdline
|
||||||
|
echo Syncing time over NTP
|
||||||
ntp pool.ntp.org || goto error_handler
|
ntp pool.ntp.org || goto error_handler
|
||||||
|
|
||||||
|
# check for EFI
|
||||||
|
iseq ${platform} efi && goto is_efi || goto not_efi
|
||||||
|
|
||||||
# We use HTTP because IPXE's HTTPS implementation is lacking. So we delegate
|
# We use HTTP because IPXE's HTTPS implementation is lacking. So we delegate
|
||||||
# integrity and validation to imgverify.
|
# integrity and validation to imgverify.
|
||||||
|
|
||||||
|
@ -202,10 +224,6 @@ ntp pool.ntp.org || goto error_handler
|
||||||
# kernel fails to load it in the "root=" part of the kernel cmdline.
|
# kernel fails to load it in the "root=" part of the kernel cmdline.
|
||||||
# However, note that imgverify will fail if you refer to it as "/squashfs"
|
# However, note that imgverify will fail if you refer to it as "/squashfs"
|
||||||
# instead of "squashfs".
|
# instead of "squashfs".
|
||||||
|
|
||||||
imgfetch https://images2.sysdeploy.org/${ubuntu-variant}/${arch-info}/squashfs /squashfs || goto try_next_card
|
|
||||||
imgverify --signer images.sysdeploy.org squashfs https://images2.sysdeploy.org/${ubuntu-variant}/${arch-info}/squashfs.sig || goto error_handler
|
|
||||||
|
|
||||||
# "--signer" validates against the subject common name field of the signing
|
# "--signer" validates against the subject common name field of the signing
|
||||||
# certificate. That signing cert must have both the digital signature key
|
# certificate. That signing cert must have both the digital signature key
|
||||||
# usage set and the code-signing key usage extension set.
|
# usage set and the code-signing key usage extension set.
|
||||||
|
@ -214,20 +232,36 @@ imgverify --signer images.sysdeploy.org squashfs https://images2.sysdeploy.org/$
|
||||||
# make sure you pick a common name with a FQDN you control, even if you're
|
# make sure you pick a common name with a FQDN you control, even if you're
|
||||||
# using a custom CA that you import during build.
|
# using a custom CA that you import during build.
|
||||||
|
|
||||||
initrd https://images2.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-initrd || goto try_next_card
|
:is_efi
|
||||||
imgverify --signer images.sysdeploy.org boot-initrd https://images2.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-initrd.sig || goto error_handler
|
echo Attempting EFI boot
|
||||||
|
set initrd1 initrd=initrd.cpio
|
||||||
|
isset initrd2 && clear initrd2
|
||||||
|
|
||||||
kernel https://images2.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-kernel || goto try_next_card
|
imgfetch http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/initrd.cpio || goto try_next_card
|
||||||
imgverify --signer images.sysdeploy.org boot-kernel https://images2.sysdeploy.org/${ubuntu-variant}/${arch-info}/boot-kernel.sig || goto error_handler
|
imgverify --signer images.sysdeploy.org initrd.cpio http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/initrd.cpio.sig || goto error_handler
|
||||||
|
|
||||||
|
goto efi_and_not_efi
|
||||||
|
|
||||||
echo ip-info ${ip-info}
|
:not_efi
|
||||||
|
echo Attempting legacy boot
|
||||||
|
set initrd1 initrd=boot-initrd
|
||||||
|
set initrd2 initrd=squashfs
|
||||||
|
|
||||||
|
imgfetch http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/squashfs /squashfs || goto try_next_card
|
||||||
|
imgverify --signer images.sysdeploy.org squashfs http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/squashfs.sig || goto error_handler
|
||||||
|
|
||||||
|
initrd http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/boot-initrd || goto try_next_card
|
||||||
|
imgverify --signer images.sysdeploy.org boot-initrd http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/boot-initrd.sig || goto error_handler
|
||||||
|
|
||||||
|
:efi_and_not_efi
|
||||||
|
|
||||||
|
kernel http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/boot-kernel || goto try_next_card
|
||||||
|
imgverify --signer images.sysdeploy.org boot-kernel http://images-sysdeploy.b-cdn.net/${ubuntu-variant}/${arch-info}/boot-kernel.sig || goto error_handler
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
boot boot-kernel initrd=initrd.cpio initrd=squashfs rootfstype=squashfs root=/squashfs ip=${ip-info} overlayroot=tmpfs:recurse=0 systemd.clock-usec=${unixtime:int32}000000 ds=nocloud-net;s=https://cloud-init.sysdeploy.org/apiv2?uuid=${uuid}&filetype= || goto error_handler
|
boot boot-kernel ${initrd1} ${initrd2} rootfstype=squashfs root=/squashfs ip=${ip-info} overlayroot=tmpfs:recurse=0 systemd.clock-usec=${unixtime:int32}000000 ds=nocloud;s=https://cloud-init.sysdeploy.org/apiv2?uuid=${uuid}&filetype= || goto error_handler
|
||||||
|
|
||||||
# unixtime variable must be used with int32, because that's the only way it
|
# unixtime variable must be used with int32, because that's the only way it
|
||||||
# will display as decimal digits. unit32 and string both display as hex.
|
# will display as decimal digits. unit32 and string both display as hex.
|
||||||
# Therefore this will stop working in 2038.
|
# Therefore this will stop working in 2038.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user