Compare commits

..

No commits in common. "0cd1c7c50228ea7211b373e2b3bd193bfa33bd95" and "849983aaebcbc5d1c06b282ef7a14024b62016f5" have entirely different histories.

7 changed files with 21 additions and 41 deletions

2
.gitignore vendored
View File

@ -1,5 +1,5 @@
iso
settings.ini
# ignore all possible snapshots in this repo
# ignore all possible snapshots in this dir
*.json
pxe/.env

View File

@ -411,7 +411,8 @@ install_requirements() {
squashfs-tools
xorriso
mtools
dosfstools'
dosfstools
nfs-common'
# secureboot:
# -> extra src https://wiki.debian.org/SecureBoot/
# -> extra src https://wiki.debian.org/SecureBoot/VirtualMachine

View File

@ -1,4 +1,5 @@
server_ip=192.168.1.2
nfs_allowed_lan=192.168.1.0/24
tftp_path='/srv/pxe-tftp'
nfs_path='/srv/pxe-nfs'
nfs_images_path='/srv/pxe-images'
nfs_wbdata_path='/srv/workbench-data'

View File

@ -24,15 +24,16 @@ backup_file() {
install_nfs() {
backup_file /etc/exports
cat > /etc/exports <<END
${nfs_path} ${nfs_allowed_lan}(rw,sync,no_subtree_check,no_root_squash)
${nfs_images_path} ${nfs_allowed_lan}(rw,sync,no_subtree_check,no_root_squash)
${nfs_wbdata_path} ${nfs_allowed_lan}(rw,sync,no_subtree_check,no_root_squash)
END
# append live directory, which is expected by the debian live env
mkdir -p "${nfs_path}/live"
mkdir -p "${nfs_path}/snapshots"
mkdir -p "${nfs_images_path}/live"
mkdir -p "${nfs_wbdata_path}/snapshots"
if [ ! -f "${nfs_path}/settings.ini" ]; then
if [ -f "settings.ini" ]; then
ln -sv "${nfs_path}/settings.ini" "settings.ini"
if [ ! -f "${nfs_wbdata_path}/settings.ini" ]; then
if [ -f "../settings.ini" ]; then
cp -v ../settings.ini "${nfs_wbdata_path}/settings/settings.ini"
else
echo "ERROR: ../settings.ini does not exist yet, cannot read config from there. You can take inspiration with file ../settings.ini.example"
exit 1
@ -83,7 +84,7 @@ default wb
label wb
KERNEL vmlinuz
INITRD initrd.img
APPEND ip=dhcp netboot=nfs nfsroot=${server_ip}:${nfs_path}/ boot=live text forcepae
APPEND ip=dhcp netboot=nfs nfsroot=${server_ip}:${nfs_images_path}/ boot=live text forcepae
END
fi
}
@ -100,7 +101,8 @@ init_config() {
VERSION_CODENAME="${VERSION_CODENAME:-bookworm}"
tftp_path="${tftp_path:-/srv/pxe-tftp}"
server_ip="${server_ip}"
nfs_path="${nfs_path:-/srv/pxe-nfs}"
nfs_images_path="${nfs_images_path:-/srv/pxe-images}"
nfs_wbdata_path="${nfs_wbdata_path:-/srv/pxe-wbdata}"
}
main() {

View File

@ -1,6 +0,0 @@
[settings]
url = http://127.0.0.1:8000/api/snapshot/
token = '1234'
path = /srv/pxe-nfs/snapshots
# device = your_device_name
# # erase = basic

View File

@ -1,3 +0,0 @@
This is the path by default used by workbench-script
You can change it in the configuration

View File

@ -249,30 +249,15 @@ def gen_snapshot(all_disks):
def save_snapshot_in_disk(snapshot, path):
snapshot_path = os.path.join(path, 'snapshots')
filename = "{}/{}_{}.json".format(
snapshot_path,
path,
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
snapshot['uuid'])
snapshot['uuid']
)
print(f"workbench: INFO: Snapshot written in path '{filename}'")
with open(filename, "w") as f:
f.write(json.dumps(snapshot))
try:
if not os.path.exists(snapshot_path):
os.makedirs(snapshot_path)
print(f"workbench: INFO: Created snapshots directory at '{snapshot_path}'")
with open(filename, "w") as f:
f.write(json.dumps(snapshot))
print(f"workbench: INFO: Snapshot written in path '{filename}'")
except Exception as e:
print(f"workbench: WARNING: Failed to write in snapshots directory: {e}. Attempting to save in actual path.")
fallback_filename = "{}/{}_{}.json".format(
path,
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
snapshot['uuid'])
with open(fallback_filename, "w") as f:
f.write(json.dumps(snapshot))
print(f"workbench: INFO: Snapshot written in fallback path '{fallback_filename}'")
# TODO sanitize url, if url is like this, it fails
# url = 'http://127.0.0.1:8000/api/snapshot/'