Restructured Documentation
Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 8s
Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 8s
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
---
|
||||
tags:
|
||||
- Automation
|
||||
- Deploy FOG Project
|
||||
---
|
||||
|
||||
## Purpose
|
||||
If you want to deploy the FOG Project software in your homelab environment to remotely image devices via PXE boot, follow the instructions below to get through the process.
|
||||
|
||||
@@ -42,9 +48,9 @@ If you want to deploy the FOG Project software in your homelab environment to re
|
||||
set-name: ens18
|
||||
```
|
||||
|
||||
Apply the configuration safely and temporarily with `sudo netplan try` and if connectivity still works, accept the changes permanently by running `sudo netplan apply`. Otherwise, Netplan will roll back the changes automatically.
|
||||
Apply the configuration safely and temporarily with `sudo netplan try` and if connectivity still works, accept the changes permanently by running `sudo netplan apply`. Otherwise, Netplan will roll back the changes automatically.
|
||||
|
||||
### Update & Snapshot the GuestVM
|
||||
### Update and Snapshot the GuestVM
|
||||
Before we take a checkpoint/snapshot and install FOG Project, we want to ensure that the GuestVM is fully updated. After the updates are complete, shutdown the GuestVM, take a snapshot, and boot it back up.
|
||||
|
||||
```sh
|
||||
@@ -79,27 +85,27 @@ The steps below will guide you on a high-level through the external DHCP-server
|
||||
- Are you sure you wish to continue? > `Y`
|
||||
|
||||
!!! example "Summary Example"
|
||||
* Here are the settings FOG will use:
|
||||
* Base Linux: Debian
|
||||
* Detected Linux Distribution: Ubuntu
|
||||
* Interface: ens18
|
||||
* Server IP Address: 192.168.3.9
|
||||
* Server Subnet Mask: 255.255.255.0
|
||||
* Hostname: lab-fog-01
|
||||
* Installation Type: Normal Server
|
||||
* Internationalization: No
|
||||
* Image Storage Location: /images
|
||||
* Using FOG DHCP: No
|
||||
* DHCP will NOT be setup but you must setup your
|
||||
- Here are the settings FOG will use:
|
||||
- Base Linux: Debian
|
||||
- Detected Linux Distribution: Ubuntu
|
||||
- Interface: ens18
|
||||
- Server IP Address: 192.168.3.9
|
||||
- Server Subnet Mask: 255.255.255.0
|
||||
- Hostname: lab-fog-01
|
||||
- Installation Type: Normal Server
|
||||
- Internationalization: No
|
||||
- Image Storage Location: /images
|
||||
- Using FOG DHCP: No
|
||||
- DHCP will NOT be setup but you must setup your
|
||||
| current DHCP server to use FOG for PXE services.
|
||||
|
||||
* On a Linux DHCP server you must set: next-server and filename
|
||||
- On a Linux DHCP server you must set: next-server and filename
|
||||
|
||||
* On a Windows DHCP server you must set options 066 and 067
|
||||
- On a Windows DHCP server you must set options 066 and 067
|
||||
|
||||
* Option 066/next-server is the IP of the FOG Server: (e.g. 192.168.3.9)
|
||||
* Option 067/filename is the bootfile: (e.g. undionly.kkpxe or snponly.efi)
|
||||
* Send OS Name, OS Version, and FOG Version: No
|
||||
- Option 066/next-server is the IP of the FOG Server: (e.g. 192.168.3.9)
|
||||
- Option 067/filename is the bootfile: (e.g. undionly.kkpxe or snponly.efi)
|
||||
- Send OS Name, OS Version, and FOG Version: No
|
||||
|
||||
### Database Schema Update/Install
|
||||
At this point, you will be prompted to login to the website hosted by FOG Project to setup the database, navigate to the URL provided. (e.g. http://192.168.3.9/fog/management)
|
||||
@@ -115,186 +121,167 @@ At this point, you will be prompted to login to the website hosted by FOG Projec
|
||||
http://192.168.3.9/fog/management
|
||||
|
||||
Default User Information
|
||||
|
||||
|
||||
- **Username**: fog
|
||||
- **Password**: password
|
||||
|
||||
**Changed configurations**:
|
||||
The FOG installer changed configuration files and created the
|
||||
following backup files from your original files:
|
||||
|
||||
|
||||
- /etc/vsftpd.conf <=> /etc/vsftpd.conf.1777937213
|
||||
- /etc/exports <=> /etc/exports.1777937213
|
||||
|
||||
## Disorganized Next Steps (Under Construction)
|
||||
|
||||
After DHCP is correctly pointing clients to the FOG server (Options 66/67 or `next-server`/`filename`), the next phase is **PXE boot workflow + host registration and image management**—not user authentication at boot.
|
||||
|
||||
Short answer: **No, you do not need to create a PXE login user.** FOG does not use traditional authentication during PXE boot. Instead, it uses a **menu-driven iPXE environment** and **host registration + task assignment** from the web UI.
|
||||
Short answer: **No, you do not need to create a PXE login user.** FOG does not use traditional authentication during PXE boot. Instead, it uses a **menu-driven iPXE environment** and **host registration + task assignment** from the web UI.
|
||||
|
||||
---
|
||||
|
||||
## What Actually Happens After DHCP is Set
|
||||
|
||||
Once DHCP is configured:
|
||||
|
||||
1. Client boots → gets IP + bootfile
|
||||
2. Loads **iPXE from FOG**
|
||||
3. Connects to FOG server
|
||||
4. Displays **FOG PXE menu**
|
||||
5. From there:
|
||||
1. Client boots → gets IP + bootfile
|
||||
2. Loads **iPXE from FOG**
|
||||
3. Connects to FOG server
|
||||
4. Displays **FOG PXE menu**
|
||||
5. From there:
|
||||
|
||||
* Register host
|
||||
* Deploy image
|
||||
* Run tasks
|
||||
- Register host
|
||||
- Deploy image
|
||||
- Run tasks
|
||||
|
||||
---
|
||||
|
||||
## Recommended Next Sections for Your Document
|
||||
|
||||
You should continue with something like this:
|
||||
|
||||
---
|
||||
|
||||
### Validate PXE Boot
|
||||
|
||||
Before doing anything else, confirm PXE is working end-to-end.
|
||||
|
||||
* Boot a test machine on the same network
|
||||
* Ensure:
|
||||
- Boot a test machine on the same network
|
||||
- Ensure:
|
||||
|
||||
* It gets an IP from DHCP
|
||||
* It downloads `undionly.kpxe` (BIOS) or `snponly.efi` (UEFI)
|
||||
* It reaches the **FOG iPXE menu**
|
||||
- It gets an IP from DHCP
|
||||
- It downloads `undionly.kpxe` (BIOS) or `snponly.efi` (UEFI)
|
||||
- It reaches the **FOG iPXE menu**
|
||||
|
||||
Expected result: You see a FOG menu (not a login prompt)
|
||||
|
||||
---
|
||||
|
||||
### Register a Host in FOG
|
||||
|
||||
FOG needs to know about devices before imaging.
|
||||
|
||||
#### Option 1: Register via PXE Menu (most common)
|
||||
|
||||
From the PXE menu:
|
||||
|
||||
* Select: **Perform Full Host Registration and Inventory**
|
||||
* Enter:
|
||||
- Select: **Perform Full Host Registration and Inventory**
|
||||
- Enter:
|
||||
|
||||
* Hostname
|
||||
* Optional description/location
|
||||
- Hostname
|
||||
- Optional description/location
|
||||
|
||||
This creates a host object in FOG.
|
||||
|
||||
#### Option 2: Pre-create in Web UI
|
||||
- Go to: `FOG Management → Hosts → Create New Host`
|
||||
- Add:
|
||||
|
||||
* Go to: `FOG Management → Hosts → Create New Host`
|
||||
* Add:
|
||||
|
||||
* MAC address
|
||||
* Hostname
|
||||
- MAC address
|
||||
- Hostname
|
||||
|
||||
---
|
||||
|
||||
### Create and Capture an Image
|
||||
|
||||
Before deploying, you need an image stored in FOG.
|
||||
|
||||
#### Create Image Definition
|
||||
- Navigate: `Images → Create New Image`
|
||||
- Set:
|
||||
|
||||
* Navigate: `Images → Create New Image`
|
||||
* Set:
|
||||
- Name
|
||||
- Image Type:
|
||||
|
||||
* Name
|
||||
* Image Type:
|
||||
|
||||
* `Single Disk - Resizable` (most common)
|
||||
* Storage group (default is fine)
|
||||
- `Single Disk - Resizable` (most common)
|
||||
- Storage group (default is fine)
|
||||
|
||||
---
|
||||
|
||||
#### Assign Image to Host
|
||||
|
||||
* Go to the host you registered
|
||||
* Set the **Image** field to your new image
|
||||
- Go to the host you registered
|
||||
- Set the **Image** field to your new image
|
||||
|
||||
---
|
||||
|
||||
#### Capture Image (Upload from a reference machine)
|
||||
|
||||
On your “golden image” machine:
|
||||
|
||||
1. Boot via PXE
|
||||
2. Register it (if not already)
|
||||
3. In Web UI:
|
||||
1. Boot via PXE
|
||||
2. Register it (if not already)
|
||||
3. In Web UI:
|
||||
|
||||
* Select host
|
||||
* Click **Capture**
|
||||
4. Reboot machine → it uploads disk to FOG
|
||||
- Select host
|
||||
- Click **Capture**
|
||||
4. Reboot machine → it uploads disk to FOG
|
||||
|
||||
---
|
||||
|
||||
### Deploy Image to a Host
|
||||
|
||||
Once an image exists:
|
||||
|
||||
1. Assign image to target host
|
||||
2. Schedule a **Deploy Task**
|
||||
3. Boot target machine via PXE
|
||||
1. Assign image to target host
|
||||
2. Schedule a **Deploy Task**
|
||||
3. Boot target machine via PXE
|
||||
|
||||
No login required — it will automatically start imaging if a task is assigned.
|
||||
|
||||
---
|
||||
|
||||
## Important Clarification (This Answers Your Question Directly)
|
||||
|
||||
> “Do we need to set up a user to login via PXE?”
|
||||
|
||||
**No.** FOG uses:
|
||||
|
||||
* MAC address identification
|
||||
* Task-based automation
|
||||
* Optional menu interaction
|
||||
- MAC address identification
|
||||
- Task-based automation
|
||||
- Optional menu interaction
|
||||
|
||||
There is:
|
||||
|
||||
* ❌ No PXE login system by default
|
||||
* ❌ No per-user authentication during boot
|
||||
* ✅ Central control via the web UI
|
||||
- ❌ No PXE login system by default
|
||||
- ❌ No per-user authentication during boot
|
||||
- ✅ Central control via the web UI
|
||||
|
||||
---
|
||||
|
||||
## Optional (Advanced Sections You Might Add Later)
|
||||
|
||||
If you want to make your doc more complete:
|
||||
|
||||
### Secure the Environment
|
||||
|
||||
* Change default credentials (`fog/password`)
|
||||
* Enable HTTPS (you skipped this earlier)
|
||||
* Restrict PXE boot via VLANs or DHCP policies
|
||||
- Change default credentials (`fog/password`)
|
||||
- Enable HTTPS (you skipped this earlier)
|
||||
- Restrict PXE boot via VLANs or DHCP policies
|
||||
|
||||
### UEFI vs BIOS Handling
|
||||
|
||||
* BIOS → `undionly.kpxe`
|
||||
* UEFI → `snponly.efi`
|
||||
- BIOS → `undionly.kpxe`
|
||||
- UEFI → `snponly.efi`
|
||||
|
||||
### Automating Deployments
|
||||
|
||||
* Auto-assign hosts
|
||||
* Use host groups
|
||||
* Schedule multicast deployments
|
||||
- Auto-assign hosts
|
||||
- Use host groups
|
||||
- Schedule multicast deployments
|
||||
|
||||
### Storage Optimization
|
||||
|
||||
* Separate `/images` to a larger disk
|
||||
* NFS tuning
|
||||
- Separate `/images` to a larger disk
|
||||
- NFS tuning
|
||||
|
||||
---
|
||||
|
||||
## Suggested Next Heading for Your Doc
|
||||
|
||||
```md
|
||||
### Validate PXE Boot and Access FOG Menu
|
||||
```
|
||||
@@ -303,4 +290,9 @@ followed by:
|
||||
|
||||
```md
|
||||
### Register Hosts and Prepare Images
|
||||
```
|
||||
```
|
||||
|
||||
## Related Documentation
|
||||
- [Pi-hole PXE Configuration](<Configure Pi-Hole PXE Boot.md>) — Use the documented DHCP integration when Pi-hole serves the network.
|
||||
- [Windows DHCP PXE Scaffold](<Configure Windows Server PXE Boot.md>) — Check the explicitly incomplete alternative before choosing it.
|
||||
- [Related Automation Documentation](<../../../reference/Automation/index.md>) — Find the connected deployments, procedures, and references for this subject.
|
||||
|
||||
Reference in New Issue
Block a user