mirror of
https://github.com/khuedoan/homelab.git
synced 2025-01-13 08:14:32 +07:00
1405fadf1a
Squashed commit of the following: commit 257867f196376df55fa0f57edbdf33967b1da04e Author: Khue Doan <mail@khuedoan.com> Date: Sun Sep 18 16:45:42 2022 +0700 refactor(docs): apply the Diátaxis framework
32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
# PXE boot
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
subgraph controller[Initial controller]
|
|
Ansible
|
|
dhcp[DHCP server]
|
|
tftp[TFTP server]
|
|
http[HTTP server]
|
|
end
|
|
|
|
machine[Bare metal machine]
|
|
|
|
Ansible -. 1 .-> machine
|
|
machine <-. 2, 3 .-> dhcp
|
|
machine <-. 4, 5 .-> tftp
|
|
machine <-. 6, 7 .-> http
|
|
```
|
|
|
|
1. Ansible: Hey MAC address `xx:xx:xx:xx:xx:xx`, wake up!
|
|
2. Machine: Hello everyone, I just woke up in network mode, could someone please show me how to boot?
|
|
3. DHCP server: I hear you, here's your IP address, proceed to the next server to obtain your bootloader.
|
|
4. Machine: Hello, could you please send me my bootloader?
|
|
5. TFTP server: Here you go. Grab your boot configuration, kernel, and initial ramdisk as well.
|
|
6. Machine: Hi, I just booted into my bootloader, and my boot parameters instructed me to get the installation instructions, packages, etc. from this site.
|
|
7. HTTP server: It's all yours.
|
|
8. Machine: Great, now I can install the OS and reboot!
|
|
|
|
Here's how it looks like in action:
|
|
|
|
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/y-d7btNNAT8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|