Created
March 17, 2021 07:53
-
-
Save ralvares/b5ae1acd52edfbfdf020acf370b32e34 to your computer and use it in GitHub Desktop.
ipxe custom file with bond0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!ipxe | |
| set cluster_name ocp4 | |
| set domain_name example.com | |
| set fileserver 192.168.122.1:80 | |
| set kernel rhcos-live-kernel-x86_64 | |
| set initrd rhcos-live-initramfs.x86_64.img | |
| set rootfs rhcos-live-rootfs.x86_64.img | |
| set install_drive /dev/vda | |
| set gateway 192.168.122.1 | |
| set dns_server 192.168.122.1 | |
| set netmask 255.255.255.0 | |
| set bootstrap_hostname bootstrap | |
| set bootstrap_ip 192.168.122.8 | |
| set bootstrap_role bootstrap | |
| set master1_role master | |
| set master1_hostname master001 | |
| set master1_ip 172.16.160.21 | |
| set master2_role master | |
| set master2_hostname master002 | |
| set master2_ip 172.16.160.22 | |
| set master3_hostname master003 | |
| set master3_ip 172.16.160.23 | |
| set master3_role master | |
| set worker1_hostname worker001 | |
| set worker1_ip 172.16.160.30 | |
| set worker1_role worker | |
| set worker2_hostname worker002 | |
| set worker2_ip 172.16.160.31 | |
| set worker2_role worker | |
| ifopen net0 | |
| #Discovery nic for vmware and kvm | |
| set ens33 0000:02:01.0 | |
| set ens38 0000:02:06.0 | |
| set ens192 0000:0b:00.0 | |
| set ens224 0000:13:00.0 | |
| set enp1s0 0000:01:00.0 | |
| isset ${net_interface} || | |
| iseq ${net0/busloc:busdevfn} ${ens33} && set net_interface ens33 || | |
| iseq ${net0/busloc:busdevfn} ${ens38} && set net_interface ens38 || | |
| iseq ${net1/busloc:busdevfn} ${ens33} && set net_interface ens33 || | |
| iseq ${net1/busloc:busdevfn} ${ens38} && set net_interface ens38 || | |
| iseq ${net0/busloc:busdevfn} ${ens192} && set net_interface ens192 || | |
| iseq ${net0/busloc:busdevfn} ${ens224} && set net_interface ens224 || | |
| iseq ${net1/busloc:busdevfn} ${ens192} && set net_interface ens192 || | |
| iseq ${net1/busloc:busdevfn} ${ens224} && set net_interface ens224 || | |
| :select_node | |
| set menu_number:int32 1 | |
| menu Please choose an Node to install | |
| item bootstrap bootstrap | |
| :add_menu_master isset ${master${menu_number}_ip} || goto add_menu_master_done | |
| item master${menu_number} Master ${menu_number} | |
| inc menu_number && goto add_menu_master | |
| :add_menu_master_done | |
| set menu_number:int32 1 | |
| goto add_menu_worker | |
| :add_menu_worker isset ${worker${menu_number}_ip} || goto menu_done | |
| item worker${menu_number} Worker ${menu_number} | |
| inc menu_number && goto add_menu_worker | |
| :menu_done | |
| choose node && | |
| iseq ${${node}_role} master && set master ${node} || | |
| iseq ${${node}_role} worker && set worker ${node} || | |
| iseq ${${node}_role} bootstrap && set bootstrap ${node} || | |
| isset ${master} && goto master || | |
| isset ${worker} && goto worker || | |
| isset ${bootstrap} && goto bootstrap || | |
| shell | |
| prompt -t 1000 !!!! 0 Nodes found - Please set Mac Address or Node Role for identification and try again. !!!! | |
| :bootstrap | |
| set hostname ${${bootstrap}_hostname}.${cluster_name}.${domain_name} | |
| set ignition bootstrap.ign | |
| set net0/ip ${${bootstrap}_ip} | |
| set net0/netmask ${netmask} | |
| set net0/gateway ${gateway} | |
| set dns ${dns_server} | |
| ping -c 3 -q ${gateway} || goto ping_gateway_log && | |
| nslookup dns_check ${${bootstrap}_hostname}.${cluster_name}.${domain_name} || goto dns_error_master && | |
| iseq ${dns_check} ${${bootstrap}_ip} && goto check_dns_api || goto dns_error_master_ptr | |
| :master | |
| set hostname ${${master}_hostname}.${cluster_name}.${domain_name} | |
| set ignition master.ign | |
| set net0/ip ${${master}_ip} | |
| set net0/netmask ${netmask} | |
| set net0/gateway ${gateway} | |
| set dns ${dns_server} | |
| ping -c 3 -q ${gateway} || goto ping_gateway_log && | |
| nslookup dns_check ${${master}_hostname}.${cluster_name}.${domain_name} || goto dns_error_master && | |
| iseq ${dns_check} ${${master}_ip} && goto check_dns_api || goto dns_error_master_ptr | |
| :worker | |
| set hostname ${${worker}_hostname}.${cluster_name}.${domain_name} | |
| set ignition worker.ign | |
| set net0/ip ${${worker}_ip} | |
| set net0/netmask ${netmask} | |
| set net0/gateway ${gateway} | |
| set dns ${dns_server} | |
| ping -c 3 -q ${gateway} || goto ping_gateway_log && | |
| nslookup dns_check ${${worker}_hostname}.${cluster_name}.${domain_name} || goto dns_error_worker && | |
| iseq ${dns_check} ${${worker}_ip} && goto check_dns_api || goto dns_error_worker_ptr | |
| :check_dns_api | |
| nslookup api api.${cluster_name}.${domain_name} || goto dns_error_api && goto check_dns_api_int | |
| :check_dns_api_int | |
| nslookup api-int api-int.${cluster_name}.${domain_name} || goto dns_error_api_int && goto check_dns_apps | |
| :check_dns_apps | |
| nslookup apps randon.apps.${cluster_name}.${domain_name} || goto dns_error_apps && goto install | |
| :dns_error_api | |
| prompt api.${cluster_name}.${domain_name} not found. Press any key to try again || goto check_dns_api && goto check_dns_api | |
| :dns_error_api_int | |
| prompt api-int.${cluster_name}.${domain_name} not found. Press any key to try again || goto check_dns_api_int && goto check_dns_api_int | |
| :dns_error_apps | |
| prompt *.apps.${cluster_name}.${domain_name} not found. Press any key to try again || goto check_dns_apps && goto check_dns_apps | |
| :dns_error_master | |
| prompt ${master} DNS entry not found. Press any key to try again || goto master && goto master | |
| :dns_error_master_ptr | |
| prompt ${master} Wrong IP Address. Press any key to try again || goto master && goto master | |
| :dns_error_worker | |
| prompt ${worker} DNS entry not found. Press any key to try again || goto worker && goto worker | |
| :dns_error_worker_ptr | |
| prompt ${worker} Wrong IP Address. Press any key to try again || goto worker && goto worker | |
| :ping_gateway_log | |
| prompt -t 10000000 Pinging - ${gateway} - Connection timed out. Check the network connectivity and try again. || shell && shell | |
| :install | |
| imgfetch -n init_img http://${fileserver}/${initrd} | |
| kernel http://${fileserver}/${kernel} initrd=init_img console=ttyS1,115200n8 console=tty0 coreos.live.rootfs_url=http://${fileserver}/${rootfs} coreos.inst.install_dev=${install_drive} coreos.inst.ignition_url=http://${fileserver}/${ignition} ip=enp1s0:none ip=enp2s0:none ip=${net0/ip}::${net0/gateway}:${net0/netmask}:${hostname}:bond0:none bond=bond0:enp1s0,enp2s0:mode=active-backup,miimon=100 nameserver=${dns_server} ignition.platform.id=metal | |
| initrd http://${fileserver}/${initrd} | |
| boot |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment