| #!ipxe |
| |
| echo Amazon EC2 ${product} - iPXE boot via user-data |
| echo CPU: ${buildarch} ${cpuvendor} ${cpumodel} |
| ifstat || |
| |
| set attempt:int8 1 |
| :dhcp_retry |
| echo DHCP attempt ${attempt} |
| dhcp --timeout 5000 && goto dhcp_ok || |
| ifstat || |
| inc attempt |
| iseq ${attempt} 10 || goto dhcp_retry |
| |
| :dhcp_fail |
| echo DHCP failed - rebooting |
| reboot || |
| exit |
| |
| :dhcp_ok |
| route || |
| |
| # Fetch session token |
| params --method PUT |
| param --header X-Aws-Ec2-Metadata-Token-Ttl-Seconds 600 |
| imgset authtoken http://169.254.169.254/latest/api/token##params || |
| |
| # Fetch user-data |
| params |
| isset ${authtoken} && param --header X-Aws-Ec2-Metadata-Token ${authtoken} || |
| kernel http://169.254.169.254/latest/user-data##params || |
| imgstat || |
| |
| # Boot from user-data |
| boot -ar || |
| |
| # Show diagnostic information on failure |
| imgstat || |
| ifstat || |
| exit |